Partilhar via


Aceder aos recursos do Kubernetes através do portal do Azure

Neste artigo, aprende como aceder e gerir os seus recursos do Azure Kubernetes Service (AKS) usando o portal do Azure.

Antes de começar

Para visualizar os recursos Kubernetes no portal Azure, é necessário um cluster AKS. Qualquer grupo é suportado, mas se estiver a utilizar a integração Microsoft Entra, o seu grupo deve usar integração Microsoft Entra gerida por AKS. Se o seu cluster utilizar o legado do Microsoft Entra ID, pode atualizar o seu cluster no portal ou com a Azure CLI. Também pode usar o portal Azure para criar um novo cluster AKS.

Ver recursos de Kubernetes

  1. No portal do Azure, navegue para o recurso do seu 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 seu cluster.
    • Workloads apresenta informações sobre implementações, pods, conjuntos de réplicas, conjuntos com estado, conjuntos de daemon, trabalhos e trabalhos agendados implantados no seu cluster.
    • Serviços e ingressos mostram todos os recursos de serviço e ingresso do seu cluster.
    • Armazenamento exibe as suas classes de armazenamento Azure e informação de volumes persistentes.
    • Configuration mostra os mapas de configuração e segredos do seu cluster.
    • Recursos personalizados mostram quaisquer recursos personalizados implantados no seu cluster.
    • Eventos mostra todos os eventos relacionados ao seu cluster.
    • Run command permite-lhe invocar remotamente comandos, como kubectl e helm, no seu cluster através da API Azure sem se conectar diretamente ao cluster.

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

Implemente uma aplicação de exemplo

Nesta seção, implantamos a aplicação Azure Store do início rápido do AKS.

Conectar ao seu cluster

Para implementar a aplicação Azure Store, é necessário conectar-se ao seu cluster AKS. Para se ligar ao seu cluster através do portal Azure, siga estes passos:

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

Implementar a aplicação Azure Store

  1. Da lista de recursos do Kubernetes, selecione Serviços e ingresses.

  2. Select Create>Apply a YAML.

  3. Copie e cole o seguinte YAML no editor:

    apiVersion: apps/v1
    kind: StatefulSet
    metadata:
      name: rabbitmq
    spec:
      serviceName: rabbitmq
      replicas: 1
      selector:
        matchLabels:
          app: rabbitmq
      template:
        metadata:
          labels:
            app: rabbitmq
        spec:
          nodeSelector:
            "kubernetes.io/os": linux
          containers:
            - name: rabbitmq
              image: mcr.microsoft.com/azurelinux/base/rabbitmq-server:3.13
              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: 100m
                  memory: 256Mi
          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: 100m
                  memory: 256Mi
    ---
    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: 2m
                  memory: 20Mi
    ---
    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. Select Add.

    Assim que a aplicação terminar de ser implementada, vê os seguintes serviços na lista de Serviços:

    • order-service
    • product-service
    • rabbitmq
    • frente de loja

    Captura de ecrã dos serviços de aplicação da Azure Store exibidos no portal Azure.

Monitorizar informações de implementação

Ativar o suplemento de monitorização no seu cluster AKS

Clusters AKS com Container Insights ativados podem aceder a várias informações de implementação no portal do Azure. Se não tiver a monitorização ativada no seu cluster, pode ativá-la seguindo os seguintes passos:

  1. No menu de serviço do recurso do cluster AKS, selecione Monitorização>Insights>Configurar monitorização.

  2. Na página Configure Container Insights, selecione Configure.

    Poderá demorar alguns minutos para a solução de monitorização ser implementada e começar a recolher dados.

Ver informações sobre a implementação

  1. No menu de serviço do recurso do seu cluster AKS, selecione Workloads.
  2. Selecione uma implementação da lista para visualizar informações da implementação, como a utilização de CPU e memória.

Nota

Pode também selecionar Monitorização>Insights para ver informações mais detalhadas sobre nós e contentores específicos.

Limpar recursos

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

  1. A partir da lista de recursos Kubernetes, selecione Serviços e ingressos.
  2. Selecione os serviços que deseja eliminar, e depois selecione Eliminar.

Resolução de problemas

Unauthorized access

Para aceder aos recursos do Kubernetes, precisa de acesso ao cluster AKS, à API do Kubernetes e aos 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 mais informações, consulte Opções de acesso e identidade para AKS.

Ativar vista de recursos

Pode ser necessário ativar a visualização de recursos do Kubernetes para clusters existentes.

Tip

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

  1. Retrieve your IP address using the following command:

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

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

Próximos passos

This article showed you how to access Kubernetes resources from the Azure portal. Para mais informações sobre o AKS, consulte Conceitos principais para o Azure Kubernetes Service (AKS).