Kubernetes – co to jest i jak zacząć? [Tutorial na GCP]

24/06/2020

co to jest kubernetes i jak zaczac - poradnik

Coraz więcej systemów informatycznych jest tworzonych z użyciem kontenerów. Konteneryzacja polega na umieszczaniu komponentów aplikacji (jej procesów, zależności, bibliotek, plików konfiguracyjnych czy lokalnych baz danych) w kilku lub więcej “zbiorach” nazywanych kontenerami. Łączy w sobie zalety wirtualizacji oraz utrzymywania systemu na fizycznym serwerze. Czyli zapewnia skalowalność, szybką i lekką przenośność oprogramowania i separację instancji przy zachowaniu dużej wydajności.

O ile kilkoma kontenerami można sterować ręcznie, o tyle w przypadku setek czy tysięcy rozproszonych i dynamicznie zarządzanych kontenerów robi się to bardzo kłopotliwe. Odpowiedzią jest orkiestracja, czyli wprowadzenie automatyzacji, grupowe zarządzanie i monitorowanie kontenerów. Najpopularniejszym narzędziem do orkiestracji jest Kubernetes.

Co to jest Kubernetes?

Kubernetes to platforma open source, która służy do zarządzania kontenerami na dużą skalę. 

Nazwa pochodzi z języka greckiego – “κυβερνήτης” oznacza sternika, co doskonale przekazuje cel platformy. Kubernetes jest też nazywany K8s – to skrót, w którym osiem liter “ubernete” zostało zastąpionych cyfrą “8”.

Narzędzie zostało stworzone przez Google blisko 20 lat temu na potrzeby obsługi obciążenia produkcyjnego firmy. W 2014 roku projekt przekazano organizacji Cloud Native Computing Foundation i upubliczniono – od tego czasu platforma jest wciąż rozwijana przez organizację oraz firmy i specjalistów korzystających z Kubernetes (w projektach open source mogą uczestniczyć też ich użytkownicy).

Zobacz: Kubernetes vs. Docker Swarm – porównanie platform do orkiestracji

K8s wspiera automatyzację wdrożeń, skalowanie aplikacji, zarządzanie kontenerami, monitoruje procesy i zmiany. Właściciele aplikacji oraz zespoły developerskie korzystające z platformy mogą skupić się mocniej na rozwoju swojego produktu niż na działaniach DevOps (zarządzaniu infrastrukturą i dopasowywaniu produktu do jej wymagań). Kubernetes pozwala zarządzać klastrami (grupami współpracujących ze sobą serwerów), tak by z perspektywy użytkownika wyglądały one – w uproszczeniu – jak jedna maszyna. K8s zdejmuje z developera obowiązek dostosowywania aplikacji do wymagań infrastruktury – specjalista zleca uruchomienie aplikacji, a Kubernetes może sam rozdzielić usługi między klastry, serwery i skierować się do odpowiednich kontenerów. Kubernetes posiada własną formę load-balancingu, czyli techniki rozpraszania (równoważenia) obciążenia między wiele maszyn.

K8s jest wspierany przez większość chmur publicznych, w tym Google Cloud Platform.

Zobacz:
Co to jest Google Cloud Platform i w jaki sposób wspiera biznes?
Jak utworzyć i skonfigurować konto w Google Cloud Platform?
20 powodów, by wybrać infrastrukturę chmurową GCP

Google Cloud Platform za darmo voucher 500 USD

Centralizacja

Platforma Kubernetes pozwala zarządzać wszystkimi klastrami, serwerami i kontenerami z jednego miejsca, niezależnie od tego, gdzie znajdują się maszyny lub komponenty aplikacji. Wspomaga grupowe planowanie, wdrożenia, skalowanie i zarządzanie cyklami życia elementów.

Skalowalność

U podstaw K8s leży skalowalność – narzędzie zostało stworzone przez Google w celu uruchamiania miliardów kontenerów tygodniowo. Niezależnie od ilości wykonywanych akcji, wykorzystywanych maszyn czy posiadanych kontenerów, nie ma potrzeby poszerzania lub zmniejszania zespołu DevOps. Możliwe jest też skalowanie poziome i zmniejszanie zapotrzebowania na zasoby za pomocą komend lub przez interfejs użytkownika bądź automatycznie, w oparciu o obciążenie procesora.

