É 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