Wdrażanie aplikacji w klastrze usługi Azure Kubernetes Service
Twoja firma szuka rozwiązań do wdrożenia chmurowej usługi renderowania wideo. Jako platformę programowania natywną dla chmury wybrano usługę Azure Kubernetes Service (AKS). Po skonfigurowaniu klastra możesz wdrożyć jeden ze składników w aplikacji renderowania wideo. Postanawiasz wdrożyć statyczną wersję witryny firmy, aby poznać proces wdrażania platformy Kubernetes.
Zanim omówimy sposób wdrażania na platformie Kubernetes, zobacz czynności, które należy wykonać, aby wdrożyć podobną aplikację w środowisku innym niż platforma Kubernetes.
Załóżmy, że używasz maszyny wirtualnej platformy Azure jako platformy docelowej. Pierwszym krokiem jest przygotowanie oprogramowania serwerowego do hostowania aplikacji. Wykonasz następujące zadania:
- Zainstalowanie systemu operacyjnego.
- Zaktualizowanie systemu operacyjnego do najnowszych poprawek zabezpieczeń i oprogramowania.
- Zainstalowanie i skonfigurowanie oprogramowania serwera internetowego.
- Wdrożenie aplikacji internetowej.
Powtórz ten proces dla każdej nowej maszyny wirtualnej, gdy zdecydujesz się skalować witrynę internetową w poziomie, aby obsłużyć wzrost zapotrzebowania klientów.
Alternatywnym rozwiązaniem jest uruchomienie witryny na platformie opartej na kontenerach, takiej jak Azure Container Instances. Nie musisz martwić się o podstawową technologię serwera, ale musisz skonfigurować kilka kontenerów i zarządzać nimi, aby użyć tej strategii ręcznie.
Platforma Kubernetes i usługa AKS pomagają organizować kontenery. Funkcje orkiestracji kontenerów platformy Kubernetes ułatwiają zarządzanie obciążeniami w klastrze. Obciążenia są wdrażane przy użyciu kontenerów utworzonych na podstawie obrazów kontenerów w celu uruchamiania aplikacji w klastrze usługi AKS.
W tym miejscu możesz dowiedzieć się, jak tworzyć obciążenia w klastrze usługi AKS.
Co to jest rejestr kontenerów?
Rejestr kontenerów umożliwia bezpieczne przechowywanie obrazów kontenerów w chmurze na potrzeby późniejszego wdrożenia. Rejestr kontenerów można traktować jako archiwum, w którym są przechowywane różne wersje obrazu kontenera. Każdy przechowywany obraz ma tag przypisany na potrzeby identyfikacji.
Na przykład możesz mieć obraz contoso-website:latest
, który będzie inną wersją obrazu z tagiem contoso-website:v1.0.0
.
Rejestry kontenerów mogą być publiczne lub prywatne. Rejestry prywatne wymagają poświadczeń w celu uzyskiwania dostępu do obrazów i pobierania ich i jest strategią, którą należy wykonać podczas przechowywania obrazów kontenerów.
Platforma Kubernetes umożliwia wdrażanie tylko obrazów hostowanych w rejestrze kontenerów. Tworzenie prywatnego rejestru kontenerów jest zwykle częścią standardowej strategii wdrażania usługi AKS.
Co to jest zasobnik platformy Kubernetes?
Zasobnik Kubernetes grupuje kontenery i aplikacje w strukturę logiczną. Te zasobniki nie mają funkcji inteligentnych i składają się z co najmniej jednego kontenera aplikacji. Każdy z nich ma adres IP, reguły sieci i uwidocznione porty.
Jeśli na przykład chcesz wyszukać wszystkie obciążenia związane z klastrem contoso-website
, wykonasz zapytanie dotyczące zasobników z etykietą app
i wartością contoso-website
.
Co to jest wdrożenie na platformie Kubernetes?
Wdrożenie na platformie Kubernetes jest ewolucją zasobników. Wdrożenie opakowuje zasobniki w inteligentny obiekt, który umożliwia skalowanie w poziomie. Możesz łatwo zduplikować i skalować aplikację w celu obsługi większego obciążenia bez konieczności konfigurowania złożonych reguł sieciowych.
Wdrożenia umożliwiają użytkownikom aktualizowanie aplikacji tylko przez zmianę tagu obrazu bez przestoju. Podczas aktualizowania wdrożenia zamiast usuwania wszystkich aplikacji wdrożenie wyłącza aplikacje online jeden po drugim. Następnie zastępuje je najnowszą wersją. Ten aspekt oznacza, że każde wdrożenie może zaktualizować swoje zasobniki bez widocznego wpływu na dostępność.
Pliki manifestu platformy Kubernetes
Plik manifestu platformy Kubernetes pozwala na deklaratywne opisywanie obciążeń w formacie YAML i uproszczenie zarządzania obiektami platformy Kubernetes.
Wyobraź sobie, że musisz ręcznie wdrożyć obciążenie. Musisz myśleć o kilku aspektach i zarządzać nimi. Konieczne jest utworzenie kontenera, wybranie określonego węzła, opakowanie go w zasobniku, uruchomienie zasobnika, monitorowanie wykonywania itp.
Pliki manifestu zawierają wszystkie informacje potrzebne do utworzenia opisanego obciążenia i zarządzania nim.
Co to jest etykieta platformy Kubernetes?
Etykieta platformy Kubernetes umożliwia logiczne grupowanie obiektów platformy Kubernetes. Te etykiety umożliwiają systemowi wysyłanie do klastra zapytań dotyczących obiektów pasujących do etykiety z określoną nazwą.
Struktura pliku manifestu
Struktura plików manifestu różni się w zależności od typu tworzonego zasobu. Pliki manifestu korzystają jednak ze wspólnych instrukcji. Te instrukcje definiują różne aspekty, takie jak interfejsy API do użycia i typ obciążenia do utworzenia.
Pierwsze dwa wpisy we wszystkich plikach manifestu mają dwa ważne klucze: apiVersion
i kind
. Oto przykład pliku wdrożenia.
apiVersion: apps/v1 # Where in the API it resides
kind: Deployment # The kind of workload we're creating
Klucz apiVersion
definiuje punkt końcowy serwera interfejsu API, który zarządza wdrażany obiekt.
Klucz kind
definiuje obciążenie tworzone przez to wdrożenie.
Pozostałymi wspólnymi kluczami dla wszystkich plików są metadata
i name
. Wszystkie zasoby platformy Kubernetes muszą mieć nazwę. Ta nazwa jest umieszczana w kluczu metadata
.
apiVersion: apps/v1
kind: Deployment
metadata:
name: contoso-website # This will be the name of the deployment
Grupowanie obiektów we wdrożeniu
Wdrożenia używają elementu label
, aby znajdować i grupować zasobniki. Etykieta jest definiowana jako część pliku manifestu wdrożenia.
Oto przykład. Zwróć uwagę na wartość matchLabels
w definicji selector
dodanej do definicji spec
.
# deployment.yaml
# ...
spec:
selector:
matchLabels:
app: contoso-website
# ...
Od tego momentu wszystkie pliki mają różne struktury zależne od rodzaju zasobu, który platforma Kubernetes ma utworzyć.
Stosowanie pliku wdrożenia
Plik manifestu wdrożenia platformy Kubernetes jest wdrażany przy użyciu narzędzia kubectl
. Oto przykład polecenia.
kubectl apply -f ./deployment.yaml