kubernetes 官方命令文檔:https://kubernetes.io/docs/reference/generated/kubectl/kubectl-commands
1 kubectl命令遵循這一語法格式:kubectl an_action a_resource a_resource_name –flags
2 kubectl get all顯示運行中的Pod、Service、Deployment以及ReplicaSet的關鍵信息,all是指所有已存在的資源,
3 kubectl get events顯示了event的歷史記錄。它像是Kubernetes級別的日志,而不是容器級別的日志。
4
-
help—獲取幫助 如,kubectl get pods –help
-
get— 顯示有關一個或多個資源的信息。 可以將get和單個對象一起使用,並添加--watch標志以實時觀察更新。
-
describe—顯示關於一個或多個資源的詳細信息
-
logs—顯示容器日志 。logs命令需要一個pod名稱。當在多個pod中時,使用-c my-container標志來指定一個容器。使用--previous標志來獲取不再運行的容器信息
-
exec—進入容器中一個正在運行的進程。例如,要在my_pod中進入容器並運行Bash,請輸入kubectl exec -it my_pod bash。
-
apply—創建或選擇一個資源。 如果資源不存在,apply將創建它;如果它存在,apply將更改它
-
delete—刪除一個或多個資源。 kubectl delete pod my_pod這一命令可用於刪除名稱為my_pod的Pod。要刪除所有相同類型的資源,需要使用--all標志。例如,使用kubectl delete rs –all 。 請注意,如果你嘗試這一操作,那么要先刪除Deployment,否則ReplicaSet將會重新啟動。
- kubectl delete namespace demo-namespace
刪除命名空間不僅刪除命名空間,還會清理其中部署了的所有資源
5 kubectl使用配置文件來訪問Kubernetes集群。
-
如果設置了--kubeconfig標志,則僅加載給定文件。該標志只能設置一次,不會發生合並。
-
如果設置了$ KUBECONFIG環境變量,則根據系統的正常路徑分隔規則,將其解析為文件系統路徑列表。
-
否則,如果上述兩項都未設置,則使用${HOME}/.kube/config 文件,不進行任何合並
6 查看當前配置:kubectl config view
查看配置的摘要:kubectl config get-contexts
7 查看當前使用的上下文:kubectl config current-context
更改連接的上下文:kubectl config use-context ***
更改當前上下文的命名空間:kubectl config set-context --current --namespaces=rancher
修改當前上下文的命名空間:kubectl config set-context $(kubectl config current-context) --namespace=demo-namespace
恢復到默認命名空間:kubectl config set-context $(kubectl config current-context) --namespace=
8 檢測核心組件狀態:kubectl get cs 【如果你的集群運行不正常,這是一個很好的、進行第一次診斷檢查的機會】
9 收集服務信息:kubectl cluster-info
10 查看節點信息:kubectl get nodes -o wide
11 可用的命名空間:kubectl get namespaces 創建命名空間:kubectl create namespace test-demo
跨命名空間查詢集群上的資源:kubectl get all --all-namespaces
通過文件創建命名空間:kubectl apply -f demo-namespace.yml
要將操作應用於不同的命名空間,我們必須在命令中包含—namespace=這一選項,如 kubectl create deployment --image nginx demo-nginx --namespace=demo-namespace
查看指定命名空間里的資源:kubectl create deployment --image nginx demo-nginx --namespace=demo-namespace
12 查詢資源最新的事件:kubectl get events --all-namespaces
13 查看當前部署的pod: kubectl get pods
查看pod所屬的命名空間;kubectl get pods --all-namespaces
14 清理部署的資源:kubectl delete deployment nginx
15 pod
16 資源刪除
17 服務
18 事件
19 命名空間
20 終極命令
21 scale
22 利用wget訪問頁面:
23 創建服務:kubectl expose
24 創建deployment
25 升級 & 回滾
26 編輯:
27
28 通過文件創建:
29 基於文件刪除:
30 查詢資源定義字段有哪些:
kubectl explain pods
kubectl explain pods.met
31 大部分資源的配置清單:
apiVersion:group/version
$ kubectl api-version
kind: 資源類別
metadata:元數據
name
namespace
labels
annotations
spec:期望的狀態
status:當前狀態,本字段由kubernetes維護
32
查看名稱空間:kubectl get namespace 或 kubectl get ns (namespace簡稱ns)
查看空間中的資源:kubectl get all -n default
創建空間:kubectl create namespace app
刪除空間:kubectl delete namespace app
創建deployment(簡寫deploy):kubectl create deployment nginx-dp --image=nginx:1.7.9 -n kube-public
查看deployment : kubectl get deployment -n kube-public
展示擴展信息(-o wide):kubectl get pods -n kube-public -o wide
看詳細信息:kubectl describe deployment nginx-dp -n kube-public
進入pod:kubectl -exec -it pod-id /bin/bash -n kube-public
刪除pod(刪除是重啟的方法之一):kubectl delete pod pod-id -n kube-public [--force --grace-period=0 ]
刪除deployment:kubectl delete deploy nginx-dp -n kube-public
創建服務:kubectl expose deployment nginx-dp --port=80 -n kube-public
查看服務:kubectl get svc -n kube-public
擴容:kubectl scale deployment nginx-dp --replication=2 -n kube-public
命令大全:kubectl --help
查看yaml:kubectl get pods pod-id -o yaml -n kube-public
查看yaml中字段含義:kubectl explain service.metadata
語法格式:kubectl create/apply/delete -f /path/yaml
應用yaml:kubectl apply -f nginx-svc.yaml
利用yaml刪除:kubectl delete -f nginx-svc.yaml
在線修改yaml:kubectl edit svc nginx-dp
daemonset縮寫ds
33
查看資源名稱:kubectl api-resources
查看資源字段規范:kubectl explian deployment.spec --recursive
kubectl explain僅顯示單個級別的字段。你可以使用--recursive標志來顯示所有級別的字段
自定義列輸出選項的用法如下:kubectl get pods -o custom-columns='NAME:metadata.name'
kubectl get pods -o custom-columns='NAME:metadata.name,NODE:spec.nodeName'
# Pod調度的節點保存在Pod的spec.nodeName字段中(請參閱kubectl explain pod.spec.nodeName)
# Select all elements of a list
kubectl get pods -o custom-columns='DATA:spec.containers[*].image'
# Select a specific element of a list
kubectl get pods -o custom-columns='DATA:spec.containers[0].image'
# Select those elements of a list that match a filter expression
kubectl get pods -o custom-columns='DATA:spec.containers[?(@.image!="nginx")].image'
# Select all fields under a specific location, regardless of their name
kubectl get pods -o custom-columns='DATA:metadata.*'
# Select all fields with a specific name, regardless of their location
kubectl get pods -o custom-columns='DATA:..image'
34
kubectl logs rc-nginx-2-kpiqt logs命令用於顯示pod運行中,容器內程序輸出到標准輸出的內容
kubectl rolling-update rc-nginx-2 -f rc-nginx.yaml 對於已經部署並且正在運行的業務,rolling-update提供了不中斷業務的更新方式
kubectl scale rc rc-nginx-3 —replicas=4 scale用於程序在負載加重或縮小時副本進行擴容或縮小
kubectl autoscale rc rc-nginx-3 —min=1 —max=4 autoscale命令會給一個rc指定一個副本數的范圍
kubectl attach kube-dns-v9-rcfuk -c skydns —namespace=kube-system attach命令類似於docker的attach命令,可以直接查看容器中以daemon形式運行的進程的輸出
kubectl version
kubectl api-versions
======
kubectl cluster-info Kubernetes master is running at https://172.16.16.3:6443 coredns is running at https://172.16.16.3:6443/api/v1/namespaces/kube-system/services/coredns:dns/proxy kubernetes-dashboard is running at https://172.16.16.3:6443/api/v1/namespaces/kube-system/services/https:kubernetes-dashboard:/proxy
多個yaml文件
kubectl create -f nginx -deploy.yaml - f nginx-svc.yaml
列出 kube-namespace 名稱空間中擁有 k8s-app 標簽名稱的所有 Pod 對象: kubectl get pods -1 k8s-app -n kube-system
kubectl logs -f
為上面的命令添加“ J”選項,還能用於持續監控指定容器中的日志輸出
復 制 master 主機上的 /etc/kubernetes/admin.conf 至相關用戶主目錄下 的 .kube/config 文件即可正常執行
打印環境變量
kubectl exec jupyterhub-7c9f5458dc-flt7k -n baaisys-oauth -- printenv