kubernetes命令詳情

 

查看客戶端和服務器側的版本信息
kubectl version
列出當前版本的kubernetes的服務器端所支持的api版本信息
kubectl api-versions
查看版本源
kubectl api-resources 查看幫助,語法格式 kubectl explain rc 建立 kubectl run nginx
--replicas=3 --labels="app=example" --image=nginx:1.10 --port=80 在建立的時候指定運行的命令 kubectl run busybox --image=busybox --command -- ping baidu.com 在pod中運行命令 kubectl exec nginx-6f8cf9fbc4-lvsqj ls 進入pod kubectl exec nginx-6f8cf9fbc4-lvsqj -it bash
進入pod的某個容器
kubectl exec pod-demo -it --container busybox -- bash
kubectl exec pod-demo -it -c myapp -- bash 建立命名空間 kubectl create namespace mytest 查看命名空間 kubectl get namespace 查看pod標籤 kubectl get pods
--show-labels 查看指定標籤的pod kubectl get pods -l run=nginx 查看deploy kubectl get deploy 查看pod詳細信息 kubectl get pods -o wide 查看全部 kubectl get all 查看一個服務詳細信息 kubectl describe service nginx-service kubectl describe node nodehost kubectl describe deployment myapp 查看endpoint kubectl get endpoints 升級nginx至1.9.1 kubectl set image deploy nginx nginx=nginx:1.9.1 暫停更新
kubectl rollout pause deployment myapp-deploy
繼續更新
kubectl rollout resume deployment myapp-deploy
監控查看升級狀態 kubectl rollout status deployment nginx 查看某個歷史版本 kubectl rollout history deployment nginx
--revision=3 回滾到上一版本 kubectl rollout undo deployment/nginx-deployment
--to-revision參數指定回滾到某個歷史版本
kubectl rollout undo deployment/nginx-deployment --to-revision=2 刪除deployment kubectl delete deployment nginx 查看在集羣信息 kubectl cluster
-info 超詳細集羣信息 kubectl cluster-info dump
查看全部名稱空間的serivceaccount
kubectl get sa --all-namespace
查看默認的名稱空間使用的是哪一個secret
kubectl get sa default -o yaml 發佈一個服務 kubectl expose deployment nginx
--port=88 --type=NodePort --target-port=80 --name=nginx-service –port:宿主機暴露出去的端口 –type=NodePort:使用結點+端口方式訪問服務 –target-port:容器的端口 –name:建立service指定的名稱 deployment擴容縮容 kubectl scale deployment nginx --replicas=3 將get信息到出爲yaml格式 kubectl get deploy kube-dns -n kube-system -o yaml > kube-dns.yaml 設置節點爲維護模式(即節點不可被調度,但不影響已有pod的運行) kubectl cordon k8s-slave
kubectl cordon 192.168.1.123 關閉維護模式 kubectl uncordon k8s
-slave 查看日誌 mysql-478535978-1dnm2 從容器中複製文件到宿主機 kubectl cp mysql-478535978-1dnm2:/tmp/message.log message.log 編輯 kubectl edit service nginx 替換 kubectl replace -f nginx_forreplace.yaml
刪除node
kubectl drain node03 --delete-local-data --force --ignore-daemonsets
kubectl delete node node01
kubeadm reset 使用策略合併補丁並修補資源 kubectl
patch node k8s-node-1 -p '{"spec":{"unschedulable":true}}' # 部分更新節點 更新容器鏡像; spec.containers[*].name 是必須的,由於這是合併的關鍵字 kubectl patch pod valid-pod -p '{"spec":{"containers":[{"name":"kubernetes-serve-hostname","image":"new image"}]}}' 使用具備位置數組的 json 補丁更新容器鏡像 kubectl patch pod valid-pod --type='json' -p='[{"op": "replace", "path": "/spec/containers/0/image", "value":"new image"}]' 使用具備位置數組的 json 補丁禁用 deployment 的 livenessProbe kubectl patch deployment valid-deployment --type json -p='[{"op": "remove", "path": "/spec/template/spec/containers/0/livenessProbe"}]' 使用文件或者標準輸入來更改配置信息。 kubectl apply -f nginx/nginx.yaml 自動在某個範圍內擴容,跟scale不一樣的是前者仍是須要手動執行,而autoscale則會根據負載進行調解,經過最小值和最大值的指定進行設定 kubectl autoscale deployment nginx --min=2 --max=5 --cpu-percent=80 執行drain命令,發現這條命令作了兩件事情: 1. 設定此node不可使用(cordon) 2. evict了其上的兩個pod [root@ku8-1 tmp]# kubectl drain 192.168.32.134 node "192.168.32.134" cordoned pod "nginx-2476590065-d6h8f" evicted pod "nginx-2476590065-9lfzh" evicted node "192.168.32.134" drained [root@ku8-1 tmp]# 結果確認 evict的意思有驅逐和回收的意思,讓咱們來看一下evcit這個動做的結果究竟是什麼。 結果是134上面已經再也不有pod,而在132和133上新生成了兩個pod,用以替代在134上被退場的pod,而這個替代的動做應該是replicas的機制保證的。因此drain的結果就是退場pod和設定node不可用(排水),這樣的狀態則能夠進行維護了,執行完後從新uncordon便可。

 建立docker私有倉庫的認證secretnode

kubectl create secret docker-registry myregistrykey --docker-server=DOCKER_REGISTRY_SERVER --docker-username=DOCKER_USER --docker-password=DOCKER_PASSWORD --docker-email=DOCKER_EMAIL
相關文章
相關標籤/搜索