É uma coleção de containeres e volumes dentro de um mesmo ambiente de execução (nodes) Cada ambiente tem:
- IP Address
- Port Space
- Same hostname
Dentro do manifesto, o Kind será do tipo Pod e terá uma propriedade para informar a imagem que será usada:
apiVersion: v1
kind: Pod
metadata:
name: kuard
spec:
containers:
- image: gcr.io/kuar-demo/kuard-amd64:blue
name: kuard
ports:
- containerPort: 8080
name: http
protocol: TCP
Porém, este modelo de deployment faz com que em uma eventual queda de ambiente, o Pod não será direcionado para um outro nó, fazendo com não tenhamos alta disponibilidade, uma vez que um dos conceitos do Pod é a imutabilidade da imagem* (rever esse conceito melhor) - por isso não realizamos esse kind no yaml em produção.
Para que tenhamos a característica de self-healing, precisamos usar Pod Controllers, que atuará em uma camada acima do Pod.
Por exemplo:
apiVersion: apps/v1
kind: Deployment
metadata:
name: my-nginx
labels:
app: nginx
spec:
replicas: 2
selector:
matchLabels:
app: nginx
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx
image: nginx:1.14.2
ports:
- containerPort: 80