本站所有文章均为原创,如对您有帮助,恳请帮忙点击任何一处广告

K8S教程(2)kubectl客户端工具的使用

发布:TangLu2019-6-10 14:00分类: Docker+K8S 标签: docker k8s kubernetes

在K8S集群中API server是唯一的管理入口,而要连接该入口对集群进行管理就需要用到kubectl这个客户端工具。kubectl工具根据命令的作用或者难易度划分了几个子分类,比如Begginer Commands代表基础命令,Advanced Commands高级命令、Cluster Management Commands集群管理命令、Deploy Commands部署命令等分类,每个分类下又包含了很多子命令。

需要注意的是在实际使用中基本都是通过YAML文件去定义,而不会去手写这些命令。但是为了解集群工作原理还是需要知道这个命令的使用的。


kubectl基本查询命令:

1、查看kubectl的版本

kubectl version


2、查看K8S集群状态,包含了Master和CoreDNS对外暴露的端点地址

kubectl cluster-info


kubectl1.png


3、显示K8S集群状态 的详细信息

kubectl describe node node1.linuxe.cn  #查看node1节点详细信息,比如资源消耗情况、有没有Taints(污点)、是否不可被调度等。Master节点通常是有污点的,这是不能让它参与调度所故意添加。
kubectl describe svc nginx-test  #显示nginx-test这个service的详细信息


kubectl POD管理命令:

在K8S中POD是最小的工作单元,它的工作流程大概是:创建并启动一个POD(POD有一个自己的IP用于让集群内的节点访问)(会通过ipvs自动生成访问规则)---->为POD创建SVC(Service的简称,可以理解为访问入口或调度器)---->由SVC对POD进行调度管理,如自动重启POD。下面是整个流程的操作命令:

kubectl run nginx-test --image=nginx:v1.18  --replicas=3 #以nginx:v1.18这个镜像为基础镜像去创建一个名为nginx-test的POD,该POD有3个副本,如果有pod被删除了会自动创建新的pod,除非加上--restart=Never选项。

kubectl delete pods nginx-test-5bfju1758-2qjf7  #删除POD测试自动创建功能,发现POD IP发生了变化.所以应该给POD一个固定端点

kubectl expose deployment nginx-test --name=nginx-test --port=80 --target-port=80 --protocal=TCP  #导出nginx-test这个控制器的pod,并创建服务名为nginx-test,target-port是指容器内服务的端口。通过service的IP或者名称就可以访问到后端pod上的服务,如果使用名称访问的话需要coredns来完成解析。另外需要注意service默认只能被集群内部的pods访问,不能被外部访问到,除非将TYPE修改为NodePort而不是默认的ClusterIP。

kubectl scale --replicas=5 deployment nginx-test  #动态调整pod数量到5个,也可以缩减

kubectl delete svc nginx-test  #删除SVC


kubectl get查询命令:

kubectl get deployment  #查看已经创建好的控制器
kubectl get pods  #查看已经创建的pod,名称通常是deployment的名字加上一段hash码。加上-o wide显示信息更详细,包含pods的IP、属于哪个Node
kubectl get svc  #svc是service的简写,可以看到svc的名称和IP,也可直接访问显示出来的名称或者IP
kubectl get pods -l nginx  --show-lables  #只显示标签是nginx的pod


kubectl label 标签管理:

kubectl label pods nginx-test release=beta  #给nginx-test这个POD打上标签,名为beta,除了POD也可以给node打标签
kubectl label pods nginx-test release=stable --overwrite  #修改beta标签为stable
kubectl label pods -l nginx --show-lables  #查看标签包含nginx的容器,可以写多个标签
kubectl label pods -l release=stable --show-lables  #查看标签为release且值为stable的容器

温馨提示如有转载或引用以上内容之必要,敬请将本文链接作为出处标注,谢谢合作!
et_highlighter51
版权所有:《Linux运维技术学习站点
文章标题:《K8S教程(2)kubectl客户端工具的使用
除非注明,文章均为 《Linux运维技术学习站点》 原创
转载请注明本文短网址:http://www.linuxe.cn/post-497.html  [生成短网址]

已有 0/631 人参与

发表评论:

欢迎分享Linux运维技术学习站点

欢迎使用手机扫描访问本站,还可以关注微信哦~