Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Gäller för: AKS på Azure Local
Den här artikeln beskriver hur man skapar Kubernetes-kluster i Azure Local med hjälp av Azure CLI. Arbetsflödet är följande:
- Skapa ett Kubernetes-kluster i Azure Local med hjälp av Azure CLI. Klustret är som standard anslutet till Azure Arc.
- När du skapar klustret, anger du en Microsoft Entra-grupp som innehåller listan över Microsoft Entra-användare med administratörsbehörighet för Kubernetes-kluster.
- Åtkomst till klustret med hjälp av kubectl och din Microsoft Entra ID.
- Kör en exempelapplikation med flera behållare, med ett webbgränssnitt och en Redis-instans i klustret.
Innan du börjar
- Innan du börjar, se till att du har följande information från din lokala nätverksadministratör:
- Azure subscription ID - Azure-abonnemangs-ID där Azure Local används för distribution och registrering.
-
Anpassad plats-ID - Azure Resource Manager-ID för den anpassade platsen. Den anpassade platsen konfigureras under distributionen av Azure Local-klustret. Din infrastrukturadministratör bör ge dig resurschefens ID för den anpassade platsen. Denna parameter krävs för att skapa Kubernetes-kluster. Du kan också få Resource Manager-ID med hjälp av
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. -
Network ID - Azure Resource Manager ID för det lokala logiska nätverket i Azure skapat enligt dessa steg. Din administratör bör ge dig ID:t för det logiska nätverket. Denna parameter krävs för att skapa Kubernetes-kluster. Du kan också få Azure Resource Manager-ID med hjälp av
az stack-hci-vm network lnet show --name "<lnet name>" --resource-group <azure resource group> --query "id" -o tsvom du vet vilken resursgrupp där det logiska nätverket skapades.
- Du kan köra stegen i denna artikel på en lokal utvecklingsmaskin för att skapa ett Kubernetes-kluster på din fjärranslutna Azure Local-distribution. Se till att du har den senaste versionen av Az CLI på din utvecklingsmaskin. 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örsbehörighet 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 hjälp av kubectl. För mer information om att skapa Microsoft Entra-grupper och lägga till användare, se Hantera Microsoft Entra-grupper och gruppmedlemskap.
- Ladda ned och installera kubectl på utvecklingsdatorn. Kubernetes kommandoradsverktyg, kubectl, gör det möjligt för dig att köra kommandon mot Kubernetes-kluster. Du kan använda kubectl för att distribuera applikationer, inspektera och hantera klusterresurser samt visa loggar.
Installera Azure CLI-extensionen
Kör följande kommandon för att installera nödvändiga Azure CLI-tillägg.
Varning
Installera inte följande tillägg direkt på en lokal Azure-nod. Vi rekommenderar att du installerar dem på en klientdator som du använder för att ansluta till din lokala Azure-instans.
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
Använd kommandot az aksarc create 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-abonnemang, välj det lämpliga abonnemangs-ID:t med hjälp av kommandot az account set. Med kommandot az aksarc create rekommenderar vi att du använder flaggan --validate, som validerar de inmatningsparametrar du avser att använda. När indataparametrarna har validerats kan du köra kommandot az aksarc create utan flaggan --validate för att skapa Kubernetes-klustret.
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.
Överväganden
Notera följande överväganden när du skapar en kluster:
- SSH-nycklar är viktiga för felsökning och logginsamling. Se till att spara din privata nyckelfil för framtida användning. För att få åtkomst till noder, se Anslut till Windows- eller Linux-arbetarknoder med SSH.
- Du kan använda en redan existerande SSH-nyckel eller konfigurera SSH-nycklar för en AKS-kluster under skapandet av klustret. Om det inte finns någon befintlig SSH-nyckel på din lokala maskin är parametern
--generate-ssh-keysnödvändig. Du kan också begränsa SSH-åtkomsten genom att följa dokumentationen. Detaljerade anvisningar finns i Skapa och lagra SSH-nycklar med Azure CLI eller i Azure-portalen. - Om du inte inkluderar
--generate-ssh-keysunder klustercreation och ingen SSH-nyckel finns, får du ett felmeddelande. Om du redan har en SSH-nyckel på din lokala dator återanvänder AKS-klustret den. I det här fallet spelar det ingen roll om du anger--generate-ssh-keyseller inte. - Som standard lagras SSH-nyckeln på ~/.ssh/id_rsa.pub. Under klusterskapande kan du ange en alternativ plats med hjälp av parametern
--ssh-key-value.
Viktigt
För att använda Azure RBAC eller arbetsbelastningsidentitet för ett AKS-kluster måste du skicka de nödvändiga parametrarna under klusteruppbyggnaden med hjälp av Azure CLI. För närvarande är det inte möjligt att uppdatera en befintlig AKS-kluster för att aktivera arbetsbelastningsidentitet och/eller Azure RBAC. För mer information, se Använd Azure RBAC för Kubernetes-autentisering eller Distribuera och konfigurera Workload Identity för din kluster.
Anslut till Kubernetes-klustret
Nu kan du ansluta till din Kubernetes-kluster genom att köra az connectedk8s proxy-kommandot från din utvecklingsdator. Se till att du loggar in på Azure innan du kör det här kommandot. Om du har flera Azure-abonnemang, välj det lämpliga abonnemangs-ID:t med hjälp av kommandot az account set.
Detta kommando laddar ner kubeconfig-filen för ditt Kubernetes-kluster till din maskin för utveckling och öppnar en proxyanslutningskanal till ditt lokala Kubernetes-kluster. Kanalen är öppen så länge kommandot körs. Låt den här kommandot köras så länge som du vill ha tillgång till din kluster. Om det tar slut på tid, stäng CLI-fönstret, öppna ett nytt och kör sedan kommandot igen.
För att kunna köra följande kommando framgångsrikt måste du ha Contributor-behörigheter på resursgruppen som är värd för Kubernetes-klustret.
az connectedk8s proxy --name $aksclustername --resource-group $resource_group --file .\aks-arc-kube-config
Förväntat resultat:
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 din Kubernetes-kluster från en annan terminal/kommandotolk. Kontrollera att du kan ansluta till din Kubernetes-kluster 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
Följande utdataexempel visar noden som skapades i de tidigare stegen. Se till att nodens status är Ready:
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 och lastbalanseraren
En Kubernetes manifestfil definierar en klusters önskade tillstånd, till exempel vilka containerbilder 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-applikationen. Det här manifestet innehåller två Kubernetes-distributioner:
- Exempel på Python-applikationer för Azure Vote.
- En Redis-instans.
Två Kubernetes-tjänster skapas också:
- En intern tjänst för Redis-instansen.
- En extern tjänst för att nå Azure Vote-applikationen från internet.
Skapa en fil med namnet azure-vote.yaml, och kopiera in 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 framgångsrikt skapade distributionerna och tjänsterna:
deployment "azure-vote-back" created
service "azure-vote-back" created
deployment "azure-vote-front" created
service "azure-vote-front" created
Distribuera en MetalLB-lastbalanserare så att den kan tilldela en extern IP-adress för programmets klientdel. Du kan följa de här anvisningarna distribuera MetalLB-tillägget från Azure-portalen eller använda CLI.
Testa applikationen
När applikationen körs, exponerar en Kubernetes-tjänst applikationens frontend på internet. Denna process kan ta några minuter att slutföra.
Övervaka framsteg med hjälp av kommandot kubectl get service med argumentet --watch.
kubectl get service azure-vote-front --watch --kubeconfig .\aks-arc-kube-config
Den EXTERNAL-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 adress ä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 till 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 --name $aksclustername --resource-group $resource_group