Skapa Kubernetes-kluster med Hjälp av Azure CLI
Gäller för: Azure Local, version 23H2
Den här artikeln beskriver hur du skapar Kubernetes-kluster i Azure Local med hjälp av Azure CLI. Arbetsflödet är följande:
- Skapa ett Kubernetes-kluster i Azure Local, version 23H2 med Hjälp av Azure CLI. Klustret är Azure Arc-anslutet som standard.
- När du skapar klustret tillhandahåller 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 ditt Microsoft Entra-ID.
- Kör ett exempelprogram för flera containrar med en webbklientdel och en Redis-instans i klustret.
Innan du börjar
- Innan du börjar kontrollerar du att du har följande information från din lokala infrastrukturadministratör:
- Azure-prenumerations-ID – Azure-prenumerations-ID där Azure Local 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 det lokala Azure-klustret. Infrastrukturadministratören bör ge dig Resource Manager-ID:t 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 lokala logiska Azure-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 i din lokala fjärrdistribution av Azure. Kontrollera att du har den senaste versionen av Az CLI på utvecklingsdatorn. Du kan också välja att uppgradera din Az CLI-version med hjälp av
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 Microsoft Entra-gruppen har klusteradministratörsåtkomst till klustret. Se till att lägga till dig själv som medlem i Microsoft Entra-gruppen. 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, inspektera 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. Kontrollera 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
Efter några minuter slutförs kommandot och returnerar JSON-formaterad information om klustret.
Kommentar
- SSH-nyckelvärdet är den offentliga nyckeln för åtkomst till noder i det etablerade klustret. Som standard finns den här nyckeln på
~/.ssh/id_rsa.pub
. Du kan ange en annan plats med hjälp av parametern--ssh-key-value
när klustret skapas. - Parametern
--generate-ssh-keys
krävs om det inte finns någon befintlig SSH-nyckel på den lokala datorn. Om du inte tar med den här parametern när klustret skapas och det inte finns någon SSH-nyckel får du ett felmeddelande. - Om du redan har en SSH-nyckel på den lokala datorn återanvänder AKS-klustret den nyckeln. I det här fallet har det ingen effekt att
--generate-ssh-keys
ange , eller utelämna den parametern.
Viktigt!
Om du vill använda Azure RBAC eller arbetsbelastningsidentitet för ett AKS-kluster måste du skicka de parametrar som krävs när klustret skapas med Hjälp av Azure CLI. För närvarande stöds inte uppdatering av ett befintligt AKS-kluster för att aktivera arbetsbelastningsidentitet och/eller Azure RBAC. Mer information finns i Använda Azure RBAC för Kubernetes-auktorisering eller Distribuera och konfigurera arbetsbelastningsidentitet för klustret.
Ansluta till Kubernetes-klustret
Nu kan du ansluta till kubernetes-klustret genom att köra az connectedk8s proxy
kommandot från utvecklingsdatorn. Kontrollera 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 ditt Kubernetes-kluster 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 överskrids 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 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 på 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 DEN EXTERNA 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