Różne rozwiązania infrastrukturalne

Kubernetes działa razem z infrastrukturą na serwerach fizycznych, z rozwiązaniami chmurowymi oraz hybrydowymi (połączeniem lokalnego centrum z chmurą). Jest wspierany przez różnych dostawców chmur publicznych, m.in. Google Cloud Platform, Amazon Web Services czy Microsoft Azure.

Zobacz: On-premise, chmura prywatna, publiczna, hybrydowa i multi-cloud – zalety i wady rozwiązań

Spójność między środowiskami

Po uruchomieniu aplikacji na platformie staje się ona aplikacją przenośną. Aplikację można przenosić między środowiskami (np. developerskim, testowym, produkcyjnym) oraz między rozwiązaniami infrastrukturalnymi z zachowaniem spójności aplikacji.

Zapobieganie awariom i samoczynne naprawianie

K8s wprowadza zmiany stopniowo, jednocześnie monitorując stan każdej instancji. Jeśli coś pójdzie nie tak, Kubernetes automatycznie wycofuje zmiany. W przypadku gdy jeden kontener ulega awarii, narzędzie zastępuje go innym, jednocześnie pracując nad przywróceniem działania lub usuwając zbędne elementy.

Ciągły rozwój platformy

Kubernetes jest projektem otwartoźródłowym. W jego rozwój zaangażowani są nie tylko właściciele, ale też osoby korzystające z platformy na co dzień: developerzy, specjaliści DevOps, firmy programistyczne. Tworzą nowe elementy lub proponują wprowadzenie ulepszeń istniejących procesów i narzędzi.

Przykłady użycia Kubernetes

Platforma jest chętnie wykorzystywana przez firmy posiadające zaawansowane serwisy, zarządzające dużymi ilościami danych, nastawione na płynny i szybki rozwój.

  • CERN (The European Organization for Nuclear Research) przechowuje obecnie ok. 300 petabajtów danych, a ich liczba wciąż się powiększa (szacuje się, że w ciągu kilku lat danych w CERN będzie 10 razy więcej). Ponadto organizacja posiada sezonowe wzrosty obciążenia i musi mieć duże możliwości skalowania. CERN korzysta z infrastruktury hybrydowej – na co dzień dane przechowuje i przetwarza na lokalnych serwerach, a w razie potrzeby skaluje rozwiązanie do chmury. Prowadzenie orkiestracji kontenerów za pomocą Kubernetes pozwoliło organizacji w pełni zautomatyzować obsługę aplikacji, uprościć proces wdrożeń i przyspieszyć rozwój technologiczny między innymi poprzez skrócenie czasu dodania klastra z ponad 3 godzin do 15 minut, a nowego węzła (maszyny w klastrze) z ponad 30 minut do 2 minut.
  • Nokia tworzy produkty i rozwiązania związane z siecią telekomunikacyjną i dostarcza rozwiązania wielu operatorom. Firmy partnerskie Nokii posiadają różne rozwiązania infrastrukturalne: jedni korzystają z lokalnych centrów danych (fizycznych serwerów), inni z maszyn wirtualnych lub chmur, inne firmy z rozwiązań hybrydowych. Celem Nokii jest dostarczenie partnerom w pełni efektywnie działającego rozwiązania bez potrzeby dostosowywania produktu za każdym razem pod inną infrastrukturę. Korzystając z Kubernetes są w stanie tworzyć produkty, które można uruchomić w każdym środowisku. K8s wspiera też dodawanie nowych funkcjonalności i prowadzenie testów bez podziału na docelowe środowisko, co pozwala zaoszczędzić kilkaset godzin przy każdym wdrożeniu.
  • Adidas rozwija swój serwis e-commerce z wykorzystaniem możliwości, jakie daje Kubernetes. Zanim firma zaczęła korzystać z K8s, wprowadzanie zmian szło mozolnie, a wdrożenia utykały często na etapie DevOps – przykładowo developerzy, by uzyskać dostęp do wirtualnej maszyny, musieli czekać od 30 minut do nawet tygodnia. Po przeprowadzeniu konteneryzacji serwisu i uruchomieniu Kubernetes, developerzy mogą skupić się na tworzeniu nowych funkcjonalności zamiast na szczegółowym dopasowywaniu systemu do wymagań infrastruktury czy czekaniu na wsparcie ze strony DevOps. Wcześniej nowe wydania były robione co 4-6 tygodni, teraz są prowadzone kilka razy dziennie.

