Kubernetes - 常用命令

# 創建/刪除/修改配置

# 通過文件創建cm資源
kubectl create configmap appservice --from-file=application.properties
 
# 以json形式修改資源
kubectl edit configmaps/appservice -o json
 
# 刪除指定名稱pod
kubectl delete pod $(kubectl get pod | grep appservice | awk '{print $1}')
 
# 刪除指定標籤所有資源
kubectl -n user-100003 delete all -lappId=54359 --force
 
# 刪除驅逐殘留pod
kubectl get pods -n user-shanglu| grep Evicted | awk '{print $1}' | xargs kubectl delete pod -n user-shanglu
 
# 強制刪除pod
kubectl delete pod POD_NAME --force --grace-period=0

 

# 滾動更新

# 設置指定資源鏡像版本
kubectl set image deployment/appservice test-deploy=hub.jhmy.com/test/appservice:latest
 
# 爲指定資源添加補丁
kubectl patch deployment/appservice --patch '{"spec": {"template": {"metadata": {"annotations":{"version": "2020" }}}}}'
 
# 回滾到上個版本
kubectl rollout undo deploy/appservice
 
# 擴展副本數
kubectl scale --replicas=2 deploy/appservice

 

# 使用kubeadm命令刪除節點

# 驅逐節點上服務
kubectl drain k8s-master02 --delete-local-data --force --ignore-daemonsets
 
# 刪除節點
kubectl delete node k8s-master02

 

# 查看ingress配置

kubectl exec -t daemonset/nginx-ingress -n nginx-ingress cat /etc/nginx/nginx.conf
 
#查看服務全部容器日誌
kubectl -n nginx-ingress logs -f -lapp=nginx-ingress --all-containers=true --max-log-requests=10

 

# 批量部署和刪除

kubectl apply -Rf manifests
kubectl delete --ignore-not-found=true -Rf manifests/

 

# 節點標記

# 去除k8s-master節點污點
kubectl taint node k8s-master node-role.kubernetes.io/master-
 
# 標記節點不可部署
kubectl cordon node
 
# 標記節點可部署
kubectl uncordon node
 
# 給節點增加標籤
kubectl label nodes xxx suanpan.xuelangyun.com/gpu=available

 

# 所有證書有效期查詢

for tls in `find /etc/kubernetes/pki -maxdepth 2 -name "*.crt"`; \
do echo ===============$tls===============; \
openssl x509 -in $tls -text| grep Not; \
done
 
新版本>>> kubeadm alpha certs check-expiration

 

# 統計pod內存使用

for pod in $(kubectl -n user-1000327 top pod | awk '{print $1}')
do
echo `kubectl -n user-1000327 top pod $pod | grep -v NAME | awk '{print $1,$2,$3}'` >>pod.txt
kubectl -n user-1000327 get pod $pod -oyaml |grep image: | tail -n1 >>pod.txt
done

 

# 查看集羣信息

[root@k8s-master wenruo]# kubectl cluster-info
Kubernetes master is running at https://192.168.73.131:6443
Heapster is running at https://192.168.73.131:6443/api/v1/namespaces/kube-system/services/heapster/proxy
KubeDNS is running at https://192.168.73.131:6443/api/v1/namespaces/kube-system/services/kube-dns:dns/proxy
 
To further debug and diagnose cluster problems, use 'kubectl cluster-info dump'.

 

# 批量清理操作

# 這個是刪所有crash的pod
kubectl get po -A --no-headers | awk '{if ($4 == "CrashLoopBackOff") system ("kubectl -n " $1 " delete pods " $2 " --grace-period=0 " " --force ")}'
 
# 這個是重啓所有deploy的
kubectl get deploy -A --no-headers | awk '{system ("kubectl rollout restart deploy -n" $1 " " $2 )}'ce

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章