Acessando um Cluster com o Painel de Controle do Kubernetes

Descubra como iniciar o Painel de Controle do Kubernetes para exibir os clusters que você criou usando o Kubernetes Engine (OKE).

Observação

Você não pode usar o Painel de Controle do Kubernetes com pools de nós virtuais.

O Painel de Controle do Kubernetes é uma interface de gerenciamento baseada na Web que permite:

  • implantar e editar aplicativos de contêineres
  • avaliar o status de aplicativos de contêineres
  • solucionar problemas de aplicativos de contêineres

O Painel de Controle do Kubernetes é particularmente útil para novos usuários do Kubernetes. Para obter mais informações sobre o Painel de Controle do Kubernetes (às vezes chamado de Interface do Usuário Web ou Interface do Usuário do Painel de Controle), consulte o tópico Interface do Usuário Web (Painel de Controle) na documentação do Kubernetes.

Por padrão, o Painel de Controle do Kubernetes não é implantado em clusters. No entanto, você pode implantar o Painel de Controle do Kubernetes em clusters criados com o Kubernetes Engine das seguintes maneiras:

  • Para implantar manualmente o Painel de Controle do Kubernetes em um cluster existente, consulte a documentação do Kubernetes. Quando você segue as instruções para implantar manualmente o Painel de Controle do Kubernetes, ele é implantado no namespace kubernetes-dashboard (não no namespace kube-system). O URL para exibir um Painel de Controle do Kubernetes implantado manualmente é:

    http://localhost:8001/api/v1/namespaces/kubernetes-dashboard/services/https:kubernetes-dashboard:/proxy/#!/login
  • Para que o Kubernetes Engine implante automaticamente o Painel de Controle do Kubernetes durante a criação aprimorada do cluster, você pode:
    • Crie o cluster aprimorado usando o workflow 'Criação Personalizada' na Console e configure o complemento do cluster do Painel de Controle do Kubernetes.
    • Crie o cluster usando a API e defina o atributo isKubernetesDashboardEnabled como verdadeiro.

    Quando o Kubernetes Engine implanta automaticamente o Painel de Controle do Kubernetes, ele é implantado no namespace kube-system. O URL para exibir um Painel do Kubernetes implantado automaticamente é:

    http://localhost:8001/api/v1/namespaces/kube-system/services/https:kubernetes-dashboard:/proxy/#!/login

Observe o seguinte:

  • Você não pode executar o Painel de Controle do Kubernetes no Cloud Shell.
  • Não recomendamos a instalação do Painel de Controle do Kubernetes em clusters de produção devido à falta de suporte de autenticação extensível. Se você instalar o Painel de Controle do Kubernetes, recomendamos que você restringe o acesso dentro do cluster, em vez de expô-lo externamente por meio de um balanceador de carga ou um controlador de entrada. O Painel de Controle do Kubernetes é um vetor de ataque comum usado para obter acesso aos clusters do Kubernetes.
  • Os comandos a serem usados para excluir o Painel de Controle do Kubernetes de um cluster dependerá da versão do Kubernetes em execução no cluster. Consulte Observações sobre a Exclusão do Painel de Controle do Kubernetes.
  • Um comando da CLI do Oracle Cloud Infrastructure no arquivo kubeconfig gera tokens de autenticação de curta duração, com escopo no cluster e específicos de usuários individuais. Como resultado, não é possível compartilhar arquivos kubeconfig entre usuários para acessar clusters do Kubernetes. Os tokens de autenticação gerados também são inadequados se você desejar que outros processos e ferramentas acessem o cluster, como ferramentas de integração contínua e entrega contínua (CI/CD). Nesse caso, considere criar uma conta de serviço do Kubernetes e adicionar seu token de autenticação associado ao arquivo kubeconfig. Para obter mais informações, consulte Adicionando um Token de Autenticação de Conta de Serviço a um Arquivo Kubeconfig.
  • Você pode usar o Painel de Controle do Kubernetes com pools de nós gerenciados, mas não com pools de nós virtuais.

Acessando um Cluster usando o Painel de Controle do Kubernetes

