Skip to content

Instantly share code, notes, and snippets.

@mauricio-testa
Created May 2, 2024 17:12
Show Gist options
  • Save mauricio-testa/503a6b88f36d24d1bc29b62a285899ab to your computer and use it in GitHub Desktop.
Save mauricio-testa/503a6b88f36d24d1bc29b62a285899ab to your computer and use it in GitHub Desktop.
Kubeprod deploy

Como fazer deploy no Kubernetes de produção

Pré requisitos:

  • É necessário ter acesso aos namespaces no Rancher de produção e fazer o download do kubeconfig de produção. Para este exemplo, o kubeconfig de produção foi baixado e está localizado em C:/Users/iciot/.kube/kubeprod
  • Entender o básico de versionamento semântico

Passo a passo:

  1. Definir qual vai ser a tag da nova versão. Para isso, é necessário observar no Rancher qual é a versão atual do deployment

Exemplo: digamos vamos fazer o deploy de uma correção de bug no socialproof. Observando no rancher, vemos que a versão atual é v1.2.0 https://prnt.sc/To6w6BebBC3e. Logo, baseado no versionamento semântico a nova versão será a v1.2.1

  1. Edite o arquivo de deployment /.kube/production/socialproof-deployment.yaml e os cronjobs (se necessário) substituíndo a tag atual pela nova tag

  2. Merge develop > homolog e push

  3. Com o código na homolog, antes de gerar a versão da tag de produção, temos que gerar a tag rc (release candidate). Para isso, basta adicionar uma tag e fazer o push dela.

Neste exemplo, devemos adicionar a tag v1.2.1-rc por se tratar de uma versão release candidate

  1. Após adicionar a tag rc e fazer o push, a GitHub action automaticamente vai fazer deploy daquela tag no ambiente de homologação [myapp].kub.app.builderall.info

  2. Agora que já temos a versão release candidate, basta "tagear" ela como versão de release e aplicar em produção. Este processo ainda não é automatizado, então neste momento tem que ser feito manualmente. Vamos remover o "rc" da tag para torná-la estável com os comandos:

docker pull baimages/socialproof:v1.2.1-rc
docker tag baimages/socialproof:v1.2.1-rc baimages/socialproof:v1.2.1
docker push baimages/socialproof:v1.2.1
  1. Aplique o arquivo no deployment de produção:
kubectl config set-context --current --namespace=socialproof --kubeconfig=C:/Users/iciot/.kube/kubeprod
kubectl apply -f ./.kube/production/socialproof-deployment.yaml --kubeconfig=C:/Users/iciot/.kube/kubeprod

Observe que o parâmetro --kubeconfig deve ser o endereço local do seu arquivo .kubeconfig de produção

Para ajudar na geração dos comandos utilizados nos passos 5 e 6, você pode usar este link

  1. Merge homolog > main e push
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment