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).
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 namespacekube-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:
-
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.
-
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.
-
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.
- Obtenha um token de autenticação para a conta de serviço oke-admin da seguinte forma:
- 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
-
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
-
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. -
Copie o valor do elemento
token:
da saída. Você usará esse token para se conectar ao painel de controle.
- 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.
- Em uma janela de terminal, digite
kubectl proxy
para tornar disponível o Painel de Controle do Kubernetes. - 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 namespacekube-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.
-
No Painel de Controle do Kubernetes, selecione Token e cole o valor do elemento
token:
copiado anteriormente no campo Token. - 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