Para acessar um cluster usando o Painel de Controle do Kubernetes:

  1. Se você ainda não tiver feito isso, siga as etapas para configurar o arquivo de configuração kubeconfig do cluster e (se necessário) defina a variável de ambiente KUBECONFIG para apontar para o arquivo. Observe que você deve configurar seu próprio arquivo kubeconfig. Não é possível acessar um cluster usando um arquivo kubeconfig que outro usuário tenha configurado. Consulte Configurando o Acesso ao Cluster.
  2. Em um editor de texto, crie um arquivo (por exemplo, chamado oke-admin-service-account.yaml) com o seguinte conteúdo:

    apiVersion: v1
    kind: ServiceAccount
    metadata:
      name: oke-admin
      namespace: kube-system
    ---
    apiVersion: rbac.authorization.k8s.io/v1
    kind: ClusterRoleBinding
    metadata:
      name: oke-admin
    roleRef:
      apiGroup: rbac.authorization.k8s.io
      kind: ClusterRole
      name: cluster-admin
    subjects:
    - kind: ServiceAccount
      name: oke-admin
      namespace: kube-system

    O arquivo define uma conta de serviço de administrador e um clusterrolebinding, ambos chamados oke-admin.

  3. Crie a conta de serviço e o clusterrolebinding no cluster digitando:

    kubectl apply -f <filename>

    em que <filename> corresponde ao nome do arquivo criado anteriormente. Por exemplo:

    kubectl apply -f oke-admin-service-account.yaml

    A saída do comando anterior confirma a criação da conta de serviço e o clusterrolebinding:

    
    serviceaccount "oke-admin" created
    clusterrolebinding.rbac.authorization.k8s.io "oke-admin" created

    Você agora pode usar a conta de serviço oke-admin para exibir e controlar o cluster e estabelecer conexão com o painel de controle do Kubernetes.

  4. Obtenha um token de autenticação para a conta de serviço oke-admin da seguinte forma:
    1. Em um editor de texto, crie um arquivo (por exemplo, chamado oke-admin-sa-token.yaml) para criar um segredo (por exemplo, chamado oke-admin-sa-token) com o conteúdo a seguir.
      apiVersion: v1
      kind: Secret
      metadata:
        name: oke-admin-sa-token
        namespace: kube-system
        annotations:
         kubernetes.io/service-account.name: oke-admin
      type: kubernetes.io/service-account-token
    2. Crie o token da conta de serviço digitando:

      kubectl apply -f <filename>

      em que <filename> corresponde ao nome do arquivo criado anteriormente. Por exemplo:

      kubectl apply -f oke-admin-sa-token.yaml
    3. Exiba os detalhes do segredo digitando:

      kubectl describe secrets oke-admin-sa-token -n kube-system

      A saída do comando acima inclui um token de autenticação (uma longa cadeia alfanumérica) como o valor do elemento token:, conforme mostrado abaixo:

      Name:         oke-admin-sa-token
      Namespace:    kube-system
      Labels:       <none>
      Annotations:  kubernetes.io/service-account.name: oke-admin
      kubernetes.io/service-account.uid: 3a7fcd8e-e123-11e9-81ca-0a580aed8570
      Type:  kubernetes.io/service-account-token
      Data
      ====
      ca.crt:     1289 bytes
      namespace:  11 bytes
      token:      eyJh______px1Q

      No exemplo acima, eyJh______px1Q (abreviado para melhor leitura) é o token de autenticação.

    4. Copie o valor do elemento token: da saída. Você usará esse token para se conectar ao painel de controle.

  5. Em uma janela de terminal, digite kubectl proxy para tornar disponível o Painel de Controle do Kubernetes.
  6. Abra um browser e vá para o seguinte URL para exibir o Painel de Controle do Kubernetes que foi implantado quando o cluster foi criado:
    http://localhost:8001/api/v1/namespaces/kube-system/services/https:kubernetes-dashboard:/proxy/#!/login

    Observe que, se você seguiu as instruções na documentação do Kubernetes para implantar manualmente o Painel de Controle do Kubernetes em um cluster existente, ele será implantado no namespace kubernetes-dashboard em vez de no namespace kube-system. Como resultado, o URL para exibir o Painel de Controle do Kubernetes implantado manualmente é:

    http://localhost:8001/api/v1/namespaces/kubernetes-dashboard/services/https:kubernetes-dashboard:/proxy/#!/login.
  7. No Painel de Controle do Kubernetes, selecione Token e cole o valor do elemento token: copiado anteriormente no campo Token.

  8. No Painel de Controle do Kubernetes, clique em Acessar e, em seguida, clique em Visão Geral para ver os aplicativos implantados no cluster.

Observações sobre a Exclusão do Painel de Controle do Kubernetes

Se você quiser excluir manualmente o Painel de Controle do Kubernetes de um cluster, execute os seguintes comandos kubectl:

kubectl delete deployment kubernetes-dashboard -n kube-system
kubectl delete sa -n kube-system kubernetes-dashboard
kubectl delete svc -n kube-system kubernetes-dashboard
kubectl delete secret -n kube-system kubernetes-dashboard-certs
kubectl delete secret -n kube-system kubernetes-dashboard-csrf
kubectl delete secret -n kube-system kubernetes-dashboard-key-holder
kubectl delete cm -n kube-system kubernetes-dashboard-settings
kubectl delete role -n kube-system kubernetes-dashboard
kubectl delete rolebinding -n kube-system kubernetes-dashboard
kubectl delete clusterrole -n kube-system kubernetes-dashboard
kubectl delete clusterrolebinding -n kube-system kubernetes-dashboard
kubectl delete deploy -n kube-system kubernetes-dashboard