Skapa Kubernetes-kluster med Azure CLI
Gäller för: Azure Stack HCI, version 23H2
Den här artikeln beskriver hur du skapar Kubernetes-kluster i Azure Stack HCI med Azure CLI. Arbetsflödet är följande:
- Skapa ett Kubernetes-kluster i Azure Stack HCI 23H2 med Azure CLI. Klustret är Azure Arc-anslutet som standard.
- När du skapar klustret anger du en Microsoft Entra grupp som innehåller listan över Microsoft Entra användare med Åtkomst till Kubernetes-klusteradministratör.
- Få åtkomst till klustret med kubectl och din Microsoft Entra ID.
- Kör ett exempelprogram med flera containrar med en webbklientdel och en Redis-instans i klustret.
Innan du börjar
- Kontrollera att du har följande information från din lokala infrastrukturadministratör innan du börjar:
- Azure-prenumerations-ID – Azure-prenumerations-ID:t där Azure Stack HCI används för distribution och registrering.
-
Anpassat plats-ID – Azure Resource Manager-ID för den anpassade platsen. Den anpassade platsen konfigureras under distributionen av Azure Stack HCI-kluster. Infrastrukturadministratören bör ge dig Resource Manager ID för den anpassade platsen. Den här parametern krävs för att skapa Kubernetes-kluster. Du kan också hämta Resource Manager-ID:t med ,
az customlocation show --name "<custom location name>" --resource-group <azure resource group> --query "id" -o tsv
om infrastrukturadministratören tillhandahåller ett anpassat platsnamn och resursgruppsnamn. -
Nätverks-ID – Azure Resource Manager-ID för det logiska Azure Stack HCI-nätverket som skapats enligt dessa steg. Administratören bör ge dig ID:t för det logiska nätverket. Den här parametern krävs för att skapa Kubernetes-kluster. Du kan också hämta Azure Resource Manager-ID:t med om
az stack-hci-vm network lnet show --name "<lnet name>" --resource-group <azure resource group> --query "id" -o tsv
du känner till resursgruppen där det logiska nätverket skapades.
- Du kan köra stegen i den här artikeln på en lokal utvecklingsdator för att skapa ett Kubernetes-kluster på din fjärranslutna Azure Stack HCI-distribution. Kontrollera att du har den senaste versionen av Az CLI på utvecklingsdatorn. Du kan också välja att uppgradera din Az CLI-version med .
az upgrade
- Om du vill ansluta till Kubernetes-klustret var du än befinner dig skapar du en Microsoft Entra grupp och lägger till medlemmar i den. Alla medlemmar i gruppen Microsoft Entra har klusteradministratörsåtkomst till klustret. Se till att lägga till dig själv som medlem i gruppen Microsoft Entra. Om du inte lägger till dig själv kan du inte komma åt Kubernetes-klustret med kubectl. Mer information om hur du skapar Microsoft Entra grupper och lägger till användare finns i Hantera Microsoft Entra grupper och gruppmedlemskap.
- Ladda ned och installera kubectl på utvecklingsdatorn. Med kubernetes-kommandoradsverktyget kubectl kan du köra kommandon mot Kubernetes-kluster. Du kan använda kubectl för att distribuera program, granska och hantera klusterresurser och visa loggar.
Installera Azure CLI-tillägget
Kör följande kommando för att installera nödvändiga Azure CLI-tillägg:
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
Skapa ett Kubernetes-kluster
az aksarc create
Använd kommandot för att skapa ett Kubernetes-kluster i AKS Arc. Se till att du loggar in på Azure innan du kör det här kommandot. Om du har flera Azure-prenumerationer väljer du lämpligt prenumerations-ID med kommandot 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
Efter några minuter slutförs kommandot och returnerar JSON-formaterad information om klustret.
Ansluta till Kubernetes-klustret
Nu kan du ansluta till ditt Kubernetes-kluster genom att az connectedk8s proxy
köra kommandot från utvecklingsdatorn. Se till att du loggar in på Azure innan du kör det här kommandot. Om du har flera Azure-prenumerationer väljer du lämpligt prenumerations-ID med kommandot az account set .
Det här kommandot laddar ned kubeconfig för kubernetes-klustret till utvecklingsdatorn och öppnar en proxyanslutningskanal till ditt lokala Kubernetes-kluster. Kanalen är öppen så länge kommandot körs. Låt det här kommandot köras så länge du vill komma åt klustret. Om tidsgränsen uppnås stänger du CLI-fönstret, öppnar ett nytt och kör sedan kommandot igen.
Du måste ha deltagarbehörighet för resursgruppen som är värd för Kubernetes-klustret för att kunna köra följande kommando:
az connectedk8s proxy --name $aksclustername --resource-group $resource_group --file .\aks-arc-kube-config
Förväntad utdata:
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.
Håll den här sessionen igång och anslut till ditt Kubernetes-kluster från en annan terminal/kommandotolk. Kontrollera att du kan ansluta till kubernetes-klustret genom att köra kommandot kubectl get. Det här kommandot returnerar en lista över klusternoderna:
kubectl get node -A --kubeconfig .\aks-arc-kube-config
I följande utdataexempel visas noden som skapades i föregående steg. Kontrollera att nodstatusen är Klar:
NAME STATUS ROLES AGE VERSION
moc-l0ttdmaioew Ready control-plane,master 34m v1.24.11
moc-ls38tngowsl Ready <none> 32m v1.24.11
Distribuera programmet
En Kubernetes-manifestfil definierar ett klusters önskade tillstånd, till exempel vilka containeravbildningar som ska köras.
Du kan använda ett manifest för att skapa alla objekt som behövs för att köra Azure Vote-programmet. Det här manifestet innehåller två Kubernetes-distributioner:
- Azure Vote Python-exempelprogram.
- En Redis-instans.
Två Kubernetes-tjänster skapas också:
- En intern tjänst för Redis-instansen.
- En extern tjänst för åtkomst till Azure Vote-programmet från Internet.
Skapa en fil med namnet azure-vote.yaml och kopiera i följande 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
Distribuera programmet med kommandot kubectl apply och ange namnet på din YAML:
kubectl apply -f azure-vote.yaml --kubeconfig .\\aks-arc-kube-config
Följande exempelutdata visar de distributioner och tjänster som har skapats:
deployment "azure-vote-back" created
service "azure-vote-back" created
deployment "azure-vote-front" created
service "azure-vote-front" created
Testa programmet
När programmet körs exponerar en Kubernetes-tjänst programklientdelen för Internet. Den här processen kan ta ett par minuter att slutföra.
Övervaka förloppet med hjälp av kommandot kubectl get service med --watch
argumentet .
kubectl get service azure-vote-front --watch --kubeconfig .\aks-arc-kube-config
EXTERNA IP-utdata för tjänsten azure-vote-front visas inledningsvis som väntande.
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
azure-vote-front LoadBalancer 10.0.37.27 <pending> 80:30572/TCP 6s
När EXTERNAL-IP-adressen ändras från väntande till en faktisk offentlig IP-adress använder du CTRL-C för att stoppa kubectl-watch processen. Följande exempelutdata visar en giltig offentlig IP-adress som har tilldelats tjänsten:
azure-vote-front LoadBalancer 10.0.37.27 52.179.23.131 80:30572/TCP 2m
Om du vill se hur Azure Vote-appen fungerar i praktiken så öppnar du en webbläsare till den externa IP-adressen för din tjänst.
Ta bort klustret
az aksarc delete
Kör kommandot för att rensa klustret som du skapade:
az aksarc delete --resource-group $aksclustername --name $resource_group