kubetlet 常用命令

  1. 查看service、pod、replication

    kubectl get service -o wide 現在改信息在哪個節點
    kubectl get svc kubectl get
    pod -o yaml | json 以yaml或者json格式輸出

  2. 修改副本集數量

    kubectl scale rc RC-NAME –replicas=N

  3. 獲取namespace 信息

    kubectl get namespace

  4. 還可以使用”-o=custom-columns=“定義直接獲取指定內容的值

    kubectl get po RC-name -o=customcolumns=LABELS:.metadata.labels.app

    可以獲取metadata中的labels中的app的值,其中LABELS爲顯示的列標題,”.metadata.labels.app”爲查詢的域名

  5. replace 不可修改label
    命令用於對已有資源進行更新、替換。如前面create中創建的nginx,當我們需要更新resource的一些屬性的時候,如果修改副本數量,增加、修改label,更改image版本,修改端口等。都可以直接修改原yaml文件,然後執行replace命令。

    kubectl replace -f RC.yaml

  6. patch 可修改label修改正在運行的容器的屬性
    在運行過程中,需要把其label改爲app=nginx,這patch命令如下:

    kubectl patch pod rc.yaml -p ‘{“metadata”:{“labels”:{“app”:”nginx”}}}’

  7. edit提供了另一種更新resource源的操作,通過edit能夠靈活的在一個common的resource基礎上,發展出更過的significant resource。例如,使用edit直接更新前面創建的pod的命令爲:

    kubectl edit po POD

    執行後會以vi的方式打開一個yaml文檔 可以手動修改,保存之後相當於更新該pod

  8. rolling-update
    rolling-update是一個非常重要的命令,對於已經部署並且正在運行的業務,rolling-update提供了不中斷業務的更新方式。rolling-update每次起一個新的pod,等新pod完全起來後刪除一箇舊的pod,然後再起一個新的pod替換舊的pod,直到替換掉所有的pod。
    rolling-update需要確保新的版本有不同的name,Version和label,否則會報錯

    kubectl rolling-update RC -f rc-nginx.yaml
    如果在升級過程中,發現有問題還可以中途停止update,並回滾到前面版本
    kubectl rolling-update RC –rollback

  9. autoscale命令提供了自動根據pod負載對其副本進行擴縮的功能。
    下面的命令會使該pod的容器根絕負載在1~4浮動

    kubectl autoscale rc RC.yaml –min=1 –max=4

  10. cordon cordon 命令可以將一個節點標記爲不可調度,就是新創建的pod不會部署在該節點上 kubectl cordon node1
    drain drain 命令可以將節點上的pod 平滑的移動到其他的節點上 kubectl drain node1
    uncordon uncordon 可以解鎖被cordon的節點 kubectl uncordon node1

  11. attach命令類似於docker的attach命令,可以直接查看容器中以daemon形式運行的進程的輸出,一個pod中有多個容器,要查看具體的某個容器的的輸出,需要在pod名後使用-c containers name指定運行的容器

    kubectl attach pod kube-dns-3913472980-tp2bz -c kubedns -n kube-system

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