Ajudar a melhorar esta página
Para contribuir com este guia de usuário, escolha o link Editar esta página no GitHub, disponível no painel direito de cada página.
Criação de uma funcionalidade do kro por meio da AWS CLI
Este tópico descreve como criar uma funcionalidade do kro (Kube Resource Orchestrator) usando a AWS CLI.
Pré-requisitos
-
AWS CLI: versão
2.12.3ou em versões posteriores. Para verificar a versão, executeaws --version. Para obter mais informações, consulte Instalação no Guia do Usuário da Interface de Linha de Comando AWS. -
kubectl– uma ferramenta de linha de comando para trabalhar com clusters do Kubernetes. Para obter mais informações, consulte Configurar o kubectl e o eksctl.
Etapa 1: criação de um perfil da funcionalidade do IAM
Crie um arquivo de política de confiança:
cat > kro-trust-policy.json << 'EOF' { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "capabilities.eks.amazonaws.com" }, "Action": [ "sts:AssumeRole", "sts:TagSession" ] } ] } EOF
Crie o perfil do IAM:
aws iam create-role \ --role-name KROCapabilityRole \ --assume-role-policy-document file://kro-trust-policy.json
nota
Ao contrário do ACK e do Argo CD, o kro não requer permissões do IAM adicionais. O kro opera inteiramente no cluster e não faz chamadas de API da AWS. O perfil é exigido exclusivamente para configurar a relação de confiança com o serviço de funcionalidades do EKS.
Etapa 2: criação da funcionalidade do kro
Crie o recurso da funcionalidade do kro no cluster. Substitua region-code pela região da AWS em que seu cluster está localizado (por exemplo, us-west-2) e my-cluster pelo nome do seu cluster.
aws eks create-capability \ --regionregion-code\ --cluster-namemy-cluster\ --capability-name my-kro \ --type KRO \ --role-arn arn:aws:iam::$(aws sts get-caller-identity --query Account --output text):role/KROCapabilityRole \ --delete-propagation-policy RETAIN
O comando é concluído de imediato, mas a funcionalidade demora algum tempo para se tornar ativa, conforme o EKS cria a infraestrutura e os componentes necessários para a funcionalidade. O EKS instalará as definições de recursos personalizados do Kubernetes relacionadas a essa funcionalidade no cluster durante o processo de criação.
nota
Caso ocorra um erro indicando a inexistência do cluster ou falta de permissões, verifique o seguinte:
-
Se o nome do cluster está correto
-
Se a AWS CLI está configurada para a região correta
-
Se você tem as permissões do IAM obrigatórias
Etapa 3: verificação da ativação da funcionalidade
Aguarde até que a funcionalidade se torne ativa. Substitua region-code pela região AWS em que seu cluster se encontra e substitua my-cluster pelo nome do seu cluster.
aws eks describe-capability \ --regionregion-code\ --cluster-namemy-cluster\ --capability-name my-kro \ --query 'capability.status' \ --output text
A funcionalidade estará pronta assim que o status mostrar ACTIVE.
Também é possível visualizar os detalhes completos da funcionalidade:
aws eks describe-capability \ --regionregion-code\ --cluster-namemy-cluster\ --capability-name my-kro
Etapa 4: concessão de permissões para o gerenciamento de recursos do Kubernetes
Por padrão, o kro pode apenas criar e gerenciar ResourceGraphDefinitions e suas respectivas instâncias. Para permitir que o kro crie e gerencie os recursos subjacentes do Kubernetes definidos em suas ResourceGraphDefinitions, associe a política de acesso AmazonEKSClusterAdminPolicy à entrada de acesso da funcionalidade.
Obtenha o ARN do perfil da funcionalidade:
CAPABILITY_ROLE_ARN=$(aws eks describe-capability \ --regionregion-code\ --cluster-namemy-cluster\ --capability-name my-kro \ --query 'capability.roleArn' \ --output text)
Associe a política de administrador do cluster:
aws eks associate-access-policy \ --regionregion-code\ --cluster-namemy-cluster\ --principal-arn $CAPABILITY_ROLE_ARN \ --policy-arn arn:aws:eks::aws:cluster-access-policy/AmazonEKSClusterAdminPolicy \ --access-scope type=cluster
Importante
A política AmazonEKSClusterAdminPolicy concede permissões abrangentes para criar e gerenciar todos os recursos do Kubernetes e tem como objetivo agilizar os primeiros passos. Para uso em ambientes de produção, crie políticas de RBAC mais restritivas que concedam somente as permissões necessárias para os recursos específicos que as ResourceGraphDefinitions gerenciarão. Para obter orientações sobre como configurar permissões de privilégio mínimo, consulte Configuração de permissões do kro e Considerações sobre segurança para funcionalidades do EKS.
Etapa 5: verificação da disponibilidade de recursos personalizados
Após a funcionalidade estar ativa, verifique se os recursos personalizados do kro estão disponíveis no cluster:
kubectl api-resources | grep kro.run
O tipo de recurso ResourceGraphDefinition deve aparecer na lista apresentada.
Próximas etapas
-
Conceitos do kro: compreenda os conceitos do kro e a composição de recursos
-
Conceitos do kro: saiba mais sobre o SimpleSchema, expressões CEL e padrões de composição
-
Como trabalhar com recursos de funcionalidade: gerencie os recursos da funcionalidade do kro