0Pricing
CI/CD with GitHub Actions & DevOps Pipelines · Aula

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 --client

Manifesto 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: LoadBalancer

Fluxo 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.yaml

Atualizando 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 kubeconfig nos 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

  1. Criação de imagens Docker com Actions
  2. Envio de imagens para registros
  3. Implantação no Kubernetes com Actions
  4. Gráficos Helm e manifestos do Kubernetes em CI/CD
← Voltar para CI/CD with GitHub Actions & DevOps Pipelines