Skip to content

Latest commit

 

History

History
145 lines (110 loc) · 5.44 KB

questoes.md

File metadata and controls

145 lines (110 loc) · 5.44 KB

DAY3

Questão 1

Criar um pod estático utilizando a imagem do nginx.

Resposta 1 (clique para ver a resposta) Para criar um pod estatico, voce precisa adicionar o manifesto de criação do pod desejado, dentro do diretório /etc/kubernetes/manifests, conforme abaixo:
cd /etc/kubernetes/manifests
k run giropops --image nginx -o yaml --dry-run=client | sudo tee meu-pod-estatico.yaml
k get pods -A | grep giropops
docker ps -a |grep giropops

O arquivo terá o conteúdo abaixo:

apiVersion: v1
kind: Pod
metadata:
  creationTimestamp: null
  labels:
    run: giropops
  name: giropops
spec:
  containers:
  - image: nginx
    name: giropops
    resources: {}
  dnsPolicy: ClusterFirst
  restartPolicy: Always
status: {}

Referências:

Questão 2

O nosso gerente está assustado, pois conversando com o gerente de uma outra empresa, ficou sabendo que aconteceu uma indisponibilidade no ambiente Kubernetes de lá por conta de certificados expirados. Ele está demasiadamente preocupado. Ele quer que tenhamos a certeza de que nosso cluster não corre esse perigo, portanto, adicione no arquivo /tmp/meus-certificados.txt todos eles e suas datas de expiração.

Resposta 2 (clique para ver a resposta) Os certificados, por padrão, ficam no diretório /etc/kubernetes/pki. Para que você possa verificar a data de expiração, você pode utilizar o comando openssl, conforme abaixo:
cd /etc/kubernetes/pki
openssl x509 -noout -text -in apiserver.crt | grep -i "not after"

Lembrar de adicionar a data de expiração no arquivo solicitado na questão.

Caso queira fazer de uma forma mais bonitinha, e automagicamente pegar as datas e já adicionar ao arquivo, faça conforme abaixo:

find /etc/kubernetes/pki/ -iname "apiserver*crt" -exec openssl x509 -noout -subject -enddate -in {} \; >> /tmp/meus-certificados.txt

Para facilitar a nossa vida, podemos utilizar o kubeadm certs, conforme abaixo:

sudo kubeadm certs check-expiration >> /tmp/meus-certificados.txt

Questão 3

Pois bem, vimos que precisamos atualizar o nosso cluster imediatamente, sem trazer nenhum indisponibilidade para o ambiente. Como devemos proceder?

Resposta 3 (clique para ver a resposta)

Podemos utilizar o comando kubeadm certs para visualizar as datas corretas e também para realizar sua renovação. Conforme estamos fazendo abaixo:

sudo kubeadm certs renew all

Lembrando a importância de realizar o procedimento em todos os nodes master. Lembre se restartar o kube-apiserver, kube-controller-manager, kube-scheduller e o etcd. Para isso, você pode utilizar o comando docker stop, de dentro do node que está sendo atualizado.

#-------------- Pesquisando pelo conteiner do kube-apiserver
docker ps | grep -i kube-apiserver

# Exemplo da resposta
3c277bd8272d   d35b182b4200           "kube-apiserver --ad…"   43 minutes ago   Up 43 minutes             k8s_kube-apiserver_kube-apiserver-master_kube-system_0b2d4f0f571034198d5ee7cd37deb292_3
8c31374d6b1c   k8s.gcr.io/pause:3.5   "/pause"                 43 minutes ago   Up 43 minutes             k8s_POD_kube-apiserver-master_kube-system_0b2d4f0f571034198d5ee7cd37deb292_3

# Exemplo de um restart do conteiner do kube-apiserver
docker restart 3c277bd8272d

#-------------- Pesquisando pelo conteiner do kube-controller-manager
docker ps | grep -i kube-controller-manager

# Exemplo da resposta
343af5293b5f   3618e4ab750f           "kube-controller-man…"   About a minute ago   Up About a minute             k8s_kube-controller-manager_kube-controller-manager-master_kube-system_234b6b0a88f29ae670a32e71f28d335f_4
178be563db9d   k8s.gcr.io/pause:3.5   "/pause"                 46 minutes ago       Up 46 minutes                 k8s_POD_kube-controller-manager-master_kube-system_234b6b0a88f29ae670a32e71f28d335f_3

# Exemplo de um restart do conteiner do kube-controller-manager
docker restart 343af5293b5f

#-------------- Pesquisando pelo conteiner do kube-scheduler
docker ps | grep -i kube-scheduler

# Exemplo da resposta
6de306bc007c   9fe44a6192d1           "kube-scheduler --au…"   2 minutes ago    Up 2 minutes              k8s_kube-scheduler_kube-scheduler-master_kube-system_5407c93d3f7e4e48c5d2e3470cc8e217_4
943f069d5134   k8s.gcr.io/pause:3.5   "/pause"                 46 minutes ago   Up 46 minutes             k8s_POD_kube-scheduler-master_kube-system_5407c93d3f7e4e48c5d2e3470cc8e217_3

# Exemplo de um restart do conteiner do kube-scheduler
docker restart 6de306bc007c

#-------------- Pesquisando pelo conteiner do etcd
docker ps | grep -i etcd

# Exemplo da resposta
f8b9e21ea176   004811815584           "etcd --advertise-cl…"   47 minutes ago   Up 47 minutes             k8s_etcd_etcd-master_kube-system_ccc606cd086ca07519d82deaded80eb7_3
4f4f8a830fff   k8s.gcr.io/pause:3.5   "/pause"                 47 minutes ago   Up 47 minutes             k8s_POD_etcd-master_kube-system_ccc606cd086ca07519d82deaded80eb7_3

# Exemplo de um restart do conteiner do etcd
docker restart f8b9e21ea176

Referências: