Vytváření clusterů Kubernetes pomocí Azure CLI

Platí pro: Azure Stack HCI verze 23H2

Tento článek popisuje, jak vytvářet clustery Kubernetes v Azure Stack HCI pomocí Azure CLI. Pracovní postup je následující:

  1. Vytvořte cluster Kubernetes v Azure Stack HCI 23H2 pomocí Azure CLI. Cluster je ve výchozím nastavení připojený k Azure Arc.
  2. Při vytváření clusteru zadáte skupinu Microsoft Entra, která obsahuje seznam Microsoft Entra uživatelů s přístupem správce clusteru Kubernetes.
  3. Přístup ke clusteru pomocí kubectl a Microsoft Entra ID.
  4. Spusťte ukázkovou vícekontejnerovou aplikaci s webovým front-endem a instancí Redis v clusteru.

Než začnete

  • Než začnete, ujistěte se, že máte od správce místní infrastruktury následující podrobnosti:
    • ID předplatného Azure – ID předplatného Azure, ve kterém se azure Stack HCI používá k nasazení a registraci.
    • ID vlastního umístění – ID azure Resource Manager vlastního umístění. Vlastní umístění se konfiguruje během nasazení clusteru Azure Stack HCI. Správce infrastruktury by vám měl poskytnout ID Resource Manager vlastního umístění. Tento parametr se vyžaduje k vytváření clusterů Kubernetes. ID Resource Manager můžete také získat pomocí az customlocation show --name "<custom location name>" --resource-group <azure resource group> --query "id" -o tsvpříkazu , pokud správce infrastruktury zadá vlastní název umístění a název skupiny prostředků.
    • ID sítě – ID azure Resource Manager logické sítě Azure Stack HCI vytvořené podle těchto kroků. Správce by vám měl poskytnout ID logické sítě. Tento parametr se vyžaduje k vytváření clusterů Kubernetes. ID Resource Manager Azure můžete také získat pomocí, az stack-hci-vm network lnet show --name "<lnet name>" --resource-group <azure resource group> --query "id" -o tsv pokud znáte skupinu prostředků, ve které se logická síť vytvořila.
  • Kroky v tomto článku můžete spustit na místním vývojovém počítači a vytvořit cluster Kubernetes ve vzdáleném nasazení Azure Stack HCI. Ujistěte se, že na vývojovém počítači máte nejnovější verzi Az CLI . Můžete se také rozhodnout upgradovat verzi Az CLI pomocí az upgrade.
  • Pokud se chcete ke clusteru Kubernetes připojit odkudkoli, vytvořte skupinu Microsoft Entra a přidejte do ní členy. Všichni členové ve skupině Microsoft Entra mají ke clusteru přístup správce clusteru. Nezapomeňte přidat sami sebe jako člena skupiny Microsoft Entra. Pokud nepřidáte sami, nemůžete ke clusteru Kubernetes přistupovat pomocí kubectl. Další informace o vytváření skupin Microsoft Entra a přidávání uživatelů najdete v tématu Správa Microsoft Entra skupin a členství ve skupinách.
  • Stáhněte a nainstalujte kubectl na vývojový počítač. Nástroj příkazového řádku Kubernetes kubectl umožňuje spouštět příkazy pro clustery Kubernetes. Kubectl můžete použít k nasazení aplikací, kontrole a správě prostředků clusteru a zobrazení protokolů.

Instalace rozšíření Azure CLI

Spuštěním následujícího příkazu nainstalujte potřebná rozšíření Azure CLI:

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

Vytvoření clusteru Kubernetes

Pomocí příkazu az aksarc create vytvořte cluster Kubernetes v AKS Arc. Před spuštěním tohoto příkazu se ujistěte, že se přihlásíte k Azure. Pokud máte více předplatných Azure, vyberte příslušné ID předplatného pomocí příkazu 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

Po několika minutách se příkaz dokončí a vrátí informace o clusteru ve formátu JSON.

Připojení ke clusteru Kubernetes

