09/09/2023

Translator
Translator

Não duvidem que a grande maioria das aplicações que acedemos via internet está  assente em Kubernetes.
No seguimento do estudo que tenho vindo a fazer, deixo mais abaixo uma lista dos comandos mais usados e a sua função.

Nota:Esta lista estará em constante atualização.

 
Comandos relativos à criação do cluster com o Minikube:


$ minikube start #Cria um cluster com 1 nó.
$ minikube start --nodes 2 -p multinode-cluster
$ minikube status
$ minikube ip
$ minikube ssh
$ minikube dashboard #Dashboard web que mostra alguns dados.
$ minikube logs
$ minikube delete #Remove o cluster.
$ minikube delete --purge #Remove o cluster e todos os ficheiros associados.

$ minikube tunnel - Cria uma rota de rede para o IP do cluster como se fosse um gateway. Para testar por exemplo um serviço a correr em LB.

https://minikube.sigs.k8s.io/docs/


Comandos relativos à criação do cluster com o Kind:


$ kind create cluster
$ kind create cluster --name NomeDoCluster
$ kind get clusters #Visualisar os cluster.
$ kind delete clusters $(kind get clusters) #Elimina todos os cluster.
$ kind create cluster --name kind-3Nos --config 3Nos.yaml #Cria um cluster baseado no ficheiro yaml.

https://kind.sigs.k8s.io

 

kubectl:


### Get informação
$ kubectl get pods
$ kubectl get namespaces #Ver os vários NS existentes.
$ kubectl get namespaces
$ kubectl get pod -n Development #Ver os pods do NS Development.
$ kubectl get pods -A #Ver todos
$ kubectl get pods -A -o wide #Devolve mais informação como o IP, etc.
$ kubectl get pods NOME_DO_POD -o yaml/json # ver dados do pod em yaml/json.
$ kubectl cluster-info
$ kubectl get nodes
$ kubectl get pod meuPod -o jsonpath='{.spec.containers[*].name}' #Devolve o nome dos containers que estão no Pod meuPod.
$ kubectl describe pod meuPod #Toda a informação sobre o Pod, numero de containers, estado, etc.
$ kubectl replace --force -f meuPod.yaml #Elimina e cria um novo pod.


### Logs
$ kubectl logs meuPod
$ kubectl logs meuPod -c meuContainer


### Criar um pod básico
$ kubectl run meuNginx --image nginx #Cria um pod com um container a partir da imagem nginx.
$ kubectl delete pod meuNginx


### Criar pods a partir de um manifesto yaml

$ kubectl apply -f podTemplate.yaml #Cria um pod a partir do manifesto yaml.
$ kubectl delete -f podTemplate.yaml #Elimina o pod baseado no seu manifesto
$ kubectl get pod meuPod -o yaml > podTemplate.yaml
$ kubectl run meuNginx --image nginx --dry-run=client -o yaml > podTemplate.yaml #Cria um modelo yaml que servirá para criar um pod.
$ kubectl run meuPod --image=redis --dry-run=client -o yaml #Outro exemplo
$ kubectl run meuNginx --image nginx --port 80 --dry-run=client -o yaml > podTemplate.yaml #Cria um modelo yaml especificando o porto que fica à escuta no container.
$ kubectl expose pod meunginx #Este comando cria um Service, que é utilizado para expor o pod para ser acessivel externamente.
$ kubectl get services #Ver os serviços ativos com respectivos IP e portos.

### Mais Get:
$ kubectl get all $ kubectl get pod,service $ kubectl get pod,svc

### Eliminar o que se criou:
$ kubectl delete -f podTemplate.yaml $ kubectl delete service meuNginx
$ kubectl run hello-minikube
$ kubectl get pods -o jsonpath="{..image}" #Lista todas as imagens usadas nos containers no Default NS
$ kubectl delete --all pods


### Labels e Selectors
$ kubectl get all --show-labels
$ kubectl get pod --selector env=prod

### Mais comandos (ainda em organização)
$ kubectl cluster-info dump

$ kubectl delete pod pod-info-deployment-869667679b-6zbcd -n development

$ kubectl exec -it busybox-55fdb79844-chq95 -- /bin/sh #Entrar no Contentor busybox
$ kubectl logs pod-info-deployment-869667679b-sz786 -n development

$ kubectl get svc - devolve o IP externo do cluster, por exemplo.

$ kubectl get deployment nginx-deplyment -o yaml
$ kubectl api-resources
$ kubectl -n kube-system get pods #Pods de sistema.

$ kubectl logs NOME_DO_POD
$ kubectl logs -f NOME_DO_POD


https://kubernetes.io/docs/reference/kubectl/


Replicaset, Scaling

$ kubectl describe rs  replica-set
$ kubectl create -f podTemplate.yml #Cria um replica set.
$ kubectl get replicaset
$ kubectl delete replicaset minhaApp-replicaset.
$ kubectl replace -f podTemplate.yml #Atualiza por exemplo o ReplicaSet no caso de pretendermos alterar o número de replicas.
$ kubectl scale --replicas=6 -f podTemplate.yaml #O mesmo que o anterior, mas não é preciso editar antes o podTemplate.yml.
$ kubectl scale replicaset meuApp-replicaset --replicas=6 #O mesmo que os anteriores.
$ kubectl explain replicaset #Mostra a documentação do resource replicaset.
$ kubectl edit rs meuApp-replicaset


Deployments 

$ kubectl create deployment --help
$ kubectl create deployment nomeDeployment --image=nginx --replicas=3
$ kubectl get deploy

 













0 comentários: