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|
刪除所有包含某個labelpodservice
kubectl delete pods,svc -l name=|label-name|

6. 執行容器的命令

執行podls命令,默認是用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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章