Implantação no Kubernetes com Actions
Configure a implantação contínua em clusters do Kubernetes, gerenciando implantações e serviços diretamente pelo GitHub Actions.
Implantação no Kubernetes com Actions é uma aula grátis de CI/CD with GitHub Actions & DevOps Pipelines no CoddyKit. Esta é a aula 3 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de CI/CD with GitHub Actions & DevOps Pipelines, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de CI/CD with GitHub Actions & DevOps Pipelines inclui 4 aulas no total.
Introdução à CD para K8s com Actions
Boas-vindas! Nesta lição, você aprenderá a configurar a implantação contínua (CD) em clusters do Kubernetes usando GitHub Actions.
Automatizar as implantações significa que as alterações da sua aplicação podem entrar em produção de forma rápida e confiável, sem etapas manuais.
Abordaremos a autenticação, a aplicação de manifestos do Kubernetes e o gerenciamento de atualizações.
Fundamentos das implantações no K8s
Antes de implantarmos, vamos relembrar rapidamente dois recursos fundamentais do Kubernetes:
- Implantações: elas gerenciam os Pods da sua aplicação, garantindo que um número desejado de réplicas esteja sempre em execução. Elas lidam com atualizações e reversões.
- Serviços: eles definem como acessar sua aplicação, por exemplo, internamente no cluster ou externamente por meio de um LoadBalancer.
Nosso objetivo é aplicar ao cluster, a partir do GitHub Actions, os arquivos YAML que definem esses recursos.
Autenticando o GitHub Actions no K8s
Para realizar a implantação, o fluxo de trabalho do GitHub Actions precisa se comunicar com o servidor de API do cluster do Kubernetes.
Isso requer autenticação. A maneira padrão de autenticar-se no Kubernetes é usando um arquivo kubeconfig.
Precisamos fornecer com segurança o conteúdo desse arquivo ao executor do fluxo de trabalho.
Protegendo o kubeconfig
O arquivo kubeconfig contém informações confidenciais, como endpoints do cluster e credenciais de usuário. Ele deve ser mantido em segredo!
O GitHub Actions fornece Segredos para essa finalidade. Você armazenará o conteúdo do arquivo kubeconfig como um segredo do repositório.
Como obter seu kubeconfig? Isso depende do seu provedor de K8s, por exemplo, aws eks update-kubeconfig ou gcloud container clusters get-credentials.
Configure o contexto do K8s
Depois que seu kubeconfig estiver armazenado como um segredo, vamos chamá-lo de KUBE_CONFIG_DATA, seu fluxo de trabalho poderá usá-lo.
A prática comum é gravar o conteúdo do segredo em um arquivo temporário no executor e, em seguida, definir a variável de ambiente KUBECONFIG para apontar para ele.
Isso informa ao kubectl onde encontrar os detalhes da conexão com o cluster.
Usando `kubectl` nos fluxos de trabalho
kubectl é a ferramenta oficial de linha de comando para interagir com clusters do Kubernetes. Os executores do GitHub Actions já têm o kubectl instalado.
Depois de configurar o kubeconfig, você poderá executar qualquer comando kubectl nas etapas do seu fluxo de trabalho.
Vamos ver um exemplo básico:
name: K8s Setup Test
on: [workflow_dispatch]
jobs:
test-kubeconfig:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Set up Kubeconfig
env:
KUBE_CONFIG_DATA: ${{ secrets.KUBE_CONFIG_DATA }}
run: |
mkdir -p ~/.kube
echo "$KUBE_CONFIG_DATA" > ~/.kube/config
chmod 600 ~/.kube/config
echo "KUBECONFIG=$HOME/.kube/config" >> $GITHUB_ENV
- name: Verify kubectl access
run: kubectl version --clientManifesto simples de implantação no K8s
Aqui está um manifesto básico de Deployment e Service do Kubernetes para uma aplicação chamada "olá-mundo". É isso que pediremos ao Kubernetes para executar.
Este exemplo usa uma imagem simples do Nginx e a expõe na porta 80.
apiVersion: apps/v1
kind: Deployment
metadata:
name: hello-app-deployment
spec:
replicas: 1
selector:
matchLabels:
app: hello-app
template:
metadata:
labels:
app: hello-app
spec:
containers:
- name: hello-app
image: nginx:latest
ports:
- containerPort: 80
---
apiVersion: v1
kind: Service
metadata:
name: hello-app-service
spec:
selector:
app: hello-app
ports:
- protocol: TCP
port: 80
targetPort: 80
type: LoadBalancerFluxo de trabalho completo de implantação
Agora, vamos integrar a etapa de implantação a um fluxo de trabalho. Depois de criar e enviar sua imagem de contêiner, como visto nas lições anteriores, você poderá implantá-la.
Este fluxo de trabalho pressupõe que o segredo kubeconfig esteja configurado e que o arquivo de manifesto, por exemplo, k8s/deployment.yaml, exista no seu repositório.
name: Deploy to Kubernetes
on:
push:
branches:
- main
workflow_dispatch:
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Set up Kubeconfig
env:
KUBE_CONFIG_DATA: ${{ secrets.KUBE_CONFIG_DATA }}
run: |
mkdir -p ~/.kube
echo "$KUBE_CONFIG_DATA" > ~/.kube/config
chmod 600 ~/.kube/config
echo "KUBECONFIG=$HOME/.kube/config" >> $GITHUB_ENV
- name: Deploy application to K8s
run: kubectl apply -f k8s/deployment.yamlAtualizando sua aplicação
Um dos excelentes recursos do kubectl apply é sua idempotência. Se os recursos definidos no seu YAML já existirem, o kubectl apply os atualizará em vez de criar novos.
Para implantar uma nova versão da sua aplicação, basta atualizar o rótulo da imagem no seu deployment.yaml e enviar a alteração. O GitHub Actions será acionado, e o Kubernetes realizará uma atualização gradual, substituindo os pods antigos pelos novos aos poucos e garantindo o mínimo de indisponibilidade.
Verificação rápida
Você aprendeu as etapas essenciais para implantar uma aplicação no Kubernetes usando GitHub Actions.
Qual das opções a seguir apresenta a sequência correta de etapas de um fluxo de trabalho do GitHub Actions para implantar um manifesto do Kubernetes?
Recapitulação e próximos passos
Excelente trabalho! Você aprendeu a configurar a implantação contínua no Kubernetes usando GitHub Actions.
- Armazenamos os dados confidenciais do
kubeconfignos Segredos do GitHub. - Os fluxos de trabalho usam esse segredo para configurar o
kubectl. kubectl apply -fé usado para implantar ou atualizar manifestos do K8s.- O Kubernetes gerencia atualizações graduais quando as alterações são aplicadas.
Essa combinação poderosa automatiza suas implantações, tornando seu processo de desenvolvimento mais simples e rápido. Continue explorando recursos mais avançados do K8s!
Perguntas Frequentes
A aula “Implantação no Kubernetes com Actions” é grátis?
Sim — o texto completo de “Implantação no Kubernetes com Actions” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de CI/CD with GitHub Actions & DevOps Pipelines, atualize para CoddyKit PRO. O curso de CI/CD with GitHub Actions & DevOps Pipelines inclui 4 aulas no total.
O que vou aprender em “Implantação no Kubernetes com Actions”?
Configure a implantação contínua em clusters do Kubernetes, gerenciando implantações e serviços diretamente pelo GitHub Actions. Você pratica CI/CD with GitHub Actions & DevOps Pipelines com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.
Preciso ter experiência prévia para começar CI/CD with GitHub Actions & DevOps Pipelines?
Nenhuma experiência prévia é necessária. CI/CD with GitHub Actions & DevOps Pipelines no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 3 de 4.
Quanto tempo leva a aula “Implantação no Kubernetes com Actions”?
A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.
Posso escrever e executar código nesta aula de CI/CD with GitHub Actions & DevOps Pipelines?
Sim. Cada aula de CI/CD with GitHub Actions & DevOps Pipelines inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.
Todas as aulas deste curso
- Criação de imagens Docker com Actions
- Envio de imagens para registros
- Implantação no Kubernetes com Actions
- Gráficos Helm e manifestos do Kubernetes em CI/CD