Skip to content

Instantly share code, notes, and snippets.

@marylly
Last active February 9, 2024 01:53
Show Gist options
  • Save marylly/8b1f06df0bdb00b8dea3b7dbb2a4beb7 to your computer and use it in GitHub Desktop.
Save marylly/8b1f06df0bdb00b8dea3b7dbb2a4beb7 to your computer and use it in GitHub Desktop.
Bash commands for Kubernetes
# Instalação Kubernetes
# curl -fsSL https://get.docker.com | bash
# apt-get update && apt-get install apt-transport-https
# vim /etc/source.list.d/kubernetes.list
# deb http://apt.kubernetes.io/ kubernetes-xenial main
# apt-get update
# apt-get install -y kubelet kubectl kubeadm
# vim /etc/sysctl.conf
# net.bridge.bridge-nf-call-ip6tables = 1
# net.bridge.bridge-nf-call-iptables = 1
# sysctl --system
# P.S.: Deve ser feito na máquina master e em todos os nodes do cluster Kubernetes
# swapoff -a
# vim /etc/fstab -- Remover swap se existir
# kubeadm init --pod-network-cidr 192.168.0.0/16
# mkdir -p $HOME/.kube
# cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
# sudo chown $(id -u):$(id -g) $HOME/.kube/config
# Para reinicializar o serviço do kubeadm com novas configurações, executar
# kubeadm reset
# kubeadm init --pod-network-cidr 192.168.0.0/16
# Em caso de não inicializar o kubelet porque o system drive do kubernetes não for o mesmo cgroup drive do docker.
# Para verificar executar:
# docker info | grep -i cgroup
# vim /etc/systemd/system/kubelet.service.d/10-kubeadm.conf
# verificar se existe, senão, adicionar
# --cgroup-driver=(cgroupfs|systemd) -- Deve ser o mesmo drive do docker instalado na máquina
# Verificar se está ok:
# systemctl daemon-reload
# systemctl restart kubelet
# systemctl status -l kubelet
# P.S.: Deve ser verificado em todas as máquinas que serão utilizadas como master e nodes no cluster Kubernetes.
# Resolvendo a comunicação de rede entre nós diferentes, chamado Overlay (Softwares que podem resolver essa questão. Ex. Calico, Weave)
# Instalação do Weave
# kubectl apply -f "https://cloud.weave.works/k8s/net?k8s-version=$(kubectl version | base64 | tr -d '\n')"
# Retorna a lista de tokens disponíveis para incluir nodes no cluster
kubeadm token list
# retorna todos os nodes disponíveis no cluster
kubectl get nodes
# retorna todos os pods de todos os namespaces disponíveis com informações sobre os pods e nodes
kubectl get pods --all-namespaces -o wide
# Deleta um POD dentro de um namespace do kubernetes
kubectl delete pod -n <namespace> <podname>
# Pega todos os nomes de todos os PODs dentro de um namespace do kubernetes
kubectl get pod -n <namespace>
# Exibe todas as informações de um POD
kubectl describe pod <pod> -n <namespace>
# Exibe todas as images de um pod
kubectl get pods --n <namespace> -o jsonpath="{..image}"
kubectl get pods -n <namespace> -o jsonpath="{.items[*].spec.containers[*].image}"
# Exibe todos os containers de um pod
kubectl get pod <pod> -o jsonpath="{.spec.containers[*].name}" -n <namespace>
# Executa um container de um pod
kubectl exec -ti <pod> sh --container <container> -n <namespace>
# retorna o status de todos os clusters disponíveis
kubectl get componentstatuses
# retorna todas as informações detalhadas de um node informado
kubectl describe node <nome_node>
# Para remover uma confirguração do kubeadm ou para remover uma máquina/node do cluster
kubectl reset
# Habilita o auto-completion para os comandos do kubectl
echo "source <(kubectl completion bash)" >> ~/.bashrc
# Retorna as url das API e serviços do Cluster
kubectl cluster-info
# Pega o Certicate-CA data
export auth=$(grep certificate-authority-data ~/.kube/config |cut -d " " -f 6)
echo $auth | base64 -d -
# Pega todos os servicés accounts de todos os namespaces existentes
kubectl get sa --all-namespaces
# Retorna o YAML de um service account informado de um determinado namespace
kubectl get sa default -o yaml -n kube-public
# Retorna o yaml de uma secret informada de um determinado namespace
kubectl get secret default-token-5j54w -o yaml -n kube-public
# Cria um service account para um determinado namespace
kubectl create serviceaccount --namespace kube-system tiller
# Cria um role binding para o cluster para acesso como administrador
kubectl create clusterrolebinding tiller-cluster-rule --clusterrole=cluster-admin --serviceaccount=kube-system:tiller<namespace:serviceaccount>
# pega a informação de token de autenticação da secret e decodifica usando o base64
kubectl get secret default-token-5j54w -o jsonpath={.data.token} -n kube-public | base64 -d
# retorna todos os namespaces disponíveis
kubectl get ns
# retorna todos os serviços de todos os namespaces
kubectl get service --all-namespaces
# cria um namespace
kubectl create ns gke-gitlab
# Deleta um configmaps existente de um namespace informado
kubectl delete configmaps values-content-configuration-runner -n gitlab-managed-apps
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment