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 Instrumentos do Kubernetes, selecione Efetuar Sign-in e, em seguida, selecione 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