Z możliwości Kubernetes korzystają również Booking.com, BlaBlaCar, Grupa ING czy Zalando.

Podstawy Kubernetes na Google Cloud Platform

Pierwszym krokiem jest wejście na konsolę Google Cloud: https://console.cloud.google.com/.

Tworzymy nowy projekt (robimy to przez kliknięcie w nazwę projektu obok napisu “Google Cloud Platform” w lewym górnym rogu).

Google Cloud Platform - tworzenie nowego projektu

Uzupełniamy nazwę projektu i klikamy Create.

Google Cloud Platform - tworzenie nowego projektu

Wchodząc ponownie w listę projektów (przycisk koło napisu “Google Cloud Platform”) uzyskamy ID projektu. Będzie nam ono potrzebne na dalszych etapach.

Google Cloud Platform - tworzenie nowego projektu

Otwieramy Cloudshell (prawy górny róg).

Kubernetes tutorial - cloudshell

Za pomocą poniższej komendy ustawiamy projekt, na którym będziemy pracować:

gcloud config set project k8s-demo-281313

Zwróć uwagę, żeby w komendzie wpisać ID swojego projektu – może się różnić od podanego przykładu.

Kubernetes tutorial - ustawienia projektu

Następnie ustawiamy region, w którym chcemy wdrożyć aplikację:

gcloud config set compute/zone europe-west3-c

Lista regionów znajduje się tutaj: https://cloud.google.com/about/locations#europe

Kubernetes tutorial - ustawienie regionu

Tworzymy klaster przy użyciu komendy:

gcloud container clusters create my-cluster--num-nodes=1

Flaga –num-nodes pozwala ustalić liczbę node’ów (maszyn fizycznych lub wirtualnych) w klastrze. Więcej informacji o fladze znajduje się pod linkiem: https://cloud.google.com/sdk/gcloud/reference/container/clusters/create#–num-nodes

Ta operacja może zająć kilka minut.

Po zakończonej operacji otrzymujemy tabelę w Cloudshell, która przedstawia parametry klastra.

Kubernetes tutorial - parametry klastra

Teraz używamy komendy:

gcloud container clusters get-credentials my-cluster

Komenda aktualizuje plik kubeconfig o odpowiednie referencje i informacje w celu dalszej pracy z klastrem.

Kubernetes tutorial - aktualizacja pliku o referencje i informacje

By wdrożyć aplikację do klastra, używamy komendy: 

kubectl create deployment hello-server --image=gcr.io/google-samples/hello-app:1.0

Flaga –image wskazuje link do skonteneryzowanej aplikacji w usłudze Container Registry (GCR). Usługa Container Registry pozwala przechowywać skonteneryzowane obrazy aplikacji. Więcej informacji o funkcji GCR znajduje się pod linkiem: https://cloud.google.com/container-registry

Tutaj znajduje się kod źródłowy aplikacji hello-app, którą wdrażamy: https://github.com/GoogleCloudPlatform/kubernetes-engine-samples/blob/master/hello-app/main.go

Możemy wdrożyć naszą aplikację wskazując skonteneryzowany obraz z Container Registry.

Kubernetes tutorial - contaner registry

Teraz należy ujawnić aplikację (expose). W tym celu używamy komendy:

kubectl expose deployment hello-server --type LoadBalancer \
--port 80 --target-port 8080

Więcej informacji o komendzie kubectl znajduje się pod linkiem: https://kubernetes.io/docs/reference/generated/kubectl/kubectl-commands#expose

