Last active
February 9, 2024 01:53
-
-
Save marylly/8b1f06df0bdb00b8dea3b7dbb2a4beb7 to your computer and use it in GitHub Desktop.
Bash commands for Kubernetes
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# 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