Kubernetes-fürtök létrehozása az Azure CLI használatával
A következőkre vonatkozik: Azure Local, 23H2-es verzió
Ez a cikk azt ismerteti, hogyan hozhat létre Kubernetes-fürtöket az Azure Local-ban az Azure CLI használatával. A munkafolyamat a következő:
- Hozzon létre egy Kubernetes-fürtöt az Azure Local 23H2-es verziójában az Azure CLI használatával. A fürt alapértelmezés szerint Azure Arc-kapcsolattal rendelkezik.
- A fürt létrehozásakor meg kell adnia egy Microsoft Entra-csoportot, amely tartalmazza a Kubernetes-fürt rendszergazdai hozzáféréssel rendelkező Microsoft Entra-felhasználók listáját.
- A fürt elérése a kubectl és a Microsoft Entra-azonosító használatával.
- Futtasson egy többtárolós mintaalkalmazást egy webes előtérrel és egy Redis-példánnyal a fürtben.
Mielőtt elkezdené
- Mielőtt hozzákezdene, győződjön meg arról, hogy a helyszíni infrastruktúra rendszergazdájától a következő adatokkal rendelkezik:
- Azure-előfizetés azonosítója – Az Azure-előfizetés azonosítója, ahol az Azure Local az üzembe helyezéshez és a regisztrációhoz használatos.
- Egyéni helyazonosító – Az egyéni hely Azure Resource Manager-azonosítója. Az egyéni hely az Azure Local fürt üzembe helyezése során van konfigurálva. Az infrastruktúra rendszergazdájá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ót
az customlocation show --name "<custom location name>" --resource-group <azure resource group> --query "id" -o tsv
akkor is lekérheti, ha az infrastruktúra-rendszergazda egyéni helynevet és erőforráscsoportnevet ad meg. - Hálózati azonosító – Az Alábbi lépések végrehajtásával létrehozott Azure Local 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ót
az stack-hci-vm network lnet show --name "<lnet name>" --resource-group <azure resource group> --query "id" -o tsv
akkor is lekérheti, ha ismeri azt az erőforráscsoportot, amelyben a logikai hálózat létrejött.
- Az ebben a cikkben ismertetett lépéseket egy helyi fejlesztőgépen futtatva létrehozhat egy Kubernetes-fürtöt a távoli Azure Local-környezetben. Győződjön meg arról, hogy a fejlesztői gépen az Az CLI legújabb verziója található. Az Az CLI-verzió frissítését is választhatja a következővel
az upgrade
: . - 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őgépre. A Kubernetes parancssori eszköze, a kubectl lehetővé teszi, hogy parancsokat futtasson a Kubernetes-fürtökön. A kubectl használatával alkalmazásokat helyezhet üzembe, megvizsgálhatja és kezelheti a fürterőforrásokat, és 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
A parancs használatával hozzon létre egy Kubernetes-fürtöt az AKS Arcban. A parancs futtatása előtt győződjön meg arról, hogy bejelentkezik 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
Néhány perc elteltével a parancs befejeződik, és JSON formátumú információkat ad vissza a fürtről.
Feljegyzés
- Az SSH-kulcs értéke a kiépített fürt csomópontjaihoz való hozzáférés nyilvános kulcsa. Ez a kulcs alapértelmezés szerint a következő helyen
~/.ssh/id_rsa.pub
található: . A fürt létrehozása során a paraméterrel--ssh-key-value
megadhat egy másik helyet. - A
--generate-ssh-keys
paraméterre akkor van szükség, ha nincs már meglévő SSH-kulcs a helyi gépen. Ha nem adja meg ezt a paramétert a fürt létrehozásakor, és nem létezik SSH-kulcs, hibaüzenet jelenik meg. - Ha már rendelkezik SSH-kulccsal a helyi gépen, az AKS-fürt újra felhasználja ezt a kulcsot. Ebben az esetben a paraméter megadása
--generate-ssh-keys
vagy kihagyása nincs hatással.
Fontos
Ha Azure RBAC-t vagy számítási feladat identitását szeretné használni egy AKS-fürthöz, meg kell adnia a szükséges paramétereket a fürt létrehozása során az Azure CLI használatával. Jelenleg nem támogatott a meglévő AKS-fürt frissítése a számítási feladatok identitásának és/vagy az Azure RBAC engedélyezéséhez. További információ: Az Azure RBAC használata a Kubernetes-engedélyezéshez vagy a számítási feladatok identitásának üzembe helyezése és konfigurálása a fürthöz.
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 parancs futtatásával. A parancs futtatása előtt győződjön meg arról, hogy bejelentkezik 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. Addig futtassa ezt a parancsot, 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 ezt a munkamenetet, és csatlakozzon a Kubernetes-fürthöz egy másik terminálról vagy 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 hogy mely tárolólemezképeket kell futtatni.
A jegyzék használatával létrehozhatja az Azure Vote alkalmazás futtatásához szükséges összes objektumot. Ez a jegyzék két Kubernetes-üzembe helyezést 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.
- Egy külső szolgáltatás, amely az Azure Vote-alkalmazást az internetről éri el.
Hozzon létre egy azure-vote.yaml nevű fájlt, és másolja a következő jegyzékbe:
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
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 üzembe helyezéseket é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 egy Kubernetes-szolgáltatás elérhetővé teszi az alkalmazás előtérét az interneten. A folyamat eltarthat pár percig.
Figyelje a folyamatot 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 külső IP-kimenete kezdetben függőben van.
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
azure-vote-front LoadBalancer 10.0.37.27 <pending> 80:30572/TCP 6s
Ha a külső IP-cím függőben lévőről tényleges nyilvános IP-címre változik, 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 jeleníti meg:
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 parancsot a az aksarc delete
létrehozott fürt törléséhez:
az aksarc delete --resource-group $aksclustername --name $resource_group