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:

  1. Skapa ett Kubernetes-kluster i Azure Stack HCI 23H2 med Azure CLI. Klustret är Azure Arc-anslutet som standard.
  2. 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.
  3. Få åtkomst till klustret med kubectl och din Microsoft Entra ID.
  4. 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 tsvom 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

Nästa steg