Skip to content

Latest commit

 

History

History
180 lines (141 loc) · 3.45 KB

questoes.md

File metadata and controls

180 lines (141 loc) · 3.45 KB

DAY8

Questão 1

Hoje o nosso gerente pediu para que fiquemos confortáveis com o gerenciamento de contextos do nossos clusters. Ele está com medo de que executemos algo em ulgum cluster errado, e assim deixando o nosso dia muito mais chatiante!

Resposta 1 (clique para ver a resposta)

Criamos dois clusters, para que pudessemos brincar com os contextos. Para criar os cluster, nós utilizamos o Kind, e para criar o cluster, nós estamos utilizando um arquivo template, conforme abaixo:

vim kind-cluster-1.yaml
kind: Cluster
apiVersion: kind.x-k8s.io/v1alpha4
nodes:
- role: control-plane
- role: worker
- role: worker
kind create cluster --name lt-01 --config kind-cluster-1.yaml

Criando o nosso segundo cluster:

vim kind-cluster-2.yaml
kind: Cluster
apiVersion: kind.x-k8s.io/v1alpha4
nodes:
- role: control-plane
- role: worker
kind create cluster --name giropops-01 --config kind-cluster-2.yaml

Agora que os nossos clusters já estão criados, bora brincar com os contextos.

Para visualizar os contextos, utilize o comando abaixo:

kubectl config get-contexts

Para selecionar determinado contexto, utilize:

kubectl config use-context CONTEXTO_DESEJADO

Vale lembrar que os contextos estão definidos no seu arquivo config, na maioria dos casos no ${HOME}/.kube/config.

Questão 02

Precisamos criar um pod com o Nginx rodando no cluster lt-01, já no cluster giropops-01, nós precisamos ter um deployment do Nginx e um service apontando para esse deployment. Os containers deverão ter o mesmo nome em todos os cluster e estarem rodando no namespace strigus.

Resposta 2 (clique para ver a resposta)
kubectl config current-context
kubectl config use-context kind-lt-01
kubectl run --image nginx strigus-01 --port 80 --namespace strigus --dry-run=client -o yaml > meu_pod.yaml
apiVersion: v1
kind: Pod
metadata:
  creationTimestamp: null
  labels:
    run: strigus-01
  name: strigus-01
  namespace: strigus
spec:
  containers:
  - image: nginx
    name: strigus-01
    ports:
    - containerPort: 80
    resources: {}
  dnsPolicy: ClusterFirst
  restartPolicy: Always
status: {}
kubectl create ns strigus
kubectl create -f meu_pod.yaml
kubectl config current-context
kubectl config use-context kind-giropops-01
kubectl create deployment giropops --image nginx --port 80 --namespace strigus --dry-run=client -o yaml > meu_deployment.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
  creationTimestamp: null
  labels:
    app: giropops
  name: giropops
  namespace: strigus
spec:
  replicas: 1
  selector:
    matchLabels:
      app: giropops
  strategy: {}
  template:
    metadata:
      creationTimestamp: null
      labels:
        app: giropops
    spec:
      containers:
      - image: nginx
        name: strigus-01
        ports:
        - containerPort: 80
        resources: {}
status: {}
kubectl create ns strigus
kubectl create -f meu_deployment.yaml
kubectl expose deployment --namespace strigus giropops

Note que temos containers rodando.

docker container ls --filter "label=io.x-k8s.kind.role"

Vamos deletar os 2 clusters criados anteriormente.

kind delete cluster --name lt-01
kind delete cluster --name giropops-01