Rövid útmutató: Azure Linux Container Host üzembe helyezése AKS-fürtökhöz az Azure PowerShell használatával
Az Azure Linux Container Host használatának első lépései az Azure PowerShell használatával egy Azure Linux Container Host üzembe helyezéséhez egy AKS-fürthöz. Az előfeltételek telepítése után létre kell hoznia egy erőforráscsoportot, létre kell hoznia egy AKS-fürtöt, csatlakoznia kell a fürthöz, és futtatnia kell egy többtárolós mintaalkalmazást a fürtben.
Előfeltételek
- Ha nem rendelkezik Azure-előfizetéssel, első lépésként hozzon létre egy ingyenes Azure-fiókot.
- Használja a PowerShell-környezetet az Azure Cloud Shellben. További információ: Azure Cloud Shell – rövid útmutató.
- Ha helyileg futtatja a PowerShellt, telepítse a modult
Az PowerShell
, és csatlakozzon az Azure-fiókjához aConnect-AzAccount
parancsmag használatával. Az Az PowerShell-modul telepítéséről további információt az Azure PowerShell telepítése című témakörben talál. - A fürt létrehozásához használt identitás rendelkezik a megfelelő minimális engedélyekkel. Az AKS-hez való hozzáféréssel és identitással kapcsolatos további részletekért tekintse meg az Azure Kubernetes Service (AKS) hozzáféréssel és identitással kapcsolatos lehetőségeit.
Erőforráscsoport létrehozása
Az Azure-erőforráscsoportok olyan logikai csoportok, amelyekben az Azure-erőforrások üzembe helyezése és kezelése történik. Erőforráscsoport létrehozásakor meg kell adnia egy helyet. Ez a hely az erőforráscsoport metaadatainak tárolási helye, és ahol az erőforrások az Azure-ban futnak, ha nem ad meg egy másik régiót az erőforrás létrehozása során.
Az alábbi példa a testAzureLinuxResourceGroup nevű erőforráscsoportot hozza létre az eastus régióban.
Hozzon létre egy erőforráscsoportot a
New-AzResourceGroup
parancsmaggal.New-AzResourceGroup -Name testAzureLinuxResourceGroup -Location eastus
Az alábbi példakimenet az erőforráscsoport sikeres létrehozásához hasonlít:
ResourceGroupName : testAzureLinuxResourceGroup Location : eastus ProvisioningState : Succeeded Tags : ResourceId : /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/testAzureLinuxResourceGroup
Feljegyzés
A fenti példa eastus-t használ, de az Azure Linux Container Host-fürtök minden régióban elérhetők.
Azure Linux Container Host-fürt létrehozása
Az alábbi példa egy testAzureLinuxCluster nevű fürtöt hoz létre egy csomóponttal.
Hozzon létre egy AKS-fürtöt az
New-AzAksCluster
AzureLinux jelölővel rendelkező parancsmag használatával-NodeOsSKU
.New-AzAksCluster -ResourceGroupName testAzureLinuxResourceGroup -Name testAzureLinuxCluster -NodeOsSKU AzureLinux
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 fürthöz
Kubernetes-fürt kezeléséhez használja a Kubernetes parancssori ügyfelet, a kubectl-et. kubectl
az Azure Cloud Shell használata esetén már telepítve van.
Telepítse
kubectl
helyileg aInstall-AzAksCliTool
parancsmaggal.Install-AzAksCliTool
Konfigurálja
kubectl
a Kubernetes-fürthöz való csatlakozást aImport-AzAksCredential
parancsmag használatával. Ez a parancs letölti a hitelesítő adatokat, és konfigurálja a Kubernetes parancssori felületét a használatukhoz.Import-AzAksCredential -ResourceGroupName testAzureLinuxResourceGroup -Name testAzureLinuxCluster
Ellenőrizze a fürthöz való kapcsolatot a
kubectl get
paranccsal. Ez a parancs a fürt podjainak listáját adja vissza.kubectl get pods --all-namespaces
Az alkalmazás üzembe helyezése
Az alkalmazás üzembe helyezéséhez egy jegyzékfájl használatával hozza létre az AKS Store-alkalmazás futtatásához szükséges összes objektumot. 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 a következő Kubernetes-üzemelő példányokat és szolgáltatásokat tartalmazza:
- Áruházi előtér: Webalkalmazás az ügyfelek számára termékek megtekintésére és megrendelések leadására.
- Termékszolgáltatás: A termékinformációkat jeleníti meg.
- Rendelési szolgáltatás: Rendeléseket rendel.
- Nyúl MQ: Üzenetsor rendelési üzenetsorhoz.
Feljegyzés
Nem javasoljuk az állapotalapú tárolók( például a Rabbit MQ) futtatását az éles környezetben tartós tárolás nélkül. Ezeket itt az egyszerűség kedvéért használjuk, de ajánlott felügyelt szolgáltatásokat használni, például az Azure Cosmos DB-t vagy az Azure Service Bust.
Hozzon létre egy fájlt,
aks-store-quickstart.yaml
és másolja a következő jegyzékbe:apiVersion: apps/v1 kind: Deployment metadata: name: rabbitmq spec: replicas: 1 selector: matchLabels: app: rabbitmq template: metadata: labels: app: rabbitmq spec: nodeSelector: "kubernetes.io/os": linux containers: - name: rabbitmq image: mcr.microsoft.com/mirror/docker/library/rabbitmq:3.10-management-alpine ports: - containerPort: 5672 name: rabbitmq-amqp - containerPort: 15672 name: rabbitmq-http env: - name: RABBITMQ_DEFAULT_USER value: "username" - name: RABBITMQ_DEFAULT_PASS value: "password" resources: requests: cpu: 10m memory: 128Mi limits: cpu: 250m memory: 256Mi volumeMounts: - name: rabbitmq-enabled-plugins mountPath: /etc/rabbitmq/enabled_plugins subPath: enabled_plugins volumes: - name: rabbitmq-enabled-plugins configMap: name: rabbitmq-enabled-plugins items: - key: rabbitmq_enabled_plugins path: enabled_plugins --- apiVersion: v1 data: rabbitmq_enabled_plugins: | [rabbitmq_management,rabbitmq_prometheus,rabbitmq_amqp1_0]. kind: ConfigMap metadata: name: rabbitmq-enabled-plugins --- apiVersion: v1 kind: Service metadata: name: rabbitmq spec: selector: app: rabbitmq ports: - name: rabbitmq-amqp port: 5672 targetPort: 5672 - name: rabbitmq-http port: 15672 targetPort: 15672 type: ClusterIP --- apiVersion: apps/v1 kind: Deployment metadata: name: order-service spec: replicas: 1 selector: matchLabels: app: order-service template: metadata: labels: app: order-service spec: nodeSelector: "kubernetes.io/os": linux containers: - name: order-service image: ghcr.io/azure-samples/aks-store-demo/order-service:latest ports: - containerPort: 3000 env: - name: ORDER_QUEUE_HOSTNAME value: "rabbitmq" - name: ORDER_QUEUE_PORT value: "5672" - name: ORDER_QUEUE_USERNAME value: "username" - name: ORDER_QUEUE_PASSWORD value: "password" - name: ORDER_QUEUE_NAME value: "orders" - name: FASTIFY_ADDRESS value: "0.0.0.0" resources: requests: cpu: 1m memory: 50Mi limits: cpu: 75m memory: 128Mi initContainers: - name: wait-for-rabbitmq image: busybox command: ['sh', '-c', 'until nc -zv rabbitmq 5672; do echo waiting for rabbitmq; sleep 2; done;'] resources: requests: cpu: 1m memory: 50Mi limits: cpu: 75m memory: 128Mi --- apiVersion: v1 kind: Service metadata: name: order-service spec: type: ClusterIP ports: - name: http port: 3000 targetPort: 3000 selector: app: order-service --- apiVersion: apps/v1 kind: Deployment metadata: name: product-service spec: replicas: 1 selector: matchLabels: app: product-service template: metadata: labels: app: product-service spec: nodeSelector: "kubernetes.io/os": linux containers: - name: product-service image: ghcr.io/azure-samples/aks-store-demo/product-service:latest ports: - containerPort: 3002 resources: requests: cpu: 1m memory: 1Mi limits: cpu: 1m memory: 7Mi --- apiVersion: v1 kind: Service metadata: name: product-service spec: type: ClusterIP ports: - name: http port: 3002 targetPort: 3002 selector: app: product-service --- apiVersion: apps/v1 kind: Deployment metadata: name: store-front spec: replicas: 1 selector: matchLabels: app: store-front template: metadata: labels: app: store-front spec: nodeSelector: "kubernetes.io/os": linux containers: - name: store-front image: ghcr.io/azure-samples/aks-store-demo/store-front:latest ports: - containerPort: 8080 name: store-front env: - name: VUE_APP_ORDER_SERVICE_URL value: "http://order-service:3000/" - name: VUE_APP_PRODUCT_SERVICE_URL value: "http://product-service:3002/" resources: requests: cpu: 1m memory: 200Mi limits: cpu: 1000m memory: 512Mi --- apiVersion: v1 kind: Service metadata: name: store-front spec: ports: - port: 80 targetPort: 8080 selector: app: store-front type: LoadBalancer
Ha helyileg hozza létre és menti a YAML-fájlt, feltöltheti a jegyzékfájlt az alapértelmezett könyvtárba a CloudShellben a Fájlok feltöltése/letöltése gombra kattintva, majd kiválasztva a fájlt a helyi fájlrendszerből.
Telepítse az alkalmazást a kubectl Apply paranccsal, és adja meg a YAML-jegyzék nevét.
kubectl apply -f aks-store-quickstart.yaml
Az alábbi példakimenet az üzemelő példányokat és szolgáltatásokat mutatja be:
deployment.apps/rabbitmq created service/rabbitmq created deployment.apps/order-service created service/order-service created deployment.apps/product-service created service/product-service created deployment.apps/store-front created service/store-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.
Ellenőrizze az üzembe helyezett podok állapotát a kubectl get pods paranccsal. Győződjön meg arról, hogy az összes pod a folytatás előtt van
Running
.kubectl get pods
Ellenőrizze, hogy van-e nyilvános IP-cím az áruházi előtéralkalmazáshoz. Figyelje a folyamatot a kubectl get service paranccsal az
--watch
argumentummal.kubectl get service store-front --watch
A szolgáltatás KÜLSŐ-IP-kimenete
store-front
kezdetben függőben lévőként jelenik meg:NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE store-front LoadBalancer 10.0.100.10 <pending> 80:30025/TCP 4h4m
Ha a külső IP-cím függőben lévőről tényleges nyilvános IP-címre változik, állítsa
CTRL-C
le akubectl
figyelés folyamatát.Az alábbi példakimenet a szolgáltatáshoz rendelt érvényes nyilvános IP-címet jeleníti meg:
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE store-front LoadBalancer 10.0.100.10 20.62.159.19 80:30025/TCP 4h5m
Nyisson meg egy webböngészőt a szolgáltatás külső IP-címére az Azure Store-alkalmazás működés közbeni megtekintéséhez.
A fürt törlése
Ha nem tervezi folytatni a következő oktatóanyagokat, távolítsa el a létrehozott erőforrásokat, hogy elkerülje az Azure-díjak felmerülését.
Távolítsa el az erőforráscsoportot és az összes kapcsolódó erőforrást a
RemoveAzResourceGroup
parancsmag használatával.Remove-AzResourceGroup -Name testAzureLinuxResourceGroup
Következő lépések
Ebben a rövid útmutatóban üzembe helyezett egy Azure Linux Container Host AKS-fürtöt. Ha többet szeretne megtudni az Azure Linux Container Hostról, és végig szeretne járni egy teljes fürttelepítési és felügyeleti példán, folytassa az Azure Linux Container Host oktatóanyagával.