Partilhar via


Acessar recursos do Kubernetes usando o portal do Azure

Neste artigo, você aprenderá a acessar e gerenciar seus recursos do Serviço Kubernetes do Azure (AKS) usando o portal do Azure.

Antes de começar

Para exibir recursos do Kubernetes no portal do Azure, você precisa de um cluster AKS. Qualquer cluster é suportado, mas se você estiver usando a integração do Microsoft Entra, seu cluster deverá usar a integração do Microsoft Entra gerenciada pelo AKS. Se o cluster usa a ID herdada do Microsoft Entra, você pode atualizar o cluster no portal ou com a CLI do Azure. Você também pode usar o portal do Azure para criar um novo cluster AKS.

Ver recursos do Kubernetes

  1. No portal do Azure, navegue até o recurso de cluster AKS.

  2. No menu de serviço, selecione Recursos do Kubernetes. A lista de recursos do Kubernetes exibe as seguintes categorias:

    • Namespaces mostra informações sobre os namespaces do cluster.
    • Cargas de trabalho mostra informações sobre implantações, pods, conjuntos de réplicas, conjuntos com monitoração de estado, conjuntos de daemons, trabalhos e trabalhos cron implantados em seu cluster.
    • Serviços e entradas mostra todos os recursos de serviço e entrada do cluster.
    • O armazenamento mostra suas classes de armazenamento do Azure e informações de volume persistente.
    • A configuração mostra os mapas de configuração e os segredos do cluster.
    • Recursos personalizados mostra todos os recursos personalizados implantados no cluster.
    • Eventos mostra todos os eventos relacionados ao seu cluster.
    • Executar comando permite que você invoque remotamente comandos, como kubectl e helm, em seu cluster por meio da API do Azure sem se conectar diretamente ao cluster.

    Captura de tela mostrando os recursos do Kubernetes exibidos no portal do Azure.

Implantar um aplicativo de exemplo

Nesta seção, implantamos o aplicativo da Loja Azure a partir do início rápido do AKS.

Conectar-se ao cluster

Para implantar o aplicativo da Loja Azure, você precisa se conectar ao cluster AKS. Siga estas etapas para se conectar ao cluster usando o portal do Azure:

  1. Na página Visão geral do cluster AKS, selecione Conectar.
  2. Siga as instruções para se conectar ao cluster usando o Cloud Shell, a CLI do Azure ou o comando Executar.

Implantar o aplicativo da Loja Azure

  1. Na lista de recursos do Kubernetes, selecione Serviços e ingressos.

  2. Selecione Criar>Aplicar um YAML.

  3. Copie e cole o seguinte YAML no editor:

    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: rabbitmq
    spec:
      replicas: 1
      selector:
        matchLabels:
          app: rabbitmq
      template:
        metadata:
          labels:
            app: rabbitmq
        spec:
          nodeSelector:
            "kubernetes.io/os": linux
          containers:
          - name: rabbitmq
            image: mcr.microsoft.com/mirror/docker/library/rabbitmq:3.10-management-alpine
            ports:
            - containerPort: 5672
              name: rabbitmq-amqp
            - containerPort: 15672
              name: rabbitmq-http
            env:
            - name: RABBITMQ_DEFAULT_USER
              value: "username"
            - name: RABBITMQ_DEFAULT_PASS
              value: "password"
            resources:
              requests:
                cpu: 10m
                memory: 128Mi
              limits:
                cpu: 250m
                memory: 256Mi
            volumeMounts:
            - name: rabbitmq-enabled-plugins
              mountPath: /etc/rabbitmq/enabled_plugins
              subPath: enabled_plugins
          volumes:
          - name: rabbitmq-enabled-plugins
            configMap:
              name: rabbitmq-enabled-plugins
              items:
              - key: rabbitmq_enabled_plugins
                path: enabled_plugins
    ---
    apiVersion: v1
    data:
      rabbitmq_enabled_plugins: |
        [rabbitmq_management,rabbitmq_prometheus,rabbitmq_amqp1_0].
    kind: ConfigMap
    metadata:
      name: rabbitmq-enabled-plugins
    ---
    apiVersion: v1
    kind: Service
    metadata:
      name: rabbitmq
    spec:
      selector:
        app: rabbitmq
      ports:
        - name: rabbitmq-amqp
          port: 5672
          targetPort: 5672
        - name: rabbitmq-http
          port: 15672
          targetPort: 15672
      type: ClusterIP
    ---
    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: order-service
    spec:
      replicas: 1
      selector:
        matchLabels:
          app: order-service
      template:
        metadata:
          labels:
            app: order-service
        spec:
          nodeSelector:
            "kubernetes.io/os": linux
          containers:
          - name: order-service
            image: ghcr.io/azure-samples/aks-store-demo/order-service:latest
            ports:
            - containerPort: 3000
            env:
            - name: ORDER_QUEUE_HOSTNAME
              value: "rabbitmq"
            - name: ORDER_QUEUE_PORT
              value: "5672"
            - name: ORDER_QUEUE_USERNAME
              value: "username"
            - name: ORDER_QUEUE_PASSWORD
              value: "password"
            - name: ORDER_QUEUE_NAME
              value: "orders"
            - name: FASTIFY_ADDRESS
              value: "0.0.0.0"
            resources:
              requests:
                cpu: 1m
                memory: 50Mi
              limits:
                cpu: 75m
                memory: 128Mi
          initContainers:
          - name: wait-for-rabbitmq
            image: busybox
            command: ['sh', '-c', 'until nc -zv rabbitmq 5672; do echo waiting for rabbitmq; sleep 2; done;']
            resources:
              requests:
                cpu: 1m
                memory: 50Mi
              limits:
                cpu: 75m
                memory: 128Mi
    ---
    apiVersion: v1
    kind: Service
    metadata:
      name: order-service
    spec:
      type: ClusterIP
      ports:
      - name: http
        port: 3000
        targetPort: 3000
      selector:
        app: order-service
    ---
    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: product-service
    spec:
      replicas: 1
      selector:
        matchLabels:
          app: product-service
      template:
        metadata:
          labels:
            app: product-service
        spec:
          nodeSelector:
            "kubernetes.io/os": linux
          containers:
          - name: product-service
            image: ghcr.io/azure-samples/aks-store-demo/product-service:latest
            ports:
            - containerPort: 3002
            resources:
              requests:
                cpu: 1m
                memory: 1Mi
              limits:
                cpu: 1m
                memory: 7Mi
    ---
    apiVersion: v1
    kind: Service
    metadata:
      name: product-service
    spec:
      type: ClusterIP
      ports:
      - name: http
        port: 3002
        targetPort: 3002
      selector:
        app: product-service
    ---
    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: store-front
    spec:
      replicas: 1
      selector:
        matchLabels:
          app: store-front
      template:
        metadata:
          labels:
            app: store-front
        spec:
          nodeSelector:
            "kubernetes.io/os": linux
          containers:
          - name: store-front
            image: ghcr.io/azure-samples/aks-store-demo/store-front:latest
            ports:
            - containerPort: 8080
              name: store-front
            env:
            - name: VUE_APP_ORDER_SERVICE_URL
              value: "http://order-service:3000/"
            - name: VUE_APP_PRODUCT_SERVICE_URL
              value: "http://product-service:3002/"
            resources:
              requests:
                cpu: 1m
                memory: 200Mi
              limits:
                cpu: 1000m
                memory: 512Mi
    ---
    apiVersion: v1
    kind: Service
    metadata:
      name: store-front
    spec:
      ports:
      - port: 80
        targetPort: 8080
      selector:
        app: store-front
      type: LoadBalancer
    
  4. Selecione Adicionar.

    Quando o aplicativo concluir a implantação, você verá os seguintes serviços na lista Serviços :

    • serviço de encomenda
    • produto-serviço
    • coelhomq
    • montra

    Captura de ecrã dos serviços de aplicação da Loja Azure apresentados no portal do Azure.

