Windows下安裝kubectl及Node和Pod操作常用命令


kubernetes通過kube-apiserver作為整個集群管理的入口。Apiserver是整個集群的主管理節點,用戶通過Apiserver配置和組織集群,同時集群中各個節點同etcd存儲的交互也是通過Apiserver進行交互。Apiserver實現了一套RESTfull的接口,用戶可以直接使用API同Apiserver交互。另外官方還提供了一個客戶端kubectl隨工具集打包,用於可直接通過kubectl以命令行的方式同集群交互
項目中部分服務用了k8s部署,研測環境部門搭的集群,版本較低且集群中的機器經常出故障,平時工作中難免需要去k8s中看一些POD或節點狀態信息等,這里記錄一下如何在window下配置kubectl以及工作中常用操作node和pod的命令

windows下配置kubectl

下載

下載地址:https://dl.k8s.io/release/v1.21.0/bin/windows/amd64/kubectl.exe
官網鏈接:https://kubernetes.io/docs/tasks/tools/install-kubectl-windows/#install-kubectl-binary-with-curl-on-windows

配置環境變量

【這台電腦】→【屬性】→【高級系統配置】
path中增加 D:\xxx\tools\kube,此目錄即是存放kubectl.exe的目錄,配置好了我們可以直接再cmd運行kubectl試一下效果

這時我們的kubectl就相當安裝好了

配置kubeconfig

kubectl默認會從$HOME/.kube目錄下查找文件名為 config 的文件,也能通過設置環境變量 KUBECONFIG 或者通過設置去指定其它 kubeconfig 文件,kubeconfig就是為訪問集群所作的配置。那么在windows中我們對應的目錄就在C:\Users\xxx.kube下的config文件,我們可以把我們config文件放入config中去,這樣我們就可以用kubectl直接訪問k8s集群了
同樣如果想用一些grep之類的命令,可以使用 Git Bash 客戶端操作,如下:

kubectl get pods -n 375-xxx-pre
NAME                                              READY     STATUS             RESTARTS   AGE
xxx-pre-xxx-85f4ff7998-7bz6s                       0/1       CrashLoopBackOff   345        36d
xxx-pre-xxx-696d949fbf-8qccb                       1/1       Running            223        49d
xxx-pre-xxx-xxx-v4-6cf49766d6-zc9b2                1/1       Running            1          6h
xxx-pre-xxx-xxx-v4-5bd5b69898-wglpz                1/1       Running            0          11h
xxx-pre-xxx-xxx-v4-7bb478c5fc-xlhxk                1/1       Running            0          6h
edu-asyn-xxx-55bcbdffc5-pf9l8                      1/1       Running            0          7d
nginx-ingress-controller-5b548fbf68-4jjn9          1/1       Running            0          1y
term-xxx-c7795745c-vljdf                           1/1       Running            0          330d
texlive-python-api-7b69cd5fd7-zhfcs                1/1       Running            0          14d
web-open-695b4bf966-j9k7g                          1/1       Running            0          329d

常用的kubectl命令

node操作

# 查詢節點信息
kubectl get nodes

# 查詢節點更多信息
kubectl get nodes -o wide

# 暫停節點
kubectl cordon node_xxx

# 恢復節點
kubectl uncordon node_xxx

# 溫和的驅除節點(操作需謹慎)
kubectl drain node_xxx

# 暴力刪除(操作需謹慎)
kubectl delete node node_xxx

pod操作

# 創建pod,定義號pod_xxx.yaml
kubectl create -f pod_xxx.yaml

# 查詢所有pod信息
kubectl get pods

# 更多信息
kubectl get pods -o wide

# 查詢單個namespace下的pods詳細信息
kubectl get pods -n namespace_xxx -o wide

# 查看單個pod信息
kubectl get pod pod_xxx -n namespace_xxx -o wide

# 跟蹤pod日志
kubectl logs -f pod_xxx -n namespace_xxx

# 進入單個pod
kubectl exec -it pod_xxx -n namespace_xxx bash

# 查看單個pod狀態和生命周期
kubectl describe pod pod_xxx -n namespace_xxx

# JSON格式顯示Pod的完整信息
kubectl get pod pod_xxx  -n namespace_xxx --output json

# YAML方式顯示Pod的完整信息
kubectl get pod pod_xxx  -n namespace_xxx --output yaml

# 更新pod
kubectl replace -f pod_xxx.yaml

# 重建pod,Pod的很多屬性沒辦法修改,比如容器鏡像,這時候可以采用--force參數
kubectl replace --force -f pod_xxx.yaml

# 刪除單個pod
kubectl delete pod pod_xxx

# 刪除所有pod O(∩_∩)O
kubectl delete pod --all

其他

# 查看副本數,默認都是一個
kubectl get deployments

# 設置副本數量,增加到3個
kubectl scale deployments/xxx --replicas=3

# 重新縮減到一個
kubectl scale deployments/xxx --replicas=1

# ……

參考鏈接

關於kubectl相關有博主總結的很好,若想查看更多請移步:
Kubernetes之kubectl常用命令:https://blog.csdn.net/xingwangc2014/article/details/51204224


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM