Megosztás a következőn keresztül:


Kubernetes-fürtök létrehozása az Azure CLI használatával

A következőkre vonatkozik: Azure Stack HCI, 23H2-es verzió

Ez a cikk azt ismerteti, hogyan hozhat létre Kubernetes-fürtöket az Azure Stack HCI-ben az Azure CLI használatával. A munkafolyamat a következő:

  1. Hozzon létre egy Kubernetes-fürtöt az Azure Stack HCI 23H2-ben az Azure CLI használatával. A fürt alapértelmezés szerint Azure Arc-kapcsolattal van csatlakoztatva.
  2. A fürt létrehozása során egy Microsoft Entra csoportot biztosít, amely tartalmazza a Kubernetes-fürt rendszergazdai hozzáféréssel rendelkező Microsoft Entra felhasználók listáját.
  3. A fürt elérése a kubectl és a Microsoft Entra ID használatával.
  4. Futtasson egy többtárolós mintaalkalmazást egy webes előtérrendszerrel és egy Redis-példánnyal a fürtben.

Előkészületek

  • Mielőtt hozzákezdene, győződjön meg arról, hogy rendelkezik a helyszíni infrastruktúra rendszergazdájának következő adataival:
    • Azure-előfizetés azonosítója – Az Azure-előfizetés azonosítója, ahol az Azure Stack HCI üzemelő példányként és regisztrációként használható.
    • Egyéni hely azonosítója – Az egyéni hely Azure Resource Manager azonosítója. Az egyéni hely az Azure Stack HCI-fürt üzembe helyezése során van konfigurálva. Az infrastruktúra-rendszergazdának meg kell adnia az egyéni hely Resource Manager azonosítóját. Ez a paraméter a Kubernetes-fürtök létrehozásához szükséges. A Resource Manager azonosítóját is lekérheti a használatávalaz customlocation show --name "<custom location name>" --resource-group <azure resource group> --query "id" -o tsv, ha az infrastruktúra-rendszergazda egyéni helynevet és erőforráscsoport-nevet ad meg.
    • Hálózati azonosítóAz Alábbi lépések végrehajtásával létrehozott Azure Stack HCI logikai hálózat Azure Resource Manager azonosítója. A rendszergazdának meg kell adnia a logikai hálózat azonosítóját. Ez a paraméter a Kubernetes-fürtök létrehozásához szükséges. Az Azure Resource Manager azonosítóját az stack-hci-vm network lnet show --name "<lnet name>" --resource-group <azure resource group> --query "id" -o tsv is lekérheti, ha ismeri azt az erőforráscsoportot, amelyben a logikai hálózat létre lett hozva.
  • A cikkben található lépéseket egy helyi fejlesztőgépen futtatva létrehozhat egy Kubernetes-fürtöt a távoli Azure Stack HCI-környezetben. Győződjön meg arról, hogy az Az CLI legújabb verzióját használja a fejlesztői gépen. Az Az CLI-verziót a használatával az upgradeis frissítheti.
  • Ha bárhonnan csatlakozni szeretne a Kubernetes-fürthöz, hozzon létre egy Microsoft Entra csoportot, és adjon hozzá tagokat. A Microsoft Entra csoport összes tagja fürtadminisztrátori hozzáféréssel rendelkezik a fürthöz. Mindenképpen vegye fel magát tagként a Microsoft Entra csoportba. Ha nem adja hozzá magát, nem férhet hozzá a Kubernetes-fürthöz a kubectl használatával. További információ a Microsoft Entra csoportok létrehozásáról és a felhasználók hozzáadásáról: Microsoft Entra csoportok és csoporttagság kezelése.
  • Töltse le és telepítse a kubectl-et a fejlesztői gépére. A Kubernetes parancssori eszköze, a kubectl lehetővé teszi a parancsok Kubernetes-fürtökön való futtatását. A kubectl használatával alkalmazásokat helyezhet üzembe, megvizsgálhatja és kezelheti a fürterőforrásokat, valamint megtekintheti a naplókat.

Az Azure CLI-bővítmény telepítése

Futtassa a következő parancsot a szükséges Azure CLI-bővítmények telepítéséhez:

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

