Kubectl 命令 - daniel-qa/Azure-Kubernetes-Service GitHub Wiki

在 Linux 系统中安装并设置 kubectl

Basic Commands

  • 拷貝檔案

要注意,pod預設路徑為 workdir, 只能拷貝檔案

kubectl cp  laravel-7c56d657f7-zg467:readme.md /opt/tmp/test.txt
kubectl cp  laravel-7c56d657f7-zg467:.env /opt/tmp/.env
  • 查詢 POD
kubectl get deploy laravel -o wide

kubectl describe pod busybox

  • 刪除 deploymetn 相關資源
kubectl delete -f .\aspnetapp-deployment.yml  # 將部署與服務刪除.

查看和查找资源 #

  • 查看 Node 資源 ( cpu / memory 使用率)
 kubectl describe nodes my-node

 kubectl describe nodes aks-agentpool-47518295-vmss000002

更新資源

用 set image 失效時,把 image 名稱改成不同的名稱,再指定,就可成功更新鏡像 (一般為Image使用相同名稱造成)

kubectl rollout

kubectl set image deployment/frontend www=image:v2               # 滚动更新 "frontend" Deployment 的 "www" 容器镜像

kubectl set image deployment/laravel laravel=debian_laravel:latest  #  Deployment, Image

kubectl rollout history deployment/laravel   # 查記 rollout 歷史紀錄 

kubectl rollout undo deployment/laravel    # 回滚到上次部署版本


# 用 kubectl describe 查看 deploy 和 pod 的  image  是否已經更新

kubectl describe deploy laravel

kubectl describe pod laravel

https://kubernetes.io/docs/reference/kubectl/cheatsheet/

Kubectl Config 指令集

  • 查看 config 指令集
kubectl config

檢查 Config 詳情

kubectl config view

切換 Cluster

kubectl config get-contexts    # display list of contexts

kubectl config use-context MyCluster   # set the default context to my-cluster-name
  • 說明
要存取某個 Kubernetes 的 cluster,必須先設定好 Kubernetes 的 context,
context 裡面會描述要如何存取到你的 Kubernetes 的 cluster。
當你今天有兩個 Kubernetes 的 cluster 的時候,分別是正式版的 cluster 跟測試用的 cluster,很頻繁在這兩個 cluster 作切換,
這時候只需要分別對兩個不同的 context 就可以了,然後利用 kubectl 提供的指令,就能在不同的 cluster 作切換。
  • Context
在 Kubernetes 裡面,切換不同的 cluster 是以 context 為單位,一個 context 裡面必需要三個元件,
分別是 User、Server、Certification。這三個東西說起來也很直觀,
有個使用者 (User) 必須要有憑證 (Certification) 才能連到某個 Cluster (Server)。