Monitore as informações de implantação

Habilite o complemento de monitoramento em seu cluster AKS

Os clusters AKS com o Container Insights ativado podem acessar várias informações de implantação no portal do Azure. Se você não tiver o monitoramento habilitado no cluster, poderá habilitá-lo usando as seguintes etapas:

  1. No menu de serviço do seu recurso de cluster AKS, selecione Monitoring>Insights>Configure monitoring.

  2. Na página Configurar Insights de Contêiner, selecione Configurar.

    Pode levar alguns minutos para que a solução de monitoramento seja implantada e comece a coletar dados.

Exibir informações de implantação

  1. No menu de serviço do seu recurso de cluster AKS, selecione Cargas de trabalho.
  2. Selecione uma implantação na lista para exibir informações de implantação, como uso de CPU e memória.

Nota

Você também pode selecionar Monitoring>Insights para exibir informações mais detalhadas sobre nós e contêineres específicos.

Clean up resources (Limpar recursos)

Se já não precisar da aplicação da Loja Azure, pode eliminar os serviços para evitar incorrer em custos do Azure.

  1. Na lista de recursos do Kubernetes, selecione Serviços e ingressos.
  2. Selecione os serviços que pretende eliminar e, em seguida, selecione Eliminar.

Resolução de Problemas

Acesso não autorizado

Para acessar os recursos do Kubernetes, você precisa acessar o cluster AKS, a API do Kubernetes e os objetos do Kubernetes. Certifique-se de que é um administrador de cluster ou um utilizador com as permissões adequadas para aceder ao cluster AKS. Para obter mais informações, consulte Opções de acesso e identidade para AKS.

Ativar a vista de recursos

Talvez seja necessário habilitar a visualização de recursos do Kubernetes para clusters existentes.

Gorjeta

Você pode adicionar o recurso AKS para intervalos de IP autorizados pelo servidor API para limitar o acesso do servidor API apenas ao ponto de extremidade público do firewall. Outra opção é atualizar o para incluir o --api-server-authorized-ip-ranges/-ApiServerAccessAuthorizedIpRange acesso para um computador cliente local ou o intervalo de endereços IP a partir do qual você está navegando no portal do Azure. Para permitir esse acesso, você precisa do endereço IPv4 público do computador. Você pode encontrar esse endereço usando os seguintes comandos da CLI do Azure ou do Azure PowerShell ou pode pesquisar "qual é o meu endereço IP" em seu navegador.

  1. Recupere seu endereço IP usando o seguinte comando:

    CURRENT_IP=$(dig +short myip.opendns.com @resolver1.opendns.com)
    
  2. Adicione o seu endereço IP à lista de aprovados pelo AKS usando o az aks update comando com o --api-server-authorized-ip-ranges parâmetro.

    az aks update --resource-group <resource-group-name> --name <aks-cluster-name> --api-server-authorized-ip-ranges $CURRENT_IP/32
    

Próximos passos

Este artigo mostrou como acessar recursos do Kubernetes a partir do portal do Azure. Para obter mais informações sobre o AKS, Conceitos principais do Serviço Kubernetes do Azure (AKS).