Physical Address
304 North Cardinal St.
Dorchester Center, MA 02124
Physical Address
304 North Cardinal St.
Dorchester Center, MA 02124
Um arquivo YAML de Deployment do Kubernetes descreve como implantar e atualizar um aplicativo em um cluster Kubernetes. Ele contém informações sobre o contêiner, réplicas, estratégia de implantação, recursos de computação, rede, volumes e outros aspectos da configuração do aplicativo. Abaixo, explicamos cada componente de um arquivo YAML típico de Deployment do Kubernetes.
Estrutura básica do arquivo YAML: o arquivo YAML é composto por uma série de pares chave-valor, onde a chave é o nome do atributo e o valor é o valor que você deseja definir para esse atributo. A estrutura básica de um arquivo YAML para criar um serviço no Kubernetes é semelhante à seguinte:
apiVersion: apps/v1
kind: Deployment
metadata:
name: my-app
spec:
replicas: 3
selector:
matchLabels:
app: my-app
template:
metadata:
labels:
app: my-app
spec:
containers:
- name: my-app
image: my-image:latest
ports:
- containerPort: 80
YAMLVamos explicar o que é cada configuração do yaml e para que serve as chaves:
A seção apiVersion
especifica a versão da API do Kubernetes que deve ser usada para interpretar o arquivo YAML. Neste exemplo, estamos usando a versão “apps/v1”, que é a versão mais recente da API de Implantação do Kubernetes.
A seção kind
especifica o tipo de objeto que estamos declarando no arquivo YAML. Neste caso, estamos declarando um objeto do tipo “Deployment”.
A seção “metadata” inclui informações sobre o nome, namespace e rótulos do Deployment. O nome é o identificador exclusivo do Deployment, enquanto o namespace é o contexto no qual o Deployment é implantado. Os rótulos permitem agrupar vários recursos e aplicar configurações de rede e segurança.
Exemplo:
metadata:
name: my-deployment
namespace: default
labels:
app: my-app
YAMLA seção name
especifica o nome do objeto sendo declarado. Neste caso, estamos declarando um Deployment chamado “my-app”.
A seção namespace especifica o nome do namespace dentro do cluster de kubernetes, neste caso de exemplo o deployment será executado dentro do namespace: default.
A seção spec
especifica o estado desejado do objeto sendo declarado. Neste caso, estamos especificando como o Kubernetes deve implantar e gerenciar o aplicativo.
A seção replicas
especifica o número de réplicas que devem ser implantadas do aplicativo. Neste caso, estamos especificando que devem ser implantadas 3 réplicas.
Exemplo:
spec:
replicas: 3
YAMLA seção selector
especifica como o Kubernetes deve selecionar os pods que fazem parte do Deployment. Neste caso, estamos usando um seletor de rótulo para selecionar os pods com o rótulo “app: my-app”.
Exemplo:
spec:
selector:
matchLabels:
app: my-app
YAMLA seção template
especifica o modelo para os pods que fazem parte do Deployment. Ele especifica as configurações para os contêineres, rótulos e outras opções importantes.
spec:
template:
metadata:
labels:
app: my-app
spec:
containers:
- name: my-container
image: my-image:latest
ports:
- containerPort: 80
YAMLEste exemplo define um pod que usa o contêiner “my-container” com a imagem “my-image:latest” e expõe a porta 80.
A seção labels
especifica os rótulos que devem ser aplicados aos pods que fazem parte do Deployment. Neste caso, estamos usando o rótulo “app: my-app”.
A seção containers
especifica as configurações para os contêineres que fazem parte do Deployment. Neste caso, estamos especificando o nome e a imagem do contêiner, bem como a porta que ele deve expor.
A seção name
especifica o nome do contêiner que estamos implantando. Neste caso, estamos usando o nome “my-app”.
A seção image
especifica a imagem do contêiner que deve ser usada para implantar o aplicativo. Neste caso, estamos usando a imagem “my-image:latest”.
A seção ports
especifica as portas que o contêiner deve expor. Neste caso, estamos expondo a porta 80.