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


Tesztalkalmazások üzembe helyezése Azure Kubernetes Service az Azure Stack Hubon

Ez az útmutató az Azure Stack Hub Azure Kubernetes Service (AKS) szolgáltatásának használatának megkezdéséhez nyújt útmutatást. Ez a cikk bemutatja, hogyan helyezhet üzembe néhány tesztalkalmazást a fürtön, hogy megismerhesse az AKS-t az Azure Stack Hubon. Az Azure Stack Hubban elérhető funkciók a globális Azure-ban elérhető funkciók egy részhalmaza .

Az első lépések előtt győződjön meg arról, hogy létre tud hozni egy AKS-fürtöt az Azure Stack Hub-példányon. A beállítással és az első fürt létrehozásával kapcsolatos útmutatásért lásd: A Azure Kubernetes Service használata az Azure Stack Hubon a parancssori felülettel.

Tesztalkalmazások üzembe helyezése

Ha a bélyegző csatlakoztatva van, az alábbi utasításokat követve telepítheti a Prometheust és a Grafana-t a fürtre.

  1. A Helm 3 letöltése és telepítése:

    curl -fsSL -o get_helm.sh https://raw.githubusercontent.com/helm/helm/master/scripts/get-helm-3
    chmod 700 get_helm.sh
    ./get_helm.sh
    

    Megjegyzés

    Windows-felhasználó esetén a Chocolatey használatával telepítse a Helmt:

    choco install kubernetes-helm
    
  2. Győződjön meg arról, hogy a legújabb stabil helm-adattárral rendelkezik:

    helm repo add stable https://charts.helm.sh/stable
    helm repo update
    
  3. Telepítse a Prometheust.

    helm install my-prometheus stable/prometheus --set server.service.type=LoadBalancer --set rbac.create=false
    
  4. Fürtfelügyeleti hozzáférés biztosítása a Prometheus-fiókhoz. Az alacsonyabb engedélyek biztonsági okokból jobbak.

    kubectl create clusterrolebinding my-prometheus-server --clusterrole=cluster-admin --serviceaccount=default:my-prometheus-server
    
  5. Telepítse a Grafana elemet.

    helm install my-grafana stable/grafana --set service.type=LoadBalancer --set rbac.create=false
    
  6. Titkos kód lekérése a Grafana portálhoz.

    kubectl get secret --namespace default my-grafana -o jsonpath="{.data.admin-password}" | base64 --decode ; echo
    

Megjegyzés

Windows rendszeren a következő PowerShell-parancsmagok használatával szerezheti be a titkos kódot:

\$env:Path = \$env:Path + ";\$env:USERPROFILE\\.azure-kubectl"
[System.Text.Encoding]::ASCII.GetString([System.Convert]::FromBase64String(\$(kubectl get secret --namespace default my-grafana -o jsonpath="{.data.admin-password}")))

Alkalmazások üzembe helyezése az AKS-ben az ACR használatával

Ezen a ponton az ügyfélszámítógép csatlakozik a fürthöz, és a kubectl használatával konfigurálhatja a fürtöt, és üzembe helyezheti az alkalmazásokat. Ha az Azure Container Registry (ACR) szolgáltatást is teszteli, kövesse az alábbi utasításokat.

A Docker beállításkulcsa a helyi ACR eléréséhez

Ha alkalmazásrendszerképeket helyez üzembe egy helyi ACR-ből, titkos kulcsot kell tárolnia ahhoz, hogy a Kubernetes-fürt hozzáférhessen a lemezképek beállításjegyzékből való lekéréséhez. Ehhez meg kell adnia egy egyszerű szolgáltatásazonosítót (SPN) és egy titkos kulcsot, hozzá kell adnia az SPN-t a forrásregisztrációs adatbázis közreműködőjeként, és létre kell hoznia a Kubernetes titkos kódját. A titkos kódra való hivatkozáshoz frissítenie kell a YAML-fájlt is.

Az SPN hozzáadása az ACR-hez

Adja hozzá az SPN-t közreműködőként az ACR-hez.

Megjegyzés

Ez a szkript a Azure Container Registry webhelyről (bash-minta) lett módosítva, mivel az Azure Stack Hub még nem rendelkezik ACRPULL-szerepkörrel. Ez a minta egy PowerShell-szkript, ennek megfelelője bash-ben írható. Mindenképpen adja hozzá a rendszer értékeit.

# Modify for your environment. The ACR_NAME is the name of your Azure Container
# Registry, and the SERVICE_PRINCIPAL_ID is the SPN's 'appId' or
# one of its 'servicePrincipalNames' values.
ACR_NAME=mycontainerregistry
SERVICE_PRINCIPAL_ID=<service-principal-ID>

# Populate value required for subsequent command args
ACR_REGISTRY_ID=$(az acr show --name $ACR_NAME --query id --output tsv)

# Assign the desired role to the SPN. 
az role assignment create --assignee $SERVICE_PRINCIPAL_ID --scope $ACR_REGISTRY_ID --role contributor

Titkos kód létrehozása a Kubernetesben

Az alábbi paranccsal adja hozzá a titkos kulcsot a Kubernetes-fürthöz. Mindenképpen adja hozzá a rendszer értékeit a kódrészletekhez.

kubectl create secret docker-registry <secret name> \
kubectl create secret docker-registry <secret name> \
    --docker-server=<ACR container registry URL> \
    --docker-username=<service principal ID> \
    --docker-password=<service principal secret> 

Példa a titkos kódra való hivatkozásra az alkalmazásban YAML

apiVersion: apps/v1
kind: Deployment
metadata:
  name: nginx-deployment 
spec:
selector:
  matchLabels:
   app: nginx
replicas: 2
template:
  metadata:
   labels:
    app: nginx
  spec:
   containers:
   - name: nginx
     image: democr2.azsacr.redmond.ext-n31r1208.masd.stbtest.microsoft.com/library/nginx:1.17.3
     imagePullPolicy: Always
     ports: 
      - containerPort: 80
   imagePullSecrets:
     - name: democr2
 
 
---
apiVersion: v1
kind: Service
metadata:
  name: nginx
spec:
  selector:
    app: nginx
  ports:
  - protocol: "TCP"
    port: 80
    targetPort: 80
  type: LoadBalancer

Következő lépések

Azure Kubernetes Service használata az Azure Stack Hubon a parancssori felülettel