Cvičení – nastavení vývojového prostředí pomocí AKS
V našem ukázkovém scénáři potřebuje váš tým nasadit image kontejneru ze služby Azure Container Registry do AKS.
V této lekci se naučíte:
- Připojení ke clusteru AKS Kubernetes pomocí kubectl v Azure Cloud Shellu.
- Nakonfigurujte manifest nasazení pro kontejner express.js.
- Nasaďte image kontejneru z registru kontejneru do clusteru AKS Kubernetes.
- Povolte aplikační bránu pro váš cluster.
- Zkontrolujte a nasaďte soubor manifestu služby.
Poznámka:
Pokud jste ukončili kartu Azure Cloud Shellu, musíte znovu použít následující příkazy nebo zadat názvy prostředků pro každý krok.
```azurecli-interactive
# Environment variable for the registry name
REGISTRYNAME={registry_name}
# Environment variable for the resource group name
RESOURCEGROUP={resource-group-name}
# Environment variable for the cluster name
CLUSTERNAME={cluster-name}
```
Připojení ke clusteru pomocí kubectl
Pomocí příkazu přejděte do Azure Cloud Shellu a nakonfigurujte
kubectl
připojení ke clusteruaz aks get-credentials
Kubernetes.az aks get-credentials --resource-group $RESOURCEGROUP --name $CLUSTERNAME
Pomocí příkazu ověřte připojení ke clusteru
kubectl get nodes
, který vrátí seznam uzlů clusteru.kubectl get nodes
Pomocí příkazu získejte svoje
ACR login server
jménoaz acr list
.az acr list --resource-group $RESOURCEGROUP --query "[].{acrLoginServer:loginServer}" --output table
Nasazení kontejneru do AKS
Změňte adresáře na
aks
složku ve zdrojovém kódu.cd mslearn-cloud-native-apps-express/aks
Otevření integrovaného editoru v Cloud Shellu pomocí
code .
deployment.yaml
Otevřete soubor a zkontrolujte konfiguraci. Obsahuje pokyny k nasazení kontejneru express.js do AKS.# deployment.yaml apiVersion: apps/v1 kind: Deployment metadata: name: cna-express spec: selector: # Define the wrapping strategy matchLabels: # Match all pods with the defined labels app: cna-express # Labels follow the `name: value` template template: # This is the template of the pod inside the deployment metadata: labels: app: cna-express spec: containers: - image: <AcrLoginServer>/expressimage # Add your ACR login server from step 3 here name: expressimage ports: - containerPort: 80
V části , nahraďte
<AcrLoginServer>
názvem přihlašovacíhodeployment.yaml
serveru ACR. Ujistěte se, že necháte/expressimage
na konci řádku.Uložte soubor manifestu pomocí ctrl + S a zavřete editor pomocí kombinace kláves CTRL + Q.
Použití manifestu
Pomocí příkazu odešlete manifest nasazení do clusteru
kubectl apply
.kubectl apply -f ./deployment.yaml
Výstup tohoto příkazu by měl vypadat zhruba jako v následujícím příkladu:
deployment.apps/cna-express created
Pomocí příkazu zkontrolujte, jestli nasazení proběhlo úspěšně
kubectl get deploy
.kubectl get deploy cna-express
Příkaz by měl vytvořit výstup tabulky podobné následujícímu příkladu:
NAME READY UP-TO-DATE AVAILABLE AGE cna-express 0/1 1 0 16s
Pomocí příkazu zkontrolujte, jestli pod běží
kubectl get pods
.kubectl get pods
Příkaz by měl vytvořit výstup tabulky podobné následujícímu příkladu:
NAME READY STATUS RESTARTS AGE cna-express-7c58c5f699-r79mv 1/1 Running 0 63s
Povolení aplikační brány pro cluster
Úplné nasazení clusterů Kubernetes a jejich přístup může nějakou dobu trvat. Můžete ušetřit čas tím, že teď povolíte aplikační bránu pro cluster, protože může trvat až 15 minut, než bude plně funkční.
Přejděte na web Azure Portal a vyberte cluster AKS.
V části Nastavení vyberte Sítě.
V části Směrování provozu zaškrtněte políčko Povolit směrování aplikace HTTP.
V části Řízení příchozího přenosu dat služby Application Gateway zaškrtněte políčko Povolit kontroler příchozího přenosu dat.
Vyberte Použít.
Kontrola manifestu služby
Přejděte do Azure Cloud Shellu
aks
a ujistěte se, že jste ve složce.Otevřete integrovaný editor v Cloud Shellu pomocí
code .
.service.yaml
Otevřete soubor a zkontrolujte konfiguraci. Nemusíte nic upravovat, jen si poznamenejte, že budeme naši službucna-express
pojmenovat .# service.yaml apiVersion: v1 kind: Service metadata: name: cna-express spec: type: ClusterIP selector: app: cna-express ports: - port: 80 # SERVICE exposed port name: http # SERVICE port name protocol: TCP # The protocol the SERVICE will listen to targetPort: 4000
Zavřete editor pomocí ctrl + Q.
Nasazení služby
Pomocí příkazu odešlete manifest služby do clusteru
kubectl apply
.kubectl apply -f ./service.yaml
Výstup tohoto příkazu by měl vypadat zhruba jako v následujícím příkladu:
service/cna-express created
Pomocí příkazu zkontrolujte, jestli nasazení proběhlo úspěšně
kubectl get service
.kubectl get service cna-express
Výstup tohoto příkazu by měl vypadat zhruba jako v následujícím příkladu. Ujistěte se, že je sloupec
CLUSTER-IP
vyplněný IP adresou, sloupecEXTERNAL-IP
je<none>
a sloupecPORT(S)
je80/TCP
.NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE cna-express ClusterIP 10.0.158.189 <none> 80/TCP 42s
Pokud nastavíte externí IP na
<none>
, není aplikace dostupná pro externí klienty. Služba je dostupná pouze pro interní cluster. Kontroler příchozího přenosu dat to změní.