Kubernetes kubectl常用命令
Kubernetes kubectl常用命令
[TOC]
1. 檢視資源物件
常用檢視資源物件(%rc%
)有namespace(ns)
pods
service(svc)
endpoints(ep)
deployment(deploy)
pvc
ingresses(ing)
,括號內為最簡寫法。 kubectl get %rc%
顯示更多資訊,在後面接-o wide
、-ojson
或者-o yaml
,同時檢視多個資源物件用英文逗號隔開。
檢視資源物件全名,可通過kubectl rc,%rc%
2. 建立資源物件
建立時,注意檔案內是否有namespace,如果沒有,請在命令後面指定-n %namespace-name%
根據yaml配置檔案一次性建立資源物件
kubectl create -f service.yaml -f deployment.yaml
根據
%directory%
目錄下所有.yaml
、.yml
、.json
檔案的定義進行建立操作 kubectl create -f %directory%
對資源進行配置,最常用功能。 kubectl apply -f service.yaml
kubectl apply -f %directory%
3. 編輯資源物件
編輯資源物件時,編輯器為vi
,需要熟悉vi
命令操作。 kubectl edit deploy %deployment-name%
如果平常是使用yaml檔案維護,注意下次修改時的配置。
4. 描述資源物件
顯示service
的詳細資訊 kubectl describe svc %service-name%
顯示pod
的詳細資訊,其中顯示的pod
啟動過程事件可以幫助排錯。 kubectl describe pods/%pod-name%
5. 刪除資源物件
類似create
命令用法
基於deployment.yaml
定義的名稱刪除deployment
kubectl delete -f deployment.yaml
根據%directory%
目錄下所有.yaml
、.yml
、.json
檔案的定義進行建立刪除 kubectl delete -f %directory%
刪除所有包含某個
label
的pod
和service
kubectl delete pods,svc -l name=%label-name%
6. 執行容器的命令
執行pod
的ls
命令,預設是用pod
中的第一個容器執行 kubectl exec -it %pod-name% -- ls
指定pod
中某個容器執行ls
命令 kubectl exec %pod-name% -c %container-name% ls
登入容器(容器中命令存在時) kubectl exec -it %pod-name% /bin/sh
kubectl exec -it %pod-name% /bin/bash
7. 檢視容器日誌
檢視容器的全部日誌。pod
中有多個容器時需要指定容器名kubectl logs %pod-name% [%container-name%]
類似tail -f
實時輸出日誌 kubectl logs -f %pod-name%
檢視最近多少時間以來日誌,並實時輸出,適用於日誌較多,執行較久的pod
kubectl logs -f %pod-name% --since 10m
一般配合kubectl describe pods/%pod-name%
進行排錯。
8. pod的擴容與縮容
執行擴容縮容pod的操作,支援的資源物件有deployment
statefulset
daemonset
kubectl scale deploy %deployment-name% --replicas=2
擴容與縮容是相對於當前的replicas
數。如果平常是使用yaml檔案維護,注意下次修改時的配置。
9. pod的滾動升級
執行滾動升級操作 kubectl rolling-update %deployment-name% -f deployment.yaml
可以使用kubeclt rolling-update %deployment-name% --image=example:v2.0
直接指定映象名稱的方式直接升級。
還可以使用kubectl edit
命令達到滾動升級目的。如果平常是使用yaml檔案維護,注意下次修改時的配置。
10. 埠轉發
在叢集節點外面連線叢集,避免大量埠管理,可以作為開發除錯常用功能。當前v1.12
版本還未支援tcp keepalived連線,因此連線不活動容易中斷。kubectl port-forward svc/%service-name% 本機埠:服務埠 …
其它技巧:
https://jimmysong.io/kubernetes-handbook/guide/kubectl-cheatsheet.html