Flaga –type odpowiada za wskazanie typu wdrożenia (ClusterIP, NodePort, LoadBalancer lub ExternalName). W tym przypadku tworzymy LoadBalancer, który sprawi, że aplikacja będzie dostępna przez internet.

Flaga –port wskazuje port, na którym aplikacja ma być serwowana.

Flaga –target-port wskazuje port w kontenerze, do którego usługa powinna kierować ruch.

Następnie wpisujemy komendę: 

kubectl get service hello-server

Dzięki temu otrzymujemy publiczne IP klastra, na którym wdrożyliśmy aplikację:

Kubernetes tutorial - IP klastra

Oto efekt:

Kubernetes tutorial - hello world

Aby usunąć klaster i cofnąć wdrożenie należy użyć komend:

kubectl delete service hello-server
gcloud container clusters delete my-cluster

Kubernetes tutorial - usuniecie klastra

I to tyle z podstaw Kubernetes!

Kubernetes na Google Cloud Platform – zyskaj voucher 500 USD

Jeśli chcesz sprawdzić możliwości Kubernetes, a przy okazji zapoznać się z Google Cloud Platform – skalowalną infrastrukturą w chmurze o wielu technologicznych propozycjach – skontaktuj się z nami. Jako oficjalny Google Cloud Premier Partner gwarantujemy Ci voucher w wysokości 500 USD na start w GCP, pełne wsparcie techniczne oraz możliwość rozliczenia się za usługę chmurową w złotówkach.

Szukaj

Kategorie

Newsletter

DOŁĄCZ DO NEWSLETTERA, BY OTRZYMAĆ WHITEPAPER

Zapisując się na nasz newsletter, otrzymasz nie tylko comiesięczne porcje praktycznej wiedzy o chmurowych rozwiązaniach, ale także bezpłatną publikację: 10 usług Firebase, które pomogą Ci rozwinąć grę mobilną

Przedstawiamy w niej zbiór najlepszych usług, dzięki którym skalowanie i rozwój gry mobilnej będzie proste jak nigdy dotąd!

Kubernetes – co to jest i jak zacząć? [Tutorial na GCP]

24/06/2020

co to jest kubernetes i jak zaczac - poradnik

Coraz więcej systemów informatycznych jest tworzonych z użyciem kontenerów. Konteneryzacja polega na umieszczaniu komponentów aplikacji (jej procesów, zależności, bibliotek, plików konfiguracyjnych czy lokalnych baz danych) w kilku lub więcej “zbiorach” nazywanych kontenerami. Łączy w sobie zalety wirtualizacji oraz utrzymywania systemu na fizycznym serwerze. Czyli zapewnia skalowalność, szybką i lekką przenośność oprogramowania i separację instancji przy zachowaniu dużej wydajności.

O ile kilkoma kontenerami można sterować ręcznie, o tyle w przypadku setek czy tysięcy rozproszonych i dynamicznie zarządzanych kontenerów robi się to bardzo kłopotliwe. Odpowiedzią jest orkiestracja, czyli wprowadzenie automatyzacji, grupowe zarządzanie i monitorowanie kontenerów. Najpopularniejszym narzędziem do orkiestracji jest Kubernetes.

Co to jest Kubernetes?

Kubernetes to platforma open source, która służy do zarządzania kontenerami na dużą skalę. 

Nazwa pochodzi z języka greckiego – “κυβερνήτης” oznacza sternika, co doskonale przekazuje cel platformy. Kubernetes jest też nazywany K8s – to skrót, w którym osiem liter “ubernete” zostało zastąpionych cyfrą “8”.

Narzędzie zostało stworzone przez Google blisko 20 lat temu na potrzeby obsługi obciążenia produkcyjnego firmy. W 2014 roku projekt przekazano organizacji Cloud Native Computing Foundation i upubliczniono – od tego czasu platforma jest wciąż rozwijana przez organizację oraz firmy i specjalistów korzystających z Kubernetes (w projektach open source mogą uczestniczyć też ich użytkownicy).

Zobacz: Kubernetes vs. Docker Swarm – porównanie platform do orkiestracji

