Partager via


Déployer des applications de test sur Azure Kubernetes Service dans Azure Stack Hub

Il s’agit d’un guide pour bien démarrer avec le service Azure Kubernetes Service (AKS) dans Azure Stack Hub. Cet article explique comment déployer des applications de test sur votre cluster pour vous familiariser avec AKS dans Azure Stack Hub. Les fonctionnalités disponibles dans Azure Stack Hub sont un sous-ensemble de ce qui est disponible dans Azure global.

Avant de commencer, vérifiez que vous pouvez créer un cluster AKS sur votre instance Azure Stack Hub. Pour des instructions sur les prérequis et la création de votre premier cluster, consultez Utilisation d’Azure Kubernetes Service sur Azure Stack Hub avec l’interface CLI.

Déployer des applications de test

Si votre empreinte est connectée, vous pouvez suivre ces instructions pour déployer Prometheus et Grafana sur le cluster.

  1. Téléchargez et installez 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
    

    Notes

    Pour un utilisateur Windows, utilisez Chocolatey pour installer Helm :

    choco install kubernetes-helm
    
  2. Vérifiez que vous avez le dernier dépôt Helm stable :

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

    helm install my-prometheus stable/prometheus --set server.service.type=LoadBalancer --set rbac.create=false
    
  4. Accordez un accès administratif du cluster au compte Prometheus. Les autorisations inférieures sont préférables pour des raisons de sécurité.

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

    helm install my-grafana stable/grafana --set service.type=LoadBalancer --set rbac.create=false
    
  6. Obtenez le secret pour le portail Grafana.

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

Notes

Sur Windows, utilisez les applets de commande PowerShell suivantes pour obtenir le secret :

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

Déployer des applications sur AKS en utilisant ACR

À ce stade, votre machine cliente est connectée au cluster, et vous pouvez maintenant utiliser kubectl pour configurer le cluster et déployer vos applications. Si vous testez également le service Azure Container Registry (ACR), vous pouvez suivre les instructions ci-dessous.

Secret du registre Docker pour accéder au registre de conteneurs Azure local

Si vous déployez des images d’application à partir d’un registre de conteneurs Azure local, vous devez stocker un secret pour que le cluster Kubernetes puisse tirer les images du registre. Pour ce faire, vous devez fournir un ID de principal de service (SPN) et un secret, ajouter le SPN comme contributeur du registre source, et créer le secret Kubernetes. Vous devez également mettre à jour votre fichier YAML pour référencer le secret.

Ajouter le SPN au registre de conteneurs Azure

Ajoutez le SPN comme contributeur du registre de conteneurs Azure.

Notes

Ce script a été modifié à partir du site Azure Container Registry (exemple bash), car Azure Stack Hub n’a pas encore le rôle ACRPULL. Cet exemple est un script PowerShell, l’équivalent peut être écrit en bash. Veillez à ajouter les valeurs de votre système.

# 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

Créer le secret dans Kubernetes

Utilisez la commande suivante pour ajouter le secret au cluster Kubernetes. Veillez à ajouter les valeurs de votre système dans les extraits de code.

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> 

Exemple pour référencer le secret dans votre application 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

Étapes suivantes

Utilisation d’Azure Kubernetes Service sur Azure Stack Hub avec l’interface CLI