Kubernetes-fürt létrehozása

az aksarc create Az paranccsal hozzon létre egy Kubernetes-fürtöt az AKS Arcban. A parancs futtatása előtt mindenképpen jelentkezzen be az Azure-ba. Ha több Azure-előfizetéssel rendelkezik, válassza ki a megfelelő előfizetés-azonosítót az az account set paranccsal.

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

Néhány perc elteltével a parancs befejeződik, és JSON formátumú információkat ad vissza a fürtről.

Csatlakozás a Kubernetes-fürthöz

Most már csatlakozhat a Kubernetes-fürthöz a az connectedk8s proxy fejlesztői gépről futtatott paranccsal. A parancs futtatása előtt mindenképpen jelentkezzen be az Azure-ba. Ha több Azure-előfizetéssel rendelkezik, válassza ki a megfelelő előfizetés-azonosítót az az account set paranccsal.

Ez a parancs letölti a Kubernetes-fürt kubeconfigját a fejlesztői gépre, és megnyitja a helyszíni Kubernetes-fürt proxykapcsolati csatornáját. A csatorna addig van nyitva, amíg a parancs fut. Futtassa ezt a parancsot addig, amíg hozzá szeretne férni a fürthöz. Ha túllépi az időkorlátot, zárja be a parancssori felület ablakát, nyisson meg egy újat, majd futtassa újra a parancsot.

A következő parancs sikeres futtatásához közreműködői engedélyekkel kell rendelkeznie a Kubernetes-fürtöt üzemeltető erőforráscsoporton:

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

Várt kimenet:

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.

Futtassa a munkamenetet, és csatlakozzon a Kubernetes-fürthöz egy másik terminálról/parancssorból. Ellenőrizze, hogy tud-e csatlakozni a Kubernetes-fürthöz a kubectl get parancs futtatásával. Ez a parancs a fürtcsomópontok listáját adja vissza:

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

Az alábbi kimeneti példa az előző lépésekben létrehozott csomópontot mutatja be. Győződjön meg arról, hogy a csomópont állapota Kész:

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

Az alkalmazás üzembe helyezése

A Kubernetes-jegyzékfájl meghatározza a fürt kívánt állapotát, például azt, hogy mely tárolólemezképeket kell futtatni.

A jegyzékfájl használatával létrehozhatja az Azure Vote alkalmazás futtatásához szükséges összes objektumot. Ez a jegyzékfájl két Kubernetes-üzemelő példányt tartalmaz:

  • A minta Azure Vote Python-alkalmazások.
  • Egy Redis-példány.

Két Kubernetes-szolgáltatás is létrejön:

  • A Redis-példány belső szolgáltatása.
  • Külső szolgáltatás az Azure Vote alkalmazás internetről való eléréséhez.

Hozzon létre egy azure-vote.yaml nevű fájlt, és másolja a következő jegyzékfájlba:

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

Telepítse az alkalmazást a kubectl apply paranccsal, és adja meg a YAML nevét:

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

Az alábbi példakimenet a sikeresen létrehozott üzemelő példányokat és szolgáltatásokat mutatja be:

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

Az alkalmazás tesztelése

Az alkalmazás futtatásakor a Kubernetes-szolgáltatás elérhetővé teszi az alkalmazás előtérrendszerét az interneten. A folyamat eltarthat pár percig.

Figyelje az előrehaladást a kubectl get service paranccsal az --watch argumentummal.

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

Az azure-vote-front szolgáltatás EXTERNAL-IP kimenete kezdetben függőben állapotúként jelenik meg.

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

Miután az EXTERNAL-IP-cím függő állapotról tényleges nyilvános IP-címre vált, a CTRL-C billentyűkombinációval állítsa le a kubectl watch folyamatot. Az alábbi példakimenet a szolgáltatáshoz rendelt érvényes nyilvános IP-címet mutatja be:

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

Az Azure Vote alkalmazás működés közbeni megtekintéséhez nyisson meg egy webböngészőt a szolgáltatás külső IP-címére.

A fürt törlése

Futtassa a az aksarc delete parancsot a létrehozott fürt törléséhez:

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

Következő lépések