K8s wspiera automatyzację wdrożeń, skalowanie aplikacji, zarządzanie kontenerami, monitoruje procesy i zmiany. Właściciele aplikacji oraz zespoły developerskie korzystające z platformy mogą skupić się mocniej na rozwoju swojego produktu niż na działaniach DevOps (zarządzaniu infrastrukturą i dopasowywaniu produktu do jej wymagań). Kubernetes pozwala zarządzać klastrami (grupami współpracujących ze sobą serwerów), tak by z perspektywy użytkownika wyglądały one – w uproszczeniu – jak jedna maszyna. K8s zdejmuje z developera obowiązek dostosowywania aplikacji do wymagań infrastruktury – specjalista zleca uruchomienie aplikacji, a Kubernetes może sam rozdzielić usługi między klastry, serwery i skierować się do odpowiednich kontenerów. Kubernetes posiada własną formę load-balancingu, czyli techniki rozpraszania (równoważenia) obciążenia między wiele maszyn.

K8s jest wspierany przez większość chmur publicznych, w tym Google Cloud Platform.

Zobacz:
Co to jest Google Cloud Platform i w jaki sposób wspiera biznes?
Jak utworzyć i skonfigurować konto w Google Cloud Platform?
20 powodów, by wybrać infrastrukturę chmurową GCP

Google Cloud Platform za darmo voucher 500 USD

Centralizacja

Platforma Kubernetes pozwala zarządzać wszystkimi klastrami, serwerami i kontenerami z jednego miejsca, niezależnie od tego, gdzie znajdują się maszyny lub komponenty aplikacji. Wspomaga grupowe planowanie, wdrożenia, skalowanie i zarządzanie cyklami życia elementów.

Skalowalność

U podstaw K8s leży skalowalność – narzędzie zostało stworzone przez Google w celu uruchamiania miliardów kontenerów tygodniowo. Niezależnie od ilości wykonywanych akcji, wykorzystywanych maszyn czy posiadanych kontenerów, nie ma potrzeby poszerzania lub zmniejszania zespołu DevOps. Możliwe jest też skalowanie poziome i zmniejszanie zapotrzebowania na zasoby za pomocą komend lub przez interfejs użytkownika bądź automatycznie, w oparciu o obciążenie procesora.

Różne rozwiązania infrastrukturalne

Kubernetes działa razem z infrastrukturą na serwerach fizycznych, z rozwiązaniami chmurowymi oraz hybrydowymi (połączeniem lokalnego centrum z chmurą). Jest wspierany przez różnych dostawców chmur publicznych, m.in. Google Cloud Platform, Amazon Web Services czy Microsoft Azure.

Zobacz: On-premise, chmura prywatna, publiczna, hybrydowa i multi-cloud – zalety i wady rozwiązań

Spójność między środowiskami

Po uruchomieniu aplikacji na platformie staje się ona aplikacją przenośną. Aplikację można przenosić między środowiskami (np. developerskim, testowym, produkcyjnym) oraz między rozwiązaniami infrastrukturalnymi z zachowaniem spójności aplikacji.

Zapobieganie awariom i samoczynne naprawianie

K8s wprowadza zmiany stopniowo, jednocześnie monitorując stan każdej instancji. Jeśli coś pójdzie nie tak, Kubernetes automatycznie wycofuje zmiany. W przypadku gdy jeden kontener ulega awarii, narzędzie zastępuje go innym, jednocześnie pracując nad przywróceniem działania lub usuwając zbędne elementy.

Ciągły rozwój platformy

Kubernetes jest projektem otwartoźródłowym. W jego rozwój zaangażowani są nie tylko właściciele, ale też osoby korzystające z platformy na co dzień: developerzy, specjaliści DevOps, firmy programistyczne. Tworzą nowe elementy lub proponują wprowadzenie ulepszeń istniejących procesów i narzędzi.

Przykłady użycia Kubernetes

