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

Windows下安装kubectl及Node和Pod操作常用命令的更多相关文章

  1. windows下安装Mongodb_4.0.6最新版及常用命令

    今天下载了最新版Mongodb进行安装,发现相比较于以前,方便了很多,直接下载: 一.下载地址:https://www.mongodb.com/download-center/enterprise 二 ...

  2. windows下安装mongodb以及node.js连接mongodb

    一.MongoDB 下载 下载地址  https://www.mongodb.com/download-center#community  选择windows版下载,然后安装. 二.安装完毕后创建数据 ...

  3. 20200221_python虚拟环境在Windows下安装配置_virtualenv不是内部或外部命令也不是可运行的程序或批处理文件

    1. 使用管理员启动命令行; 2. 安装虚拟环境 a)      .\pip install virtualenv  -i https://pypi.douban.com/simple/ b)     ...

  4. Ubuntu下安装Docker,及Docker的一些常用命令操作

    1.什么是 Docker         Docker 是一个开源项目,Docker 项目的目标是实现轻量级的操作系统虚拟化解决方案.         Docker 的基础是 Linux 容器(LXC ...

  5. Windows下安装node

    1.安装node及npm Windows下安装软件都是傻瓜式安装,首先登陆官网(https://nodejs.org/en/)下载对应的node程序,然后双击进行安装.安装过程基本上是点击'Next' ...

  6. Windows 下安装 Node.js

    搭建博客系列的 Node.js 环境安装.Windows 下面安装可以通过图形化界面进行安装,非常方面. 1.打开 Node.js 官网,下载对应版本的安装包(msi 后缀的) 2.双击运行下载的程序 ...

  7. windows下安装node【转】

    windows下安装node报错2503.2502 windows下命令行安装,首先使用管理员权限获取cmd msiexec /package node-v10.16.0-x64.msi 根据提示一步 ...

  8. windows下安装node.js及环境配置、部署项目

    windows下安装node.js及环境配置.部署项目 一.总结 一句话总结: 安装nodejs软件:就像普普通通的的软件那样安装 配置nodejs安装的全局模块的环境变量 并且安装cnpm(比如cn ...

  9. 在windows下安装gulp —— 基于 Gulp 的前端集成解决方案(一)

    相关连接导航 在windows下安装gulp —— 基于 Gulp 的前端集成解决方案(一) 执行 $Gulp 时发生了什么 —— 基于 Gulp 的前端集成解决方案(二) 常用 Gulp 插件汇总 ...

随机推荐

  1. Matlab将数据存为文本文件

    dlmwrite :将一个矩阵写到由分隔符分割的文件中. 在保存整数到文件时使用save存为ascii文件时,常常是文件里都是实型格式的数据(有小数点,和后面很多的0,看着很不方便).于是要保存此类数 ...

  2. HEVC学习(一) —— HM的使用

    http://blog.csdn.net/hevc_cjl/article/details/8169182 首先自然是先把这个测试模型下载下来,链接地址如下:https://hevc.hhi.frau ...

  3. 问渠那得清如许?为有源头活水来——对【近取Key】产品进行的深度测评与解析

    在 Build To Show 的场景中,大家各显身手,用各种办法展现技术,的确很难在单一的维度上确定谁赢谁输.但是,在 Build To Win 的场景中,往往市场就是那么一块, 竞争对手占了 70 ...

  4. OO第一单元总结-多项式求导

    OO第一单元总结-多项式求导 一.第一.第二次作业总结 因为前两次作业设计复杂度差别不大,因而放在这里统一总结. 基于度量分析程序结构: 前两次作业确实存在缺乏可拓展设计的构想,基本还是面向过程的思维 ...

  5. 为什么说Zoho CRM是最好的销售预测系统?

    在文章的开头,我们来讲讲什么是销售预测--销售预测是指利用销售管道中的商机.已完成的配额.有望完成目标的销售团队或个人等关键信息对产品的销售数量与销售金额进行预测的手段.企业在制定销售计划时的重要任务 ...

  6. 5分钟让你理解K8S必备架构概念,以及网络模型(中)

    写在前面 在这用XMind画了一张导图记录Redis的学习笔记和一些面试解析(源文件对部分节点有详细备注和参考资料,欢迎关注我的公众号:阿风的架构笔记 后台发送[导图]拿下载链接, 已经完善更新): ...

  7. 删除所有空白列 cat yum.log | awk '{$1=$2=$3=$4=null;print $0}'>>yum.log1 sed ‘s/[ \t]*$//g' 删除所有空格 sed -i s/[[:space:]]//g yum.log

    2.删除行末空格 代码如下: 删除所有空白列 cat yum.log | awk '{$1=$2=$3=$4=null;print $0}'>>yum.log1 sed 's/[ \t]* ...

  8. Docker Swarm(七)Scale 扩(缩)容服务

    扩(缩)容服务 扩容服务 Service还提供了复制(类似kubernetes里的副本)功能.可以通过 docker service scale 命令来设置服务中容器的副本数: docker serv ...

  9. IT菜鸟之BIOS和VT

    一.虚拟化:VT(Virtualization Technology) 二.BIOS (basic input output system基本输入输出系统) 主板优先启动--bios启动--bios开 ...

  10. Prometheus存储原理及数据备份还原

    prometheus将采集到的样本以时间序列的方式保存在内存(TSDB 时序数据库)中,并定时保存到硬盘中.与zabbix不同,zabbix会保存所有的数据,而prometheus本地存储会保存15天 ...