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试一下效果
Windows下安装kubectl及Node和Pod操作常用命令
这时我们的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

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

上一篇:[转载] Python 列表(list)、字典(dict)、字符串(string)常用基本操作小结


下一篇:微服务 API 网关建设,实践经验分享!