Platforma jest chętnie wykorzystywana przez firmy posiadające zaawansowane serwisy, zarządzające dużymi ilościami danych, nastawione na płynny i szybki rozwój.

  • CERN (The European Organization for Nuclear Research) przechowuje obecnie ok. 300 petabajtów danych, a ich liczba wciąż się powiększa (szacuje się, że w ciągu kilku lat danych w CERN będzie 10 razy więcej). Ponadto organizacja posiada sezonowe wzrosty obciążenia i musi mieć duże możliwości skalowania. CERN korzysta z infrastruktury hybrydowej – na co dzień dane przechowuje i przetwarza na lokalnych serwerach, a w razie potrzeby skaluje rozwiązanie do chmury. Prowadzenie orkiestracji kontenerów za pomocą Kubernetes pozwoliło organizacji w pełni zautomatyzować obsługę aplikacji, uprościć proces wdrożeń i przyspieszyć rozwój technologiczny między innymi poprzez skrócenie czasu dodania klastra z ponad 3 godzin do 15 minut, a nowego węzła (maszyny w klastrze) z ponad 30 minut do 2 minut.
  • Nokia tworzy produkty i rozwiązania związane z siecią telekomunikacyjną i dostarcza rozwiązania wielu operatorom. Firmy partnerskie Nokii posiadają różne rozwiązania infrastrukturalne: jedni korzystają z lokalnych centrów danych (fizycznych serwerów), inni z maszyn wirtualnych lub chmur, inne firmy z rozwiązań hybrydowych. Celem Nokii jest dostarczenie partnerom w pełni efektywnie działającego rozwiązania bez potrzeby dostosowywania produktu za każdym razem pod inną infrastrukturę. Korzystając z Kubernetes są w stanie tworzyć produkty, które można uruchomić w każdym środowisku. K8s wspiera też dodawanie nowych funkcjonalności i prowadzenie testów bez podziału na docelowe środowisko, co pozwala zaoszczędzić kilkaset godzin przy każdym wdrożeniu.
  • Adidas rozwija swój serwis e-commerce z wykorzystaniem możliwości, jakie daje Kubernetes. Zanim firma zaczęła korzystać z K8s, wprowadzanie zmian szło mozolnie, a wdrożenia utykały często na etapie DevOps – przykładowo developerzy, by uzyskać dostęp do wirtualnej maszyny, musieli czekać od 30 minut do nawet tygodnia. Po przeprowadzeniu konteneryzacji serwisu i uruchomieniu Kubernetes, developerzy mogą skupić się na tworzeniu nowych funkcjonalności zamiast na szczegółowym dopasowywaniu systemu do wymagań infrastruktury czy czekaniu na wsparcie ze strony DevOps. Wcześniej nowe wydania były robione co 4-6 tygodni, teraz są prowadzone kilka razy dziennie.

Z możliwości Kubernetes korzystają również Booking.com, BlaBlaCar, Grupa ING czy Zalando.

Podstawy Kubernetes na Google Cloud Platform

Pierwszym krokiem jest wejście na konsolę Google Cloud: https://console.cloud.google.com/.

Tworzymy nowy projekt (robimy to przez kliknięcie w nazwę projektu obok napisu “Google Cloud Platform” w lewym górnym rogu).

Google Cloud Platform - tworzenie nowego projektu

Uzupełniamy nazwę projektu i klikamy Create.

Google Cloud Platform - tworzenie nowego projektu

Wchodząc ponownie w listę projektów (przycisk koło napisu “Google Cloud Platform”) uzyskamy ID projektu. Będzie nam ono potrzebne na dalszych etapach.

Google Cloud Platform - tworzenie nowego projektu

Otwieramy Cloudshell (prawy górny róg).

Kubernetes tutorial - cloudshell

Za pomocą poniższej komendy ustawiamy projekt, na którym będziemy pracować:

gcloud config set project k8s-demo-281313

Zwróć uwagę, żeby w komendzie wpisać ID swojego projektu – może się różnić od podanego przykładu.

Kubernetes tutorial - ustawienia projektu

Następnie ustawiamy region, w którym chcemy wdrożyć aplikację:

gcloud config set compute/zone europe-west3-c

Lista regionów znajduje się tutaj: https://cloud.google.com/about/locations#europe

