Compartilhar via


Implantar aplicativos de teste no Serviço de Kubernetes do Azure no Azure Stack Hub

Este é um guia para começar a usar o serviço Serviço de Kubernetes do Azure (AKS) no Azure Stack Hub. Este artigo descreve como implantar alguns aplicativos de teste em seu cluster para que você possa se familiarizar com o AKS no Azure Stack Hub. A funcionalidade disponível no Azure Stack Hub é um subconjunto do que está disponível no Azure global.

Antes de começar, certifique-se de que pode criar um cluster do AKS em sua instância do Azure Stack Hub. Para obter instruções sobre como configurar e criar seu primeiro cluster, consulte Usando Serviço de Kubernetes do Azure no Azure Stack Hub com a CLI.

Implantar aplicativos de teste

Se o carimbo estiver conectado, você poderá seguir estas instruções para implantar o Prometheus e o Grafana no cluster.

  1. Baixe e instale o 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
    

    Observação

    Para o usuário do Windows, use o Chocolatey para instalar o Helm:

    choco install kubernetes-helm
    
  2. Verifique se você tem o repositório helm estável mais recente:

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

    helm install my-prometheus stable/prometheus --set server.service.type=LoadBalancer --set rbac.create=false
    
  4. Dê acesso administrativo ao cluster à conta do Prometheus. Permissões mais baixas são melhores por motivos de segurança.

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

    helm install my-grafana stable/grafana --set service.type=LoadBalancer --set rbac.create=false
    
  6. Obter segredo para o portal do Grafana.

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

Observação

No Windows, use os seguintes cmdlets do PowerShell para obter o segredo:

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

Implantar aplicativos no AKS usando o ACR

Neste ponto, seu computador cliente está conectado ao cluster e você pode continuar a usar kubectl para configurar o cluster e implantar seus aplicativos. Se você também estiver testando o serviço de Registro de Contêiner do Azure (ACR), poderá seguir as instruções abaixo.

Segredo do Registro do Docker para acessar o ACR local

Se você estiver implantando imagens de aplicativo de um ACR local, precisará armazenar um segredo para que o cluster do Kubernetes tenha acesso para efetuar pull das imagens do registro. Para fazer isso, você precisará fornecer uma SPN (ID de entidade de serviço) e um Segredo, adicionar o SPN como um contribuidor ao registro de origem e criar o segredo do Kubernetes. Você também precisará atualizar o arquivo YAML para fazer referência ao segredo.

Adicionar o SPN ao ACR

Adicione o SPN como um contribuidor ao ACR.

Observação

Esse script foi modificado do site de Registro de Contêiner do Azure (amostra bash), pois o Azure Stack Hub ainda não tem a função ACRPULL. Este exemplo é um script do PowerShell, equivalente pode ser escrito em bash. Certifique-se de adicionar os valores para o sistema.

# 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

Criar o segredo no Kubernetes

Use o comando a seguir para adicionar o segredo ao cluster do Kubernetes. Adicione os valores para o sistema nos snippets de código.

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> 

Exemplo de referência ao segredo no YAML do aplicativo

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

Próximas etapas

Usando Serviço de Kubernetes do Azure no Azure Stack Hub com a CLI