Visualize os recursos do Kubernetes na seção AWS Management Console
É possível visualizar os recursos do Kubernetes implantados no cluster usando o AWS Management Console. Não é possível visualizar os recursos do Kubernetes com a AWS CLI ou o eksctl
nota
Para visualizar a guia Recursos e a seção Nós na guia Computação no AWS Management Console, a entidade principal do IAM que você está usando deve ter permissões específicas do IAM e do Kubernetes. Para ter mais informações, consulte Permissões obrigatórias.
-
Abra o console do Amazon EKS
. -
Na lista Clusters, escolha o cluster que contém os recursos do Kubernetes que você deseja visualizar.
-
Selecione a guia Recursos.
-
Selecione um grupo Resource type (Tipo de recurso) cujos recursos você deseja visualizar, como Workloads. Você visualizará uma lista de tipos de recursos nesse grupo.
-
Selecione um tipo de recurso, como Deployments (Implantações), no grupo Workloads. Você verá uma descrição do tipo de recurso, um link para a documentação do Kubernetes para obter mais informações sobre esse tipo de recurso, bem como uma lista dos recursos desse tipo implantados no cluster. Se essa lista estiver vazia, significa que não há recursos desse tipo implantados no cluster.
-
Selecione um recurso para exibir mais informações sobre ele. Teste os exemplos a seguir:
-
Selecione o grupo Workloads, escolha o tipo de recurso Deployments (Implantações) e depois selecione o recurso coredns. Por padrão, ao selecionar um recurso, você está em Structured view (Visualização estruturada). Para alguns tipos de recursos, há uma seção Pods em Structured view (Visualização estruturada). Esta seção mostra os Pods gerenciados pela workload. É possível selecionar qualquer Pod listado para visualizar informações sobre o Pod. Nem todos os tipos de recursos mostram informações em Structured view (Visualização estruturada). Se a opção Raw view (Visualização bruta) for selecionada no canto superior direito da página do recurso, será possível ver a resposta JSON completa da API do Kubernetes para esse recurso.
-
Selecione o grupo Cluster e depois o tipo de recurso Nodes (Nós). Você verá uma lista com todos os nós do seu cluster. Esses nós podem ser de qualquer Tipo de nó do Amazon EKS. Esta é a mesma lista visível na seção Nodes (Nós) ao selecionar a guia Compute (Computação) do seu cluster. Escolha um recurso de nó da lista. Em Structured view (Visualização estruturada), também é possível ver uma seção Pods. Essa seção mostra todos os Pods em execução no nó.
-
Permissões obrigatórias
Para visualizar a guia Recursos e a seção Nós na guia Computação no AWS Management Console, a entidade principal do IAM que você está usando deve ter permissões específicas mínimas do IAM e do Kubernetes. Conclua as seguintes etapas para atribuir as permissões necessárias às entidades principais do IAM.
-
Verifique se
eks:AccessKubernetesApi
e as outras permissões necessárias do IAM para visualizar os recursos do Kubernetes estão atribuídas à entidade principal do IAM que você está usando. Para obter mais informações sobre como editar permissões para uma entidade principal do IAM, consulte Controle de acesso das entidades principais no Guia do usuário do IAM. Para saber mais sobre como editar as permissões de um perfil, consulte Modificar a política de permissões de um perfil (console), no Guia do usuário do IAM.O seguinte exemplo de política inclui as permissões necessárias para uma entidade principal visualizar recursos do Kubernetes para todos os clusters da conta. Substitua
111122223333
pelo ID de sua conta da AWS.{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "eks:ListFargateProfiles", "eks:DescribeNodegroup", "eks:ListNodegroups", "eks:ListUpdates", "eks:AccessKubernetesApi", "eks:ListAddons", "eks:DescribeCluster", "eks:DescribeAddonVersions", "eks:ListClusters", "eks:ListIdentityProviderConfigs", "iam:ListRoles" ], "Resource": "*" }, { "Effect": "Allow", "Action": "ssm:GetParameter", "Resource": "arn:aws:ssm:*:111122223333:parameter/*" } ] }
Para visualizar nós em clusters conectados, o perfil do IAM do conector do Amazon EKS deve ser capaz de representar a entidade principal no cluster. Isso permite que Conectar um cluster Kubernetes a um Console de gerenciamento do Amazon EKS com o Amazon EKS Connector mapeie a entidade principal para um usuário Kubernetes.
-
Crie uma
rolebinding
ouclusterrolebinding
do Kubernetes que esteja vinculada a umarole
ouclusterrole
do Kubernetes que tenha as permissões necessárias para visualizar os recursos do Kubernetes. Para saber mais sobre funções e associações de função do Kubernetes, consulte Using RBAC Authorization(Usar a autorização RBAC), na documentação do Kubernetes. É possível aplicar ao cluster um dos seguintes manifestos que criam uma role
erolebinding
ou umaclusterrole
eclusterrolebinding
com as permissões necessárias do Kubernetes:- Visualizar recursos do Kubernetes em todos os namespaces
-
-
O nome do grupo no arquivo é
eks-console-dashboard-full-access-group
. Aplique o manifesto ao seu cluster com o seguinte comando:kubectl apply -f https://s3.us-west-2.amazonaws.com/amazon-eks/docs/eks-console-full-access.yaml
-
- Visualizar recursos do Kubernetes em um namespace específico
-
-
O namespace neste arquivo é
default
. O nome do grupo no arquivo éeks-console-dashboard-restricted-access-group
. Aplique o manifesto ao seu cluster com o seguinte comando:kubectl apply -f https://s3.us-west-2.amazonaws.com/amazon-eks/docs/eks-console-restricted-access.yaml
Se for necessário modificar o nome do grupo, o namespace, as permissões do Kubernetes ou qualquer outra configuração no arquivo, baixe esse arquivo e edite-o antes de aplicá-lo ao cluster:
-
Baixe o arquivo com um dos seguintes comandos:
curl -O https://s3.us-west-2.amazonaws.com/amazon-eks/docs/eks-console-full-access.yaml
curl -O https://s3.us-west-2.amazonaws.com/amazon-eks/docs/eks-console-restricted-access.yaml
-
Edite esse arquivo conforme for necessário.
-
Aplique o manifesto ao seu cluster com um dos seguintes comandos:
kubectl apply -f eks-console-full-access.yaml
kubectl apply -f eks-console-restricted-access.yaml
-
-
-
Mapeie a entidade principal do IAM para o usuário ou grupo do Kubernetes no
aws-auth
ConfigMap
. É possível usar uma ferramenta como oeksctl
para atualizar oConfigMap
, ou você pode atualizá-lo manualmente via edição.Importante
Convém usar
eksctl
ou outra ferramenta para editar oConfigMap
. Para obter informações sobre outras ferramentas que você pode usar, consulte Usar ferramentas para fazer alterações no aws-authConfigMap, nos guias de práticas recomendadas do Amazon EKS. Um aws-auth
ConfigMap
formatado incorretamente pode fazer com que você perca o acesso ao cluster.
Editar com o eksctl
-
Você precisa da versão
0.194.0
ou posterior da ferramenta de linha de comando daeksctl
instalada no seu dispositivo ou AWS CloudShell. Para instalar ou atualizar oeksctl
, consulte Instalaçãona documentação do eksctl
. -
Visualize os mapeamentos atuais no
ConfigMap
. Substituamy-cluster
pelo nome do cluster. Substituaregion-code
pela região da AWS em que seu cluster se encontra.eksctl get iamidentitymapping --cluster my-cluster --region=region-code
Veja um exemplo de saída abaixo.
ARN USERNAME GROUPS ACCOUNT arn:aws:iam::111122223333:role/eksctl-my-cluster-my-nodegroup-NodeInstanceRole-1XLS7754U3ZPA system:node:{{EC2PrivateDNSName}} system:bootstrappers,system:nodes
-
Adicione um mapeamento referente a uma função. Esse exemplo supõe que você tenha anexado as permissões do IAM na primeira etapa a um perfil denominado
my-console-viewer-role
. Substitua111122223333
pelo ID da sua conta.eksctl create iamidentitymapping \ --cluster my-cluster \ --region=region-code \ --arn arn:aws:iam::111122223333:role/my-console-viewer-role \ --group eks-console-dashboard-full-access-group \ --no-duplicate-arns
Importante
O ARN da função não pode incluir um caminho, como
role/my-team/developers/my-role
. O formato do ARN deve serarn:aws:iam::
. Neste exemplo,111122223333
:role/my-role
my-team/developers/
precisa ser removido.Veja um exemplo de saída abaixo.
[...] 2022-05-09 14:51:20 [ℹ] adding identity "arn:aws:iam::111122223333:role/my-console-viewer-role" to auth ConfigMap
-
Adicione um mapeamento referente a um usuário. As melhores práticas do IAM recomendam que você conceda permissões para perfis e não para usuários. Esse exemplo supõe que você tenha anexado as permissões do IAM na primeira etapa a um usuário denominado
my-user
. Substitua111122223333
pelo ID da sua conta.eksctl create iamidentitymapping \ --cluster my-cluster \ --region=region-code \ --arn arn:aws:iam::111122223333:user/my-user \ --group eks-console-dashboard-restricted-access-group \ --no-duplicate-arns
Veja um exemplo de saída abaixo.
[...] 2022-05-09 14:53:48 [ℹ] adding identity "arn:aws:iam::111122223333:user/my-user" to auth ConfigMap
-
Visualize os mapeamentos no
ConfigMap
novamente.eksctl get iamidentitymapping --cluster my-cluster --region=region-code
Veja um exemplo de saída abaixo.
ARN USERNAME GROUPS ACCOUNT arn:aws:iam::111122223333:role/eksctl-my-cluster-my-nodegroup-NodeInstanceRole-1XLS7754U3ZPA system:node:{{EC2PrivateDNSName}} system:bootstrappers,system:nodes arn:aws:iam::111122223333:role/my-console-viewer-role eks-console-dashboard-full-access-group arn:aws:iam::111122223333:user/my-user eks-console-dashboard-restricted-access-group
Editar o ConfigMap manualmente
Para obter mais informações sobre como adicionar usuários ou perfis do IAM ao aws-auth
ConfigMap
, consulte Adicione um usuário do IAM ao cluster do Amazon EKS.
-
Abra o
ConfigMap
deaws-auth
para edição.kubectl edit -n kube-system configmap/aws-auth
-
Adicione os mapeamentos ao
aws-auth
ConfigMap
, mas não substitua os mapeamentos existentes. O seguinte exemplo adiciona mapeamentos entre as entidades principais do IAM com permissões adicionadas na primeira etapa e os grupos do Kubernetes criados na etapa anterior:-
O perfil
my-console-viewer-role
eeks-console-dashboard-full-access-group
. -
O usuário
my-user
eks-console-dashboard-restricted-access-group
.Esses exemplos supõem que você tenha anexado as permissões do IAM da primeira etapa a um perfil denominado
my-console-viewer-role
e a um usuário denominadomy-user
. Substitua111122223333
pelo ID de sua conta da AWS.apiVersion: v1 data: mapRoles: | - groups: - eks-console-dashboard-full-access-group rolearn: arn:aws:iam::111122223333:role/my-console-viewer-role username: my-console-viewer-role mapUsers: | - groups: - eks-console-dashboard-restricted-access-group userarn: arn:aws:iam::111122223333:user/my-user username: my-user
Importante
O ARN da função não pode incluir um caminho, como
role/my-team/developers/my-console-viewer-role
. O formato do ARN deve serarn:aws:iam::
. Neste exemplo,111122223333
:role/my-console-viewer-role
my-team/developers/
precisa ser removido.
-
-
Salve o arquivo e saia do seu editor de texto.