告别dashbord操作,初识kubectl命令及命令汇总

作者:yangjunlin

前言

  这篇文章是针对于无法使用dashboard界面的客户,并在使用imanager for k8s出现的一些问题进行排查过程中可能使用到的kubectl的一些归纳和总结,希望可以帮助到小伙伴们,废话不多说,直接入正题

一、先了解下什么是kubectl 命令

  kubectl 是 Kubernetes 集群的命令行工具,通过它能够对集群本身进行管理,并能够在集群上进行容器化应用的安装和部署。
kubectl 命令的语法如下:
kubectl [command] [type] [name] [flags]
参数:
(1) command:指定要对资源执行的操作,如:create、get 、delete 等。
(2) type:指定资源的类型,如:deployment 、pod 、service 等。
(3) name:指定资源的名称,名称大小写敏感。
(4) flags:指定额外的可选参数。
想学习完整全部的kubectl命令可以查看https://cloud.tencent.com/developer/beta/article/1905211里面内容非常详细。

这次我主要是讲解一些在使用我们产品时候可能会用到的一些kubectl命令我举例几个常见的场景

二、K8s node异常情况

  1. 首先使用命令 ‘kubectl get node’获取到节点的情况
    在这里插入图片描述
      如果发现有异常的 Kubernetes 节点,需要通过以下命令查看节点详情‘kubectl describe node node1’查看node1的详细情况。最主要是看conditions的四个指标,内存,磁盘空间,pid是否充足,kubelet 状态是否正常
    在这里插入图片描述
      以上发现node1的kubelet状态不正常,可通过执行命令‘systemctl restart kubelet’让其恢复服务,如果依然不行,优先考虑利用‘reboot -n -f’重启node1服务器。如遇到紧急情况想快速恢复,可以考虑驱逐改节点的pod,执行命令‘kubectl drain node1 --force --ignore-daemonsets’,如果这种方式不可用,最次方式是将该节点移除掉,执行‘kubectl delete node node1’,后期恢复了服务,并重启了node1机器以后,重新将node1加入集群

三、Pod出现异常情况

  1. 第一个当imanager for k8s 运维界面无法进入(31100),这时后就需要查看supermap命名空间下的pod情况,是否都正常启动了,这时可执行
    ‘kubectl get pod -nsupermap’ 查看supermap命名空间下的所有pod情况
    在这里插入图片描述
    这些就是支持服务能正常运行的全部pod了,如果当出现异常状态的pod,可以用
    ‘kubectl describe pod -n<命名空间名称>’查看错误的详细信息以及事件,比如我现在查看consul-server的pod的详细信息和事件消息
    在这里插入图片描述
    同时也可利用命令‘kubectl logs -f <pod_name>’查看对应pod的日志
  2. 发现状态不正确的pod的时候,可以直接尝试删除进行修复pod
    比如bslicense-server-68ff4866c6-t5ts5目前出现问题没有正常启动,这时候可以执行‘kubectl delete pod bslicense-server-68ff4866c6-t5ts5 -nsupermap’
    在这里插入图片描述
    如果正常删除删除命令并不能删不掉该pod,想要强制删除就可以执行
    ‘kubectl delete pod bslicense-server-68ff4866c6-t5ts5 -nsupermap --force --grace-period=0’

四、编辑deployment

之前遇到过修改镜像问题,在dashboard界面无法进行修改
在这里插入图片描述
这时候如果想要修改编辑部署,就需要通过执行以下命令,其中 bslicense-server是deployment名称,
‘kubectl edit deployments -n ’,修改完成 记得wq 写入即可

五、伸缩deployment

在对产品运维中还比较常用到功能就是伸缩,比如将某个depolyment或者statfulset伸缩为0 在到1
如我想把supermap命名空间下的imanager-dashboard-api伸缩为0,再伸缩为1
1.先伸缩为0
kubectl scale --replicas=<副本集的数量可为0> deployment < deployment Name> -n
在这里插入图片描述
2.再通过kubectl get deployment -n supermap查看副本集为0
在这里插入图片描述
3.然后再修改replicas数量改为1即可
在这里插入图片描述
4.Statefulsets类似,如果想伸缩有状态副本集中的keycloak为0
执行kubectl scale --replicas=1 statefulsets -n
在这里插入图片描述

总结

这次我是围绕支持产品过程遇到问题来进行描述的,其中内容可能并不完整,有兴趣的同学可以自查资料

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值