Kubernetes-clusters maken met behulp van Azure CLI
Van toepassing op: Azure Local, versie 23H2
In dit artikel wordt beschreven hoe u Kubernetes-clusters maakt in Azure Local met behulp van Azure CLI. De werkstroom is als volgt:
- Maak een Kubernetes-cluster in Azure Local, versie 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 bevat met toegang tot Kubernetes-clusterbeheerders.
- Open het cluster met 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 de volgende gegevens van uw on-premises infrastructuurbeheerder hebben:
- Azure-abonnements-id : de Azure-abonnements-id waar Azure Local 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 lokale Azure-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 ook de Resource Manager-id 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 biedt. - Netwerk-id : Azure Resource Manager-id van het logische Azure-netwerk dat is gemaakt volgens 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 behulp van
az stack-hci-vm network lnet show --name "<lnet name>" --resource-group <azure resource group> --query "id" -o tsv
de resourcegroep 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 lokale Azure-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 toegang tot de clusterbeheerder. 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 opdrachtregelprogramma Kubernetes, kubectl, kunt u opdrachten uitvoeren op Kubernetes-clusters. U kunt kubectl gebruiken om toepassingen te implementeren, clusterbronnen 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
Na enkele minuten is de opdracht voltooid en retourneert deze informatie over het cluster in JSON-indeling.
Notitie
- De SSH-sleutelwaarde is de openbare sleutel voor toegang tot knooppunten in het ingerichte cluster. Deze sleutel bevindt zich standaard op
~/.ssh/id_rsa.pub
. U kunt een andere locatie opgeven met behulp van de parameter tijdens het--ssh-key-value
maken van het cluster. - De
--generate-ssh-keys
parameter is vereist als er geen bestaande SSH-sleutel aanwezig is op uw lokale computer. Als u deze parameter niet opneemt tijdens het maken van het cluster en er geen SSH-sleutel bestaat, wordt er een foutbericht weergegeven. - Als u al een SSH-sleutel op uw lokale computer hebt, wordt die sleutel opnieuw gebruikt door het AKS-cluster. In dit geval heeft het opgeven
--generate-ssh-keys
of weglaten van die parameter geen effect.
Belangrijk
Als u Azure RBAC of workloadidentiteit voor een AKS-cluster wilt gebruiken, moet u de vereiste parameters doorgeven tijdens het maken van het cluster met behulp van Azure CLI. Op dit moment wordt het bijwerken van een bestaand AKS-cluster om workloadidentiteit en/of Azure RBAC in te schakelen niet ondersteund. Zie Azure RBAC gebruiken voor Kubernetes-autorisatie of Workloadidentiteit implementeren en configureren voor uw cluster voor meer informatie.
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 worden uitgevoerd zolang u toegang wilt 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 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 in 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 gemaakte implementaties en services:
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.
Controleer 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 UITVOER VAN HET EXTERNE IP-adres voor de azure-vote-front-service 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 tot een daadwerkelijk openbaar IP-adres, gebruikt u Ctrl-C om het kubectl-controleproces 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