kubectl 常用命令


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級別的日志,而不是容器級別的日志。

  • 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集群。

  1. 如果設置了--kubeconfig標志,則僅加載給定文件。該標志只能設置一次,不會發生合並。

  2. 如果設置了$ KUBECONFIG環境變量,則根據系統的正常路徑分隔規則,將其解析為文件系統路徑列表。

  3. 否則,如果上述兩項都未設置,則使用${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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM