Tworzenie klastrów Kubernetes przy użyciu interfejsu wiersza polecenia platformy Azure
Dotyczy: Azure Stack HCI, wersja 23H2
W tym artykule opisano sposób tworzenia klastrów Kubernetes w usłudze Azure Stack HCI przy użyciu interfejsu wiersza polecenia platformy Azure. Przepływ pracy jest następujący:
- Tworzenie klastra Kubernetes w usłudze Azure Stack HCI 23H2 przy użyciu interfejsu wiersza polecenia platformy Azure. Klaster jest domyślnie połączony z usługą Azure Arc.
- Podczas tworzenia klastra należy podać grupę Microsoft Entra zawierającą listę użytkowników Microsoft Entra z dostępem administratora klastra Kubernetes.
- Uzyskaj dostęp do klastra przy użyciu narzędzia kubectl i Tożsamość Microsoft Entra.
- Uruchom przykładową aplikację z wieloma kontenerami z frontonem internetowym i wystąpieniem usługi Redis w klastrze.
Zanim rozpoczniesz
- Przed rozpoczęciem upewnij się, że masz następujące informacje od administratora infrastruktury lokalnej:
- Identyfikator subskrypcji platformy Azure — identyfikator subskrypcji platformy Azure, w której usługa Azure Stack HCI jest używana do wdrażania i rejestracji.
- Identyfikator lokalizacji niestandardowej — identyfikator Resource Manager platformy Azure lokalizacji niestandardowej. Lokalizacja niestandardowa jest konfigurowana podczas wdrażania klastra rozwiązania Azure Stack HCI. Administrator infrastruktury powinien podać identyfikator Resource Manager lokalizacji niestandardowej. Ten parametr jest wymagany do utworzenia klastrów Kubernetes. Identyfikator Resource Manager można również uzyskać przy użyciu polecenia
az customlocation show --name "<custom location name>" --resource-group <azure resource group> --query "id" -o tsv
, jeśli administrator infrastruktury podaje niestandardową nazwę lokalizacji i nazwę grupy zasobów. - Identyfikator sieci — identyfikator usługi Azure Resource Manager sieci logicznej Azure Stack HCI utworzonej zgodnie z tymi krokami. Administrator powinien podać identyfikator sieci logicznej. Ten parametr jest wymagany do utworzenia klastrów Kubernetes. Identyfikator Resource Manager platformy Azure można również uzyskać przy użyciu polecenia
az stack-hci-vm network lnet show --name "<lnet name>" --resource-group <azure resource group> --query "id" -o tsv
, jeśli znasz grupę zasobów, w której utworzono sieć logiczną.
- Kroki opisane w tym artykule można uruchomić na lokalnym komputerze deweloperskim, aby utworzyć klaster Kubernetes w zdalnym wdrożeniu rozwiązania Azure Stack HCI. Upewnij się, że masz najnowszą wersję interfejsu wiersza polecenia az na komputerze deweloperskim. Możesz również uaktualnić wersję interfejsu wiersza polecenia az przy użyciu polecenia
az upgrade
. - Aby nawiązać połączenie z klastrem Kubernetes z dowolnego miejsca, utwórz grupę Microsoft Entra i dodaj do niej członków. Wszyscy członkowie grupy Microsoft Entra mają dostęp administratora klastra do klastra. Pamiętaj, aby dodać siebie jako członka do grupy Microsoft Entra. Jeśli nie dodasz się samodzielnie, nie możesz uzyskać dostępu do klastra Kubernetes przy użyciu narzędzia kubectl. Aby uzyskać więcej informacji na temat tworzenia grup Microsoft Entra i dodawania użytkowników, zobacz Zarządzanie grupami Microsoft Entra i członkostwem w grupach.
- Pobierz i zainstaluj narzędzie kubectl na komputerze deweloperskim. Narzędzie wiersza polecenia Kubernetes, kubectl, umożliwia uruchamianie poleceń w klastrach Kubernetes. Za pomocą narzędzia kubectl można wdrażać aplikacje, sprawdzać zasoby klastra i zarządzać nimi oraz wyświetlać dzienniki.
Instalowanie rozszerzenia interfejsu wiersza polecenia platformy Azure
Uruchom następujące polecenie, aby zainstalować niezbędne rozszerzenia interfejsu wiersza polecenia platformy Azure:
az extension add -n aksarc --upgrade
az extension add -n customlocation --upgrade
az extension add -n stack-hci-vm --upgrade
az extension add -n connectedk8s --upgrade
Tworzenie klastra Kubernetes
Użyj polecenia , az aksarc create
aby utworzyć klaster Kubernetes w usłudze AKS Arc. Przed uruchomieniem tego polecenia upewnij się, że logujesz się na platformie Azure. Jeśli masz wiele subskrypcji platformy Azure, wybierz odpowiedni identyfikator subskrypcji przy użyciu polecenia az account set .
az aksarc create -n $aksclustername -g $resource_group --custom-location $customlocationID --vnet-ids $logicnetId --aad-admin-group-object-ids $aadgroupID --generate-ssh-keys --load-balancer-count 0 --control-plane-ip $controlplaneIP
Po kilku minutach polecenie zostanie wykonane i zwróci informacje o klastrze w formacie JSON.
Nawiązywanie połączenia z klastrem Kubernetes
Teraz możesz nawiązać połączenie z klastrem Kubernetes, uruchamiając az connectedk8s proxy
polecenie na komputerze deweloperskim. Przed uruchomieniem tego polecenia upewnij się, że logujesz się na platformie Azure. Jeśli masz wiele subskrypcji platformy Azure, wybierz odpowiedni identyfikator subskrypcji przy użyciu polecenia az account set .
To polecenie pobiera narzędzie kubeconfig klastra Kubernetes na maszynę dewelopera i otwiera kanał połączenia serwera proxy z lokalnym klastrem Kubernetes. Kanał jest otwarty tak długo, jak polecenie jest uruchamiane. Niech to polecenie będzie uruchamiane tak długo, jak chcesz uzyskać dostęp do klastra. Jeśli upłynął limit czasu, zamknij okno interfejsu wiersza polecenia, otwórz nowy, a następnie uruchom polecenie ponownie.
Aby pomyślnie uruchomić następujące polecenie, musisz mieć uprawnienia współautora w grupie zasobów, która hostuje klaster Kubernetes:
az connectedk8s proxy --name $aksclustername --resource-group $resource_group --file .\aks-arc-kube-config
Oczekiwane dane wyjściowe:
Proxy is listening on port 47011
Merged "aks-workload" as current context in .\\aks-arc-kube-config
Start sending kubectl requests on 'aks-workload' context using
kubeconfig at .\\aks-arc-kube-config
Press Ctrl+C to close proxy.
Nie uruchamiaj tej sesji i nawiąż połączenie z klastrem Kubernetes z innego wiersza polecenia/terminalu. Sprawdź, czy możesz nawiązać połączenie z klastrem Kubernetes, uruchamiając polecenie kubectl get. To polecenie zwraca listę węzłów klastra:
kubectl get node -A --kubeconfig .\aks-arc-kube-config
Poniższy przykład danych wyjściowych przedstawia węzeł utworzony w poprzednich krokach. Upewnij się, że stan węzła to Gotowe:
NAME STATUS ROLES AGE VERSION
moc-l0ttdmaioew Ready control-plane,master 34m v1.24.11
moc-ls38tngowsl Ready <none> 32m v1.24.11
Wdrażanie aplikacji
Plik manifestu kubernetes definiuje żądany stan klastra, taki jak obrazy kontenerów do uruchomienia.
Możesz użyć manifestu, aby utworzyć wszystkie obiekty potrzebne do uruchomienia aplikacji Azure Vote. Ten manifest obejmuje dwa wdrożenia platformy Kubernetes:
- Przykładowe aplikacje platformy Azure Vote w języku Python.
- Wystąpienie usługi Redis.
Tworzone są również dwie usługi Kubernetes :
- Wewnętrzna usługa dla wystąpienia usługi Redis.
- Usługa zewnętrzna do uzyskiwania dostępu do aplikacji Azure Vote z Internetu.
Utwórz plik o nazwie azure-vote.yaml i skopiuj go w następującym manifeście:
apiVersion: apps/v1
kind: Deployment
metadata:
name: azure-vote-back
spec:
replicas: 1
selector:
matchLabels:
app: azure-vote-back
template:
metadata:
labels:
app: azure-vote-back
spec:
nodeSelector:
"kubernetes.io/os": linux
containers:
- name: azure-vote-back
image: mcr.microsoft.com/oss/bitnami/redis:6.0.8
env:
- name: ALLOW_EMPTY_PASSWORD
value: "yes"
resources:
requests:
cpu: 100m
memory: 128Mi
limits:
cpu: 250m
memory: 256Mi
ports:
- containerPort: 6379
name: redis
---
apiVersion: v1
kind: Service
metadata:
name: azure-vote-back
spec:
ports:
- port: 6379
selector:
app: azure-vote-back
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: azure-vote-front
spec:
replicas: 1
selector:
matchLabels:
app: azure-vote-front
template:
metadata:
labels:
app: azure-vote-front
spec:
nodeSelector:
"kubernetes.io/os": linux
containers:
- name: azure-vote-front
image: mcr.microsoft.com/azuredocs/azure-vote-front:v1
resources:
requests:
cpu: 100m
memory: 128Mi
limits:
cpu: 250m
memory: 256Mi
ports:
- containerPort: 80
env:
- name: REDIS
value: "azure-vote-back"
---
apiVersion: v1
kind: Service
metadata:
name: azure-vote-front
spec:
type: LoadBalancer
ports:
- port: 80
selector:
app: azure-vote-front
Wdróż aplikację przy użyciu polecenia kubectl apply i określ nazwę yaML:
kubectl apply -f azure-vote.yaml --kubeconfig .\\aks-arc-kube-config
Następujące przykładowe dane wyjściowe pokazują pomyślnie utworzone wdrożenia i usługi:
deployment "azure-vote-back" created
service "azure-vote-back" created
deployment "azure-vote-front" created
service "azure-vote-front" created
Testowanie aplikacji
Po uruchomieniu aplikacji usługa Kubernetes uwidacznia fronton aplikacji w Internecie. Ten proces może potrwać kilka minut.
Monitoruj postęp przy użyciu polecenia kubectl get service z argumentem --watch
.
kubectl get service azure-vote-front --watch --kubeconfig .\aks-arc-kube-config
Dane wyjściowe EXTERNAL-IP dla usługi azure-vote-front początkowo są wyświetlane jako oczekujące.
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
azure-vote-front LoadBalancer 10.0.37.27 <pending> 80:30572/TCP 6s
Gdy adres EXTERNAL-IP zmieni się z oczekującego na rzeczywisty publiczny adres IP, użyj klawiszy CTRL-C, aby zatrzymać proces kubectl watch. Następujące przykładowe dane wyjściowe przedstawiają prawidłowy publiczny adres IP przypisany do usługi:
azure-vote-front LoadBalancer 10.0.37.27 52.179.23.131 80:30572/TCP 2m
Aby wyświetlić działającą aplikację Azure Vote, otwórz zewnętrzny adres IP usługi w przeglądarce internetowej.
Usuwanie klastra
Uruchom polecenie , az aksarc delete
aby wyczyścić utworzony klaster:
az aksarc delete --resource-group $aksclustername --name $resource_group
Następne kroki
Opinia
https://aka.ms/ContentUserFeedback.
Dostępne już wkrótce: W 2024 r. będziemy stopniowo wycofywać zgłoszenia z serwisu GitHub jako mechanizm przesyłania opinii na temat zawartości i zastępować go nowym systemem opinii. Aby uzyskać więcej informacji, sprawdź:Prześlij i wyświetl opinię dla