Sdílet prostřednictvím


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

Platí pro: Azure Local, verze 23H2

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

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

Než začnete

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

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

az aksarc create Pomocí příkazu vytvořte cluster Kubernetes v AKS Arc. Před spuštěním tohoto příkazu se ujistěte, že se k Azure přihlašujete. Pokud máte více předplatných Azure, pomocí příkazu az account set vyberte příslušné ID předplatného.

az aksarc create -n $aksclustername -g $resource_group --custom-location $customlocationID --vnet-ids $logicnetId --aad-admin-group-object-ids $aadgroupID --generate-ssh-keys 

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

Poznámka:

  • Hodnota klíče SSH je veřejný klíč pro přístup k uzlům ve zřízeném clusteru. Ve výchozím nastavení se tento klíč nachází na ~/.ssh/id_rsa.pubadrese . Při vytváření clusteru můžete zadat jiné umístění pomocí parametru --ssh-key-value .
  • Parametr --generate-ssh-keys se vyžaduje, pokud na místním počítači neexistuje žádný předem existující klíč SSH. Pokud tento parametr nezadáte během vytváření clusteru a neexistuje žádný klíč SSH, zobrazí se chybová zpráva.
  • Pokud už na místním počítači máte klíč SSH, cluster AKS tento klíč znovu použije. V tomto případě --generate-ssh-keyszadání parametru nebo vynechání tohoto parametru nemá žádný vliv.

Důležité

Pokud chcete použít Azure RBAC nebo identitu úlohy pro cluster AKS, musíte během vytváření clusteru předat požadované parametry pomocí Azure CLI. Aktualizace existujícího clusteru AKS za účelem povolení identity úloh nebo Azure RBAC se v současné době nepodporuje. Další informace najdete v tématu Použití Azure RBAC pro autorizaci Kubernetes nebo nasazení a konfigurace identity úloh pro váš cluster.

Připojení ke clusteru Kubernetes

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

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 tak dlouho, dokud se příkaz spustí. 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ý 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ěvatel ve 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í příklad výstupu 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 Python.
  • Instance Redis.

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

  • Interní služba instance 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 ho v následujícím manifestu:

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

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

Když se aplikace spustí, služba Kubernetes zveřejní front-end aplikace na internetu. Dokončení tohoto procesu může trvat několik minut.

Sledujte průběh 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 zobrazuje 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 čekání na skutečnou veřejnou IP adresu, pomocí kombinace kláves CTRL-C zastavte proces sledování kubectl. 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 vidět aplikaci Azure Vote v akci, otevřete webový prohlížeč na externí IP adresu vaší služby.

Odstranění clusteru

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

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

Další kroky