k8s經常使用命令

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 node1node

將pod趕到其餘節點:
kubectl drain node1
解除不可調度狀態
kubectl uncordon node1
master運行pod
kubectl taint nodes master.k8s node-role.kubernetes.io/master-
master不運行pod
kubectl taint nodes master.k8s node-role.kubernetes.io/master=:NoSchedulenginx

獲取集羣的基本信息
kubectl cluster-info
kubectl get nodes
kubectl get namespaces
kubectl get deployment --all-namespaces
kubectl get svc --all-namespaces
kubectl get pod
kubectl get pod -o wide --all-namespaces
kubectl logs podName
建立pod或srv
kubectl create -f development.yaml
檢查將要運行的 Pod 的資源情況
kubectl describe pod podName
刪除 Pod
kubectl delete pod podName
pod有多少副本
kubectl get rc
擴展 Pod
kubectl scale --replicas=3 rc podName
刪除
kubectl delete deployment kubernetes-dashboard --namespace=kube-system
kubectl delete svc kubernetes-dashboard --namespace=kube-system
kubectl delete -f kubernetes-dashboard.yaml
進入pod
kubectl exec -ti podName /bin/bashredis


命令表
查看類命令:
獲取節點相應服務的信息 : kubectl get pods 按selector名來查找pod: kubectl get pod --selector name=redis
查看集羣信息: kubectl cluster-info
查看各組件信息: kubectl -s http://localhost:8080 get componentstatuses 或 kubectl get cs
查看pods所在的運行節點: kubectl gkubectl get pods -o yamlet pods -o wide
查看pods定義的詳細信息: kubectl get pods -o yaml
查看運行pod的環境變量: kubectl exec pod名 env
查看指定pod的日誌: kubectl logs -f pods/heapster-xxxxx -n kube-systemvim

操做類命令:
建立資源: kubectl apply -f 文件名.yaml kubectl create -f 文件名.yaml
重建資源: kubectl replace -f 文件名 [--force]
刪除資源: kubectl delete -f 文件名、kubectl delete pod pod名、kubectl delete rc rc名、kubectl delete service service名安全

kubectl進階命令操做
kubectl get:獲取指定資源的基本信息 kubectl get services kubernetes-dashboard -n kube-system #查看全部service
kubectl get deployment kubernetes-dashboard -n kube-system #查看全部發布
kubectl get pods --all-namespaces #查看全部pod
kubectl get pods -o wide --all-namespaces #查看全部pod的IP及節點
kubectl get pods -n kube-system | grep dashboard
kubectl get nodes -l zone #獲取zone的節點
kubectl describe:查看指定資源詳細描述信息 kubectl describe service/kubernetes-dashboard --namespace="kube-system"
kubectl describe pods/kubernetes-dashboard-349859023-g6q8c --namespace="kube-system" #指定類型查看
kubectl describe pod nginx-772ai #查看pod詳細信息
kubectl scale:動態伸縮 kubectl scale rc nginx --replicas=5 # 動態伸縮
kubectl scale deployment redis-slave --replicas=5 #動態伸縮
kubectl scale --replicas=2 -f redis-slave-deployment.yaml #動態伸縮
kubectl exec:進入pod啓動的容器 kubectl exec -it redis-master-1033017107-q47hh /bin/bash #進入容器bash

kubectl label:添加label值 kubectl label nodes node1 zone=north #增長節點lable值 spec.nodeSelector: zone: north #指定pod在哪一個節點
kubectl label pod redis-master-1033017107-q47hh role=master #增長lable值 [key]=[value]
kubectl label pod redis-master-1033017107-q47hh role- #刪除lable值
kubectl label pod redis-master-1033017107-q47hh role=backend --overwrite #修改lable值

kubectl rolling-update:滾動升級 kubectl rolling-update redis-master -f redis-master-controller-v2.yaml #配置文件滾動升級
kubectl rolling-update redis-master --image=redis-master:2.0 #命令升級
kubectl rolling-update redis-master --image=redis-master:1.0 --rollback #pod版本回滾
etcdctl 經常使用操做
etcdctl cluster-health #檢查網絡集羣健康狀態
etcdctl --endpoints=https://192.168.71.221:2379 cluster-health #帶有安全認證檢查網絡集羣健康狀態
etcdctl member list
etcdctl set /k8s/network/config '{ "Network": "10.1.0.0/16" }'
etcdctl get /k8s/network/config
網絡

相關文章
相關標籤/搜索