As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
Você pode usar a EKSDeploy
ação para implantar um serviço Amazon EKS. A implantação requer um arquivo de manifesto do Kubernetes CodePipeline usado para implantar a imagem.
Antes de criar seu pipeline, você já deve ter criado os recursos do Amazon EKS e armazenado a imagem no seu repositório de imagens. Opcionalmente, você pode fornecer informações de VPC para seu cluster.
Importante
Essa ação usa CodeBuild computação CodePipeline gerenciada para executar comandos em um ambiente de compilação. A execução da ação Comandos incorrerá em cobranças separadas no AWS CodeBuild.
nota
A ação de EKS
implantação está disponível somente para pipelines do tipo V2.
A ação EKS oferece suporte a clusters EKS públicos e privados. Clusters privados são do tipo recomendado pelo EKS; no entanto, ambos os tipos são compatíveis.
A ação EKS é compatível com ações entre contas. Para adicionar uma ação EKS entre contas, adicione actionRoleArn
da sua conta de destino na declaração de ação.
Tópicos
Tipo de ação
-
Categoria:
Deploy
-
Proprietário:
AWS
-
Fornecedor:
EKS
-
Versão:
1
Parâmetros de configuração
- ClusterName
-
Obrigatório: sim
O cluster Amazon EKS no Amazon EKS.
- Opções sob o comando
-
A seguir estão as opções disponíveis quando o Helm é a ferramenta de implantação selecionada.
- HelmReleaseName
-
Obrigatório: Sim (obrigatório apenas para o tipo de capacete)
O nome da versão para sua implantação.
- HelmChartLocation
-
Obrigatório: Sim (obrigatório apenas para o tipo de capacete)
A localização do gráfico para sua implantação.
- HelmValuesFiles
-
Obrigatório: Não (opcional somente para o tipo de capacete)
A localização do gráfico para sua implantação.
- Opções em Kubectl
-
Veja a seguir as opções disponíveis quando o Kubectl é a ferramenta de implantação selecionada.
- ManifestFiles
-
Obrigatório: Sim (obrigatório somente para o tipo Kubectl)
O nome do seu arquivo de manifesto, o arquivo de texto que descreve o nome do contêiner do seu serviço, a imagem e a tag. Você usa esse arquivo para parametrizar o URI da imagem e outras informações. Você pode usar a variável de ambiente para essa finalidade.
Você armazena esse arquivo no repositório de origem do seu pipeline.
- Namespace
-
Obrigatório: não
O namepace kubernetes a ser usado em nossos comandos.
kubectl
helm
- Sub-redes
-
Obrigatório: não
As sub-redes da VPC do seu cluster. Eles fazem parte da mesma VPC conectada ao seu cluster. Você também pode fornecer sub-redes que ainda não estão conectadas ao seu cluster e especificá-las aqui.
- SecurityGroupIds
-
Obrigatório: não
Os grupos de segurança da VPC do seu cluster. Eles fazem parte da mesma VPC conectada ao seu cluster. Você também pode fornecer grupos de segurança que ainda não estejam conectados ao seu cluster e especificá-los aqui.
Input artifacts (Artefatos de entrada)
-
Número de artefatos:
1
-
Descrição: a ação procura o arquivo de manifesto do Kubernetes ou o gráfico do Helm no repositório de arquivos de origem do pipeline).
A ação requer uma imagem existente que já tenha sido enviada por push para o repositório de imagens. Como o mapeamento da imagem é fornecido pelo arquivo de manifesto, a ação não exige que a fonte do Amazon ECR seja incluída como uma ação de origem no pipeline.
Artefatos de saída
-
Número de artefatos:
0
-
Descrição: os artefatos de saída não se aplicam a esse tipo de ação.
Variáveis de ambiente
- Chave
-
A chave em um par de variáveis de ambiente chave-valor, como.
Name
- Valor
-
O valor do par de valores-chave, como.
Production
O valor pode ser parametrizado com variáveis de saída de ações do pipeline ou variáveis do pipeline.Esse valor será substituído em seus arquivos de manifesto se a $Key correspondente estiver presente.
Variáveis de saída
- EKSClusterNome
-
O cluster Amazon EKS no Amazon EKS.
Permissões de política de perfil de serviço
Para executar essa ação, as seguintes permissões devem estar disponíveis na política de função de serviço do seu pipeline.
-
EC2 ações: Quando CodePipeline executada, as permissões da EC2 instância de ação são necessárias. Observe que isso não é o mesmo que a função de EC2 instância exigida quando você cria seu cluster EKS.
Se você estiver usando uma função de serviço existente, para usar essa ação, você precisará adicionar as seguintes permissões para a função de serviço.
-
ec2: CreateNetworkInterface
-
ec2: DescribeDhcpOptions
-
ec2: DescribeNetworkInterfaces
-
ec2: DeleteNetworkInterface
-
ec2: DescribeSubnets
-
ec2: DescribeSecurityGroups
-
ec2: DescribeVpcs
-
-
Ações do EKS: ao CodePipeline executar a ação, as permissões do cluster EKS são necessárias. Observe que isso não é o mesmo que a função de cluster IAM EKS exigida quando você cria seu cluster EKS.
Se você estiver usando uma função de serviço existente, para usar essa ação, você precisará adicionar a seguinte permissão para a função de serviço.
-
ex: DescribeCluster
-
-
Ações de fluxo de log: ao CodePipeline executar a ação, CodePipeline cria um grupo de registros usando o nome do pipeline da seguinte forma. Isso permite reduzir as permissões para os recursos de log usando o nome do pipeline.
/aws/codepipeline/
MyPipelineName
Se você estiver usando uma função de serviço existente, para usar essa ação, você precisará adicionar as seguintes permissões para a função de serviço.
-
troncos: CreateLogGroup
-
troncos: CreateLogStream
-
troncos: PutLogEvents
-
Na declaração de política de função de serviço, reduza as permissões até o nível do recurso, conforme mostrado no exemplo a seguir.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "eks:DescribeCluster" ], "Resource": "arn:aws:eks:*:
YOUR_AWS_ACCOUNT_ID
:cluster/YOUR_CLUSTER_NAME
" }, { "Effect": "Allow", "Action": [ "ec2:CreateNetworkInterface", "ec2:CreateNetworkInterfacePermission", "ec2:DescribeDhcpOptions", "ec2:DescribeNetworkInterfaces", "ec2:DeleteNetworkInterface", "ec2:DescribeSubnets", "ec2:DescribeSecurityGroups", "ec2:DescribeVpcs", "ec2:DescribeRouteTables" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "logs:CreateLogStream", "logs:CreateLogGroup", "logs:PutLogEvents" ], "Resource": [ "arn:aws:logs:*:YOUR_AWS_ACCOUNT_ID
:log-group:/aws/codepipeline/YOUR_PIPELINE_NAME
","arn:aws:logs:*:YOUR_AWS_ACCOUNT_ID
:log-group:/aws/codepipeline/YOUR_PIPELINE_NAME
:*"] }, ] }
Para visualizar logs no console usando a página de diálogo de detalhes da ação, a permissão para visualizar logs deve ser adicionada ao perfil do console. Para ter mais informações, consulte o exemplo de política de permissões do console em Permissões necessárias para visualizar registros computacionais no console CodePipeline .
Adicionar a função de serviço como uma entrada de acesso para seu cluster
Depois que as permissões estiverem disponíveis na política de função de serviço do seu pipeline, você configura suas permissões de cluster adicionando a função de CodePipeline serviço como uma entrada de acesso para seu cluster.
Você também pode usar uma função de ação que tenha as permissões atualizadas. Para obter mais informações, consulte o exemplo do tutorial emEtapa 4: criar uma entrada de acesso para a função CodePipeline de serviço.
Declaração de ação
Name: DeployEKS
ActionTypeId:
Category: Deploy
Owner: AWS
Provider: EKS
Version: '1'
RunOrder: 2
Configuration:
ClusterName: my-eks-cluster
ManifestFiles: ManifestFile.json
OutputArtifacts: []
InputArtifacts:
- Name: SourceArtifact
Consulte também
Os recursos relacionados a seguir podem ajudar você à medida que trabalha com esta ação.
-
Veja Tutorial: implante no Amazon EKS com CodePipeline um tutorial que demonstra como criar um cluster EKS e um arquivo de manifesto do Kubernetes para adicionar a ação ao seu pipeline.