Kubernetes-clusters maken met behulp van Azure CLI
Van toepassing op: Azure Stack HCI, versie 23H2
In dit artikel wordt beschreven hoe u Kubernetes-clusters maakt in Azure Stack HCI met behulp van Azure CLI. De werkstroom is als volgt:
- Maak een Kubernetes-cluster in Azure Stack HCI 23H2 met behulp van Azure CLI. Het cluster is standaard verbonden met Azure Arc.
- Tijdens het maken van het cluster geeft u een Microsoft Entra groep op die de lijst met Microsoft Entra gebruikers met beheerderstoegang voor kubernetes-clusters bevat.
- Toegang tot het cluster met behulp van kubectl en uw Microsoft Entra ID.
- Voer een voorbeeldtoepassing met meerdere containers uit met een webfront-end en een Redis-exemplaar in het cluster.
Voordat u begint
- Voordat u begint, moet u ervoor zorgen dat u de volgende gegevens van uw on-premises infrastructuurbeheerder hebt:
- Azure-abonnements-id : de Azure-abonnements-id waarin Azure Stack HCI wordt gebruikt voor implementatie en registratie.
-
Aangepaste locatie-id: Azure Resource Manager id van de aangepaste locatie. De aangepaste locatie wordt geconfigureerd tijdens de implementatie van het Azure Stack HCI-cluster. De infrastructuurbeheerder moet u de Resource Manager-id van de aangepaste locatie geven. Deze parameter is vereist om Kubernetes-clusters te maken. U kunt de Resource Manager-id ook ophalen met behulp van
az customlocation show --name "<custom location name>" --resource-group <azure resource group> --query "id" -o tsv
, als de infrastructuurbeheerder een aangepaste locatienaam en resourcegroepnaam opgeeft. -
Netwerk-id: Azure Resource Manager id van het logische Azure Stack HCI-netwerk dat u hebt gemaakt met behulp van deze stappen. Uw beheerder moet u de id van het logische netwerk geven. Deze parameter is vereist om Kubernetes-clusters te maken. U kunt ook de Azure Resource Manager-id ophalen met als
az stack-hci-vm network lnet show --name "<lnet name>" --resource-group <azure resource group> --query "id" -o tsv
u de resourcegroep kent waarin het logische netwerk is gemaakt.
- U kunt de stappen in dit artikel uitvoeren op een lokale ontwikkelcomputer om een Kubernetes-cluster te maken op uw externe Azure Stack HCI-implementatie. Zorg ervoor dat u de nieuwste versie van Az CLI op uw ontwikkelcomputer hebt. U kunt er ook voor kiezen om uw Az CLI-versie bij te werken met behulp van
az upgrade
. - Als u vanaf elke locatie verbinding wilt maken met het Kubernetes-cluster, maakt u een Microsoft Entra-groep en voegt u er leden aan toe. Alle leden in de Microsoft Entra groep hebben clusterbeheerderstoegang tot het cluster. Zorg ervoor dat u uzelf als lid toevoegt aan de Microsoft Entra groep. Als u uzelf niet toevoegt, hebt u geen toegang tot het Kubernetes-cluster met behulp van kubectl. Zie Microsoft Entra groepen en groepslidmaatschap beheren voor meer informatie over het maken van Microsoft Entra groepen en het toevoegen van gebruikers.
- Download en installeer kubectl op uw ontwikkelcomputer. Met het kubernetes-opdrachtregelprogramma kubectl kunt u opdrachten uitvoeren op Kubernetes-clusters. U kunt kubectl gebruiken om toepassingen te implementeren, clusterresources te inspecteren en te beheren en logboeken weer te geven.
De Azure CLI-extensie installeren
Voer de volgende opdracht uit om de benodigde Azure CLI-extensies te installeren:
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
Een Kubernetes-cluster maken
Gebruik de az aksarc create
opdracht om een Kubernetes-cluster te maken in AKS Arc. Zorg ervoor dat u zich aanmeldt bij Azure voordat u deze opdracht uitvoert. Als u meerdere Azure-abonnementen hebt, selecteert u de juiste abonnements-id met behulp van de opdracht 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
Na enkele minuten is de opdracht voltooid en retourneert deze informatie over het cluster in JSON-indeling.
Verbinding maken met het Kubernetes-cluster
U kunt nu verbinding maken met uw Kubernetes-cluster door de az connectedk8s proxy
opdracht uit te voeren vanaf uw ontwikkelcomputer. Zorg ervoor dat u zich aanmeldt bij Azure voordat u deze opdracht uitvoert. Als u meerdere Azure-abonnementen hebt, selecteert u de juiste abonnements-id met behulp van de opdracht az account set .
Met deze opdracht downloadt u de kubeconfig van uw Kubernetes-cluster naar uw ontwikkelcomputer en opent u een proxyverbindingskanaal naar uw on-premises Kubernetes-cluster. Het kanaal is geopend zolang de opdracht wordt uitgevoerd. Laat deze opdracht uitvoeren zolang u toegang wilt krijgen tot uw cluster. Als er een time-out optreedt, sluit u het CLI-venster, opent u een nieuw venster en voert u de opdracht opnieuw uit.
U moet inzendermachtigingen hebben voor de resourcegroep die als host fungeert voor het Kubernetes-cluster om de volgende opdracht met succes uit te voeren:
az connectedk8s proxy --name $aksclustername --resource-group $resource_group --file .\aks-arc-kube-config
Verwachte uitvoer:
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.
Houd deze sessie actief en maak verbinding met uw Kubernetes-cluster vanaf een andere terminal/opdrachtprompt. Controleer of u verbinding kunt maken met uw Kubernetes-cluster door de opdracht kubectl get uit te voeren. Met deze opdracht wordt een lijst met de clusterknooppunten geretourneerd:
kubectl get node -A --kubeconfig .\aks-arc-kube-config
In het volgende uitvoervoorbeeld ziet u het knooppunt dat in de vorige stappen is gemaakt. Zorg ervoor dat de status van het knooppunt Gereed is:
NAME STATUS ROLES AGE VERSION
moc-l0ttdmaioew Ready control-plane,master 34m v1.24.11
moc-ls38tngowsl Ready <none> 32m v1.24.11
De toepassing implementeren
Een Kubernetes-manifestbestand definieert de gewenste status van een cluster, zoals welke containerinstallatiekopieën moeten worden uitgevoerd.
U kunt een manifest gebruiken om alle objecten te maken die nodig zijn om de Azure Vote-toepassing uit te voeren. Dit manifest bevat twee Kubernetes-implementaties:
- De Azure Vote Python-voorbeeldtoepassingen.
- Een Redis-exemplaar.
Er worden ook twee Kubernetes-services gemaakt:
- Een interne service voor het Redis-exemplaar.
- Een externe service voor toegang tot de Azure Vote-toepassing vanaf internet.
Maak een bestand met de naam azure-vote.yaml en kopieer het volgende manifest:
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: <path to image>/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: <path to image>/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
Implementeer de toepassing met behulp van de opdracht kubectl apply en geef de naam van uw YAML op:
kubectl apply -f azure-vote.yaml --kubeconfig .\\aks-arc-kube-config
In de volgende voorbeelduitvoer ziet u de implementaties en services die zijn gemaakt:
deployment "azure-vote-back" created
service "azure-vote-back" created
deployment "azure-vote-front" created
service "azure-vote-front" created
De toepassing testen
Wanneer de toepassing wordt uitgevoerd, maakt een Kubernetes-service de front-end van de toepassing beschikbaar op internet. Dit proces kan enkele minuten duren.
Bewaak de voortgang met behulp van de opdracht kubectl get service met het --watch
argument .
kubectl get service azure-vote-front --watch --kubeconfig .\aks-arc-kube-config
De EXTERNAL-IP-uitvoer voor de service azure-vote-front wordt in eerste instantie weergegeven als in behandeling.
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
azure-vote-front LoadBalancer 10.0.37.27 <pending> 80:30572/TCP 6s
Zodra het EXTERNAL-IP-adres is gewijzigd van in behandeling in een daadwerkelijk openbaar IP-adres, gebruikt u Ctrl+C om het kubectl-watch-proces te stoppen. In de volgende voorbeelduitvoer ziet u een geldig openbaar IP-adres dat aan de service is toegewezen:
azure-vote-front LoadBalancer 10.0.37.27 52.179.23.131 80:30572/TCP 2m
Open een webbrowser naar het externe IP-adres van uw service om de Azure Vote-app te zien.
Het cluster verwijderen
Voer de az aksarc delete
opdracht uit om het cluster dat u hebt gemaakt op te schonen:
az aksarc delete --resource-group $aksclustername --name $resource_group