Kubernetes tutorial - ustawienie regionu

Tworzymy klaster przy użyciu komendy:

gcloud container clusters create my-cluster--num-nodes=1

Flaga –num-nodes pozwala ustalić liczbę node’ów (maszyn fizycznych lub wirtualnych) w klastrze. Więcej informacji o fladze znajduje się pod linkiem: https://cloud.google.com/sdk/gcloud/reference/container/clusters/create#–num-nodes

Ta operacja może zająć kilka minut.

Po zakończonej operacji otrzymujemy tabelę w Cloudshell, która przedstawia parametry klastra.

Kubernetes tutorial - parametry klastra

Teraz używamy komendy:

gcloud container clusters get-credentials my-cluster

Komenda aktualizuje plik kubeconfig o odpowiednie referencje i informacje w celu dalszej pracy z klastrem.

Kubernetes tutorial - aktualizacja pliku o referencje i informacje

By wdrożyć aplikację do klastra, używamy komendy: 

kubectl create deployment hello-server --image=gcr.io/google-samples/hello-app:1.0

Flaga –image wskazuje link do skonteneryzowanej aplikacji w usłudze Container Registry (GCR). Usługa Container Registry pozwala przechowywać skonteneryzowane obrazy aplikacji. Więcej informacji o funkcji GCR znajduje się pod linkiem: https://cloud.google.com/container-registry

Tutaj znajduje się kod źródłowy aplikacji hello-app, którą wdrażamy: https://github.com/GoogleCloudPlatform/kubernetes-engine-samples/blob/master/hello-app/main.go

Możemy wdrożyć naszą aplikację wskazując skonteneryzowany obraz z Container Registry.

Kubernetes tutorial - contaner registry

Teraz należy ujawnić aplikację (expose). W tym celu używamy komendy:

kubectl expose deployment hello-server --type LoadBalancer \
--port 80 --target-port 8080

Więcej informacji o komendzie kubectl znajduje się pod linkiem: https://kubernetes.io/docs/reference/generated/kubectl/kubectl-commands#expose

Flaga –type odpowiada za wskazanie typu wdrożenia (ClusterIP, NodePort, LoadBalancer lub ExternalName). W tym przypadku tworzymy LoadBalancer, który sprawi, że aplikacja będzie dostępna przez internet.

Flaga –port wskazuje port, na którym aplikacja ma być serwowana.

Flaga –target-port wskazuje port w kontenerze, do którego usługa powinna kierować ruch.

Następnie wpisujemy komendę: 

kubectl get service hello-server

Dzięki temu otrzymujemy publiczne IP klastra, na którym wdrożyliśmy aplikację:

Kubernetes tutorial - IP klastra

Oto efekt:

Kubernetes tutorial - hello world

Aby usunąć klaster i cofnąć wdrożenie należy użyć komend:

kubectl delete service hello-server
gcloud container clusters delete my-cluster

Kubernetes tutorial - usuniecie klastra

I to tyle z podstaw Kubernetes!

Kubernetes na Google Cloud Platform – zyskaj voucher 500 USD

Jeśli chcesz sprawdzić możliwości Kubernetes, a przy okazji zapoznać się z Google Cloud Platform – skalowalną infrastrukturą w chmurze o wielu technologicznych propozycjach – skontaktuj się z nami. Jako oficjalny Google Cloud Premier Partner gwarantujemy Ci voucher w wysokości 500 USD na start w GCP, pełne wsparcie techniczne oraz możliwość rozliczenia się za usługę chmurową w złotówkach.

Szukaj

Kategorie

Newsletter

DOŁĄCZ DO NEWSLETTERA, BY OTRZYMAĆ WHITEPAPER

Zapisując się na nasz newsletter, otrzymasz nie tylko comiesięczne porcje praktycznej wiedzy o chmurowych rozwiązaniach, ale także bezpłatną publikację: 10 usług Firebase, które pomogą Ci rozwinąć grę mobilną

Przedstawiamy w niej zbiór najlepszych usług, dzięki którym skalowanie i rozwój gry mobilnej będzie proste jak nigdy dotąd!