Kubernetes kubectl經常使用命令

Kubernetes kubectl經常使用命令

[TOC]html

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| linux

2. 建立資源對象

建立時,注意文件內是否有namespace,若是沒有,請在命令後面指定-n |namespace-name|
根據yaml配置文件一次性建立資源對象
kubectl create -f service.yaml -f deployment.yaml
根據|directory|目錄下全部.yaml.yml.json文件的定義進行建立操做
kubectl create -f |directory| json

對資源進行配置,最經常使用功能。
kubectl apply -f service.yaml
kubectl apply -f |directory| windows

3. 編輯資源對象

編輯資源對象時,編輯器爲vi,須要熟悉vi命令操做。
kubectl edit deploy |deployment-name| bash

若是日常是使用yaml文件維護,注意下次修改時的配置。 app

4. 描述資源對象

顯示service的詳細信息
kubectl describe svc |service-name|
顯示pod的詳細信息,其中顯示的pod啓動過程事件能夠幫助排錯。
kubectl describe pods/|pod-name| tcp

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/bashide

7. 查看容器日誌

查看容器的所有日誌。pod中有多個容器時須要指定容器名
kubectl logs |pod-name| [|container-name|]
相似tail -f實時輸出日誌
kubectl logs -f |pod-name|
查看最近多少時間以來日誌,並實時輸出,適用於日誌較多,運行較久的pod
kubectl logs -f |pod-name| --since 10m ui

通常配合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| 本機端口:服務端口 …

11. 拷貝文件或目錄

注意windows和linux目錄斜杆差異
kubectl cp /local_path/filename |namespace|/|pod-name|:/container_path/
kubectl cp |namespace|/|pod-name|:/container_path/ /local_path/filename

其它技巧:
https://jimmysong.io/kubernetes-handbook/guide/kubectl-cheatsheet.html

相關文章
相關標籤/搜索