天天看點

k8s 常用指令彙集

通過yaml檔案建立:

kubectl create -f xxx.yaml (不建議使用,無法更新,必須先delete)

kubectl apply -f xxx.yaml (建立+更新,可以重複使用)

通過yaml檔案删除:

kubectl delete -f xxx.yaml

檢視kube-system namespace下面的pod/svc/deployment 等等(-o wide  選項可以檢視存在哪個對應的節點)

kubectl get pod/svc/deployment -n kube-system

檢視所有namespace下面的pod/svc/deployment等等

kubectl get pod/svc/deployment --all-namcpaces 

重新開機pod(無法删除對應的應用,因為存在deployment/rc之類的副本控制器,删除pod也會重新拉起來)

kubectl get pod -n kube-system

檢視pod描述:

kubectl describe pod XXX -n kube-system

檢視pod 日志 (如果pod有多個容器需要加-c 容器名)

kubectl logs xxx -n kube-system  

删除應用(先确定是由說明建立的,再删除對應的kind):

kubectl delete deployment xxx -n kube-system

根據label删除:

kubectl delete pod -l app=flannel -n kube-system

擴容

kubectl scale deployment spark-worker-deployment --replicas=8

導出配置檔案:

  導出proxy

  kubectl get ds -n kube-system -l k8s-app=kube-proxy -o yaml>kube-proxy-ds.yaml

  導出kube-dns

  kubectl get deployment -n kube-system -l k8s-app=kube-dns -o yaml >kube-dns-dp.yaml

  kubectl get services -n kube-system -l k8s-app=kube-dns -o yaml >kube-dns-services.yaml

  導出所有 configmap

  kubectl get configmap -n kube-system -o wide -o yaml > configmap.yaml

複雜操作指令:

  删除kube-system 下Evicted狀态的所有pod:

  kubectl get pods -n kube-system |grep Evicted| awk '{print $1}'|xargs kubectl delete pod  -n kube-system

以下為維護環境相關指令:

重新開機kubelet服務

systemctl daemon-reload

systemctl restart kubelet

修改啟動參數

vim /etc/systemd/system/kubelet.service.d/10-kubeadm.conf

# 檢視叢集資訊

kubectl cluster-info

# 檢視各元件資訊

kubectl get componentstatuses

#檢視kubelet程序啟動參數

ps -ef | grep kubelet

檢視日志:

journalctl -u kubelet -f

設為不可排程狀态:

kubectl cordon node1

将pod趕到其他節點:

kubectl drain node1