Sdílet prostřednictvím


Nasazení testovacích aplikací do Azure Kubernetes Service ve službě Azure Stack Hub

Toto je průvodce, který vám pomůže začít používat službu Azure Kubernetes Service (AKS) ve službě Azure Stack Hub. Tento článek popisuje, jak nasadit některé testovací aplikace do clusteru, abyste se mohli seznámit s AKS ve službě Azure Stack Hub. Funkce dostupné ve službě Azure Stack Hub jsou podmnožinou toho, co je k dispozici v globálním Azure.

Než začnete, ujistěte se, že ve vaší instanci služby Azure Stack Hub můžete vytvořit cluster AKS. Pokyny k nastavení a vytvoření prvního clusteru najdete v tématu Použití Azure Kubernetes Service ve službě Azure Stack Hub s rozhraním příkazového řádku.

Nasazení testovacích aplikací

Pokud je vaše razítko připojené, můžete podle těchto pokynů nasadit prometheus a Grafana do clusteru.

  1. Stáhněte a nainstalujte Helm 3:

    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
    

    Poznámka

    Pro uživatele s Windows použijte Chocolatey k instalaci Helmu:

    choco install kubernetes-helm
    
  2. Ujistěte se, že máte nejnovější stabilní úložiště Helm:

    helm repo add stable https://charts.helm.sh/stable
    helm repo update
    
  3. Nainstalujte Prometheus.

    helm install my-prometheus stable/prometheus --set server.service.type=LoadBalancer --set rbac.create=false
    
  4. Udělte clusteru přístup pro správu účtu Prometheus. Nižší oprávnění jsou lepší z bezpečnostních důvodů.

    kubectl create clusterrolebinding my-prometheus-server --clusterrole=cluster-admin --serviceaccount=default:my-prometheus-server
    
  5. Nainstalujte Grafana.

    helm install my-grafana stable/grafana --set service.type=LoadBalancer --set rbac.create=false
    
  6. Získejte tajný kód pro portál Grafana.

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

Poznámka

Ve Windows použijte k získání tajného kódu následující rutiny PowerShellu:

\$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}")))

Nasazení aplikací do AKS pomocí ACR

V tomto okamžiku je váš klientský počítač připojený ke clusteru a můžete pokračovat pomocí kubectl ke konfiguraci clusteru a nasazení aplikací. Pokud testujete také službu Azure Container Registry (ACR), můžete postupovat podle následujících pokynů.

Tajný kód registru Dockeru pro přístup k místní službě ACR

Pokud nasazujete image aplikací z místního ACR, budete muset uložit tajný kód, aby cluster Kubernetes měl přístup k načtení imagí z registru. K tomu budete muset zadat ID instančního objektu (SPN) a tajný klíč, přidat hlavní název služby jako přispěvatele do zdrojového registru a vytvořit tajný kód Kubernetes. Budete také muset aktualizovat soubor YAML, aby odkazovat na tajný kód.

Přidání hlavního názvu služby (SPN) do služby ACR

Přidejte hlavní název služby jako přispěvatele do služby ACR.

Poznámka

Tento skript byl upraven z webu Azure Container Registry (ukázka bash), protože Azure Stack Hub ještě nemá roli ACRPULL. Tato ukázka je powershellový skript, který se dá napsat v Bash. Nezapomeňte přidat hodnoty pro váš systém.

# 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

Vytvoření tajného klíče v Kubernetes

Pomocí následujícího příkazu přidejte tajný kód do clusteru Kubernetes. Nezapomeňte do fragmentů kódu přidat hodnoty pro váš systém.

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říklad odkazu na tajný kód v YAML vaší aplikace

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

Další kroky

Použití Azure Kubernetes Service ve službě Azure Stack Hub s rozhraním příkazového řádku