Cvičení – nastavení vývojového prostředí pomocí AKS

Dokončeno

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

  1. Pomocí příkazu přejděte do Azure Cloud Shellu a nakonfigurujte kubectl připojení ke clusteru az aks get-credentials Kubernetes.

    az aks get-credentials --resource-group $RESOURCEGROUP --name $CLUSTERNAME
    
  2. Pomocí příkazu ověřte připojení ke clusteru kubectl get nodes , který vrátí seznam uzlů clusteru.

    kubectl get nodes
    
  3. Pomocí příkazu získejte svoje ACR login server jméno az acr list .

    az acr list --resource-group $RESOURCEGROUP --query "[].{acrLoginServer:loginServer}" --output table
    

Nasazení kontejneru do AKS

  1. Změňte adresáře na aks složku ve zdrojovém kódu.

    cd mslearn-cloud-native-apps-express/aks
    
  2. Otevření integrovaného editoru v Cloud Shellu pomocí code .

  3. 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
    
  4. V části , nahraďte <AcrLoginServer> názvem přihlašovacího deployment.yamlserveru ACR. Ujistěte se, že necháte /expressimage na konci řádku.

  5. Uložte soubor manifestu pomocí ctrl + S a zavřete editor pomocí kombinace kláves CTRL + Q.

Použití manifestu

  1. 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
    
  2. 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
    
  3. 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í.

  1. Přejděte na web Azure Portal a vyberte cluster AKS.

  2. V části Nastavení vyberte Sítě.

  3. V části Směrování provozu zaškrtněte políčko Povolit směrování aplikace HTTP.

  4. 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.

  5. Vyberte Použít.

Kontrola manifestu služby

  1. Přejděte do Azure Cloud Shelluaks a ujistěte se, že jste ve složce.

  2. Otevřete integrovaný editor v Cloud Shellu pomocí code ..

  3. service.yaml Otevřete soubor a zkontrolujte konfiguraci. Nemusíte nic upravovat, jen si poznamenejte, že budeme naši službu cna-expresspojmenovat .

    # 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
    
  4. Zavřete editor pomocí ctrl + Q.

Nasazení služby

  1. 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
    
  2. 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, sloupec EXTERNAL-IP je <none>a sloupec PORT(S) je 80/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í.