Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Kustomize

Kustomize é uma ferramenta de personalização de configuração do Kubernetes que permite que você personalize arquivos YAML brutos e sem templates, deixando a configuração original intocada.

Como funciona

O Kustomize funciona com um arquivo kustomization.yaml que define como personalizar os recursos do Kubernetes. Este arquivo pode:

  • Adicionar um namespace a todos os recursos.
  • Adicionar um prefixo ou sufixo aos nomes dos recursos.
  • Adicionar labels ou anotações a todos os recursos.
  • Mesclar patches com recursos existentes.

Exemplo

Suponha que você tenha um deployment.yaml e um service.yaml para uma aplicação.

deployment.yaml

apiVersion: apps/v1
kind: Deployment
metadata:
  name: my-app
spec:
  replicas: 3
  template:
    metadata:
      labels:
        app: my-app
    spec:
      containers:
      - name: my-app
        image: my-app:1.0.0

service.yaml

apiVersion: v1
kind: Service
metadata:
  name: my-app
spec:
  selector:
    app: my-app
  ports:
  - port: 80

Agora, crie um arquivo kustomization.yaml para personalizar esses recursos para um ambiente de produção:

kustomization.yaml

resources:
- deployment.yaml
- service.yaml

namePrefix: prod-

commonLabels:
  env: prod

patchesStrategicMerge:
- |
  apiVersion: apps/v1
  kind: Deployment
  metadata:
    name: my-app
  spec:
    replicas: 5

Para gerar os recursos personalizados, execute o comando kubectl kustomize:

kubectl kustomize .

Isso irá gerar os recursos com o prefixo prod-, o label env: prod e o número de réplicas do deployment aumentado para 5.