Teď se můžete ke clusteru Kubernetes připojit spuštěním příkazu z vývojového az connectedk8s proxy počítače. Před spuštěním tohoto příkazu se ujistěte, že se přihlásíte k Azure. Pokud máte více předplatných Azure, vyberte příslušné ID předplatného pomocí příkazu az account set .

Tento příkaz stáhne kubeconfig clusteru Kubernetes do vývojového počítače a otevře kanál připojení proxy serveru k místnímu clusteru Kubernetes. Kanál je otevřený po dobu spuštění příkazu. Nechte tento příkaz běžet tak dlouho, dokud chcete získat přístup ke clusteru. Pokud vyprší časový limit, zavřete okno rozhraní příkazového řádku, otevřete nové okno a spusťte příkaz znovu.

Abyste mohli úspěšně spustit následující příkaz, musíte mít oprávnění přispěvatele ke skupině prostředků, která je hostitelem clusteru Kubernetes:

az connectedk8s proxy --name $aksclustername --resource-group $resource_group --file .\aks-arc-kube-config

Očekávaný výstup:

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.

Nechte tuto relaci spuštěnou a připojte se ke clusteru Kubernetes z jiného terminálu nebo příkazového řádku. Spuštěním příkazu kubectl get ověřte, že se můžete připojit ke clusteru Kubernetes. Tento příkaz vrátí seznam uzlů clusteru:

kubectl get node -A --kubeconfig .\aks-arc-kube-config

Následující výstupní příklad ukazuje uzel vytvořený v předchozích krocích. Ujistěte se, že je stav uzlu Připravený:

NAME             STATUS ROLES                AGE VERSION
moc-l0ttdmaioew  Ready  control-plane,master 34m v1.24.11
moc-ls38tngowsl  Ready  <none>               32m v1.24.11

Nasazení aplikace

Soubor manifestu Kubernetes definuje požadovaný stav clusteru, například které image kontejneru se mají spustit.

Manifest můžete použít k vytvoření všech objektů potřebných ke spuštění aplikace Azure Vote. Tento manifest zahrnuje dvě nasazení Kubernetes:

  • Ukázkové aplikace Azure Vote v Pythonu
  • Instance Redis.

Vytvoří se také dvě služby Kubernetes :

  • Interní služba pro instanci Redis.
  • Externí služba pro přístup k aplikaci Azure Vote z internetu.

Vytvořte soubor s názvem azure-vote.yaml a zkopírujte následující 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: mcr.microsoft.com/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: mcr.microsoft.com/azuredocs/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

Nasaďte aplikaci pomocí příkazu kubectl apply a zadejte název YAML:

kubectl apply -f azure-vote.yaml --kubeconfig .\\aks-arc-kube-config

Následující příklad výstupu ukazuje úspěšně vytvořená nasazení a služby:

deployment "azure-vote-back" created
service "azure-vote-back" created
deployment "azure-vote-front" created
service "azure-vote-front" created

Testování aplikace

Při spuštění aplikace služba Kubernetes zpřístupní front-end aplikace na internetu. Dokončení tohoto procesu může trvat několik minut.

Průběh můžete monitorovat pomocí příkazu kubectl get service s argumentem --watch .

kubectl get service azure-vote-front --watch --kubeconfig .\aks-arc-kube-config

Výstup EXTERNAL-IP pro službu azure-vote-front se zpočátku zobrazí jako čekající.

NAME             TYPE         CLUSTER-IP EXTERNAL-IP PORT(S)      AGE
azure-vote-front LoadBalancer 10.0.37.27 <pending>   80:30572/TCP 6s

Jakmile se externí IP adresa změní z čekající na skutečnou veřejnou IP adresu, pomocí kombinace kláves CTRL-C zastavte proces kubectl watch. Následující příklad výstupu ukazuje platnou veřejnou IP adresu přiřazenou službě:

azure-vote-front LoadBalancer 10.0.37.27 52.179.23.131 80:30572/TCP 2m

Pokud chcete zobrazit aplikaci Azure Vote v akci, otevřete webový prohlížeč na externí IP adresu vaší služby.

Odstranění clusteru

Spuštěním příkazu vyčistíte az aksarc delete cluster, který jste vytvořili:

az aksarc delete --resource-group $aksclustername --name $resource_group

Další kroky