狀態查詢
# 查看集群信息
# kubectl cluster-info
Kubernetes control plane is running at https://127.0.0.1:8443
KubeDNS is running at https://127.0.0.1:8443/api/v1/namespaces/kube-system/services/kube-dns:dns/proxy
To further debug and diagnose cluster problems, use 'kubectl cluster-info dump'.
systemctl status kube-apiserver
systemctl status kubelet
systemctl status kube-proxy
systemctl status kube-scheduler
systemctl status kube-controller-manager
systemctl status docker
node相關
# 查看namespaces
kubectl get namespaces
# 為節點增加lable
kubectl label nodes 10.126.72.31 points=test
# 查看節點和lable
kubectl get nodes --show-labels
# 查看狀態
kubectl get componentstatuses
# Node的隔離與恢復
## 隔離
kubectl cordon k8s-node1
## 恢復
kubectl uncordon k8s-node1
查詢
# 查看nodes節點
kubectl get nodes
# 通過yaml文件查詢
kubectl get -f xxx-yaml/
# 查詢資源
kubectl get resourcequota
# endpoints端
kubectl get endpoints
# 查看pods
# 查看指定空間`kube-system`的pods
kubectl get po -n kube-system
# 查看所有空間的
kubectl get pods -o wide --all-namespaces
# 其他的寫法
kubectl get pod -o wide --namespace=kube-system
# 獲取svc
kubectl get svc --all-namespaces
# 其他寫法
kubectl get services --all-namespaces
# 通過lable查詢
kubectl get pods -l app=nginx -o yaml|grep podIP
# 當我們發現一個pod遲遲無法創建時,描述一個pods
kubectl describe pod xxx
# 查詢事件
kubectl get events --all-namespaces
刪除所有pod
# 刪除所有pods
kubectl delete pods --all
# 刪除所有包含某個lable的pod和serivce
kubectl delete pods,services -l name=<lable-name>
# 刪除ui server,然后重建
kubectl delete deployments kubernetes-dashboard --namespace=kube-system
kubectl delete services kubernetes-dashboard --namespace=kube-system
# 強制刪除部署
kubectl delete deployment kafka-1
# 刪除rc
kubectl delete rs --all && kubectl delete rc --all
## 強制刪除Terminating狀態的pod
kubectl delete deployment kafka-1 --grace-period=0 --force
滾動
# 升級
kubectl apply -f xxx.yaml --record
# 回滾
kubectl rollout undo deployment javademo
# 查看滾動升級記錄
kubectl rollout history deployment {名稱}
查看日志
# 查看指定鏡像的日志
kubectl logs -f kube-dns-699984412-vz1q6 -n kube-system
kubectl logs --tail=10 nginx
#指定其中一個查看日志
kubectl logs kube-dns-699984412-n5zkz -c kubedns --namespace=kube-system
kubectl logs kube-dns-699984412-vz1q6 -c dnsmasq --namespace=kube-system
kubectl logs kube-dns-699984412-mqb14 -c sidecar --namespace=kube-system
# 看日志
journalctl -f
擴展
# 擴展副本
kubectl scale rc xxxx --replicas=3
kubectl scale rc mysql --replicas=1
kubectl scale --replicas=3 -f foo.yaml
執行
# 啟動
nohup kubectl proxy --address='10.1.70.247' --port=8001 --accept-hosts='^*$' >/dev/null 2>&1 &
# 進入鏡像
kubectl exec kube-dns-699984412-vz1q6 -n kube-system -c kubedns ifconfig
kubectl exec kube-dns-699984412-vz1q6 -n kube-system -c kubedns ifconfig /bin/bash
# 執行鏡像內命令
kubectl exec kube-dns-4140740281-pfjhr -c etcd --namespace=kube-system etcdctl get /skydns/local/cluster/default/redis-master
無限循環命令
while true; do sleep 1; done
資源管理
# 暫停資源更新(資源變更不會生效)
kubectl rollout pause deployment xxx
# 恢復資源更新
kubectl rollout resume deployment xxx
# 設置內存、cpu限制
kubectl set resources deployment xxx -c=xxx --limits=cpu=200m,memory=512Mi --requests=cpu=1m,memory=1Mi
# 設置storageclass為默認
kubectl patch storageclass <your-class-name> -p '{"metadata": {"annotations":{"storageclass.kubernetes.io/is-default-class":"true"}}}'
其他
# 創建和刪除
kubectl create -f dashboard-controller.yaml
kubectl delete -f dashboard-dashboard.yaml
# 查看指定pods的環境變量
kubectl exec xxx env
# 判斷dns是否通
kubectl exec busybox -- nslookup kube-dns.kube-system
# kube-proxy狀態
systemctl status kube-proxy -l
# token的
kubectl get serviceaccount/kube-dns --namespace=kube-system -o yaml|grep token