这篇文章以Metrics Server部署时碰到的问题为例,介绍如何结合使用kubectl get event命令进行问题的排查。

Metrics Server部署

Metrics Server是Kubernetes 1.8以后指标监控使用的组件,诸如dashboard和kubectl top等都需要使用到它,到目前需要手动安装,安装非常简单,一般如下命令即可

步骤1: git clone

执行命令:git clone https://github.com/kubernetes-incubator/metrics-server

步骤2: kubectl create

执行命令:cd metrics-server && kubectl create -f deploy/1.8+/

问题现象

metrics-server显示READY的状态为0/1

[root@host131 1.8+]# kubectl get deployment -A
NAMESPACE     NAME             READY   UP-TO-DATE   AVAILABLE   AGE
kube-system   coredns          1/1     1            1           2m50s
kube-system   metrics-server   0/1     0            0           25s
[root@host131 1.8+]#

说明此时pod状态未Ready,查询全命令空间只有coredns的pod在运行

[root@host131 1.8+]# kubectl get pod -A
NAMESPACE     NAME                       READY   STATUS    RESTARTS   AGE
kube-system   coredns-59db588569-gz6x8   1/1     Running   0          7m46s
[root@host131 1.8+]#

问题排查

使用kubectl get event确认,加上-A选项或者指定命名空间比如此例中为kube-system,可以获取到如下错误信息

5m54s       Warning   FailedCreate        replicaset/metrics-server-789c77976    Error creating: pods "metrics-server-789c77976-gzbl5" is forbidden: SecurityContext.RunAsUser is forbidden
5m53s       Warning   FailedCreate        replicaset/metrics-server-789c77976    Error creating: pods "metrics-server-789c77976-c5jxg" is forbidden: SecurityContext.RunAsUser is forbidden
5m53s       Warning   FailedCreate        replicaset/metrics-server-789c77976    Error creating: pods "metrics-server-789c77976-4t4wt" is forbidden: SecurityContext.RunAsUser is forbidden
5m53s       Warning   FailedCreate        replicaset/metrics-server-789c77976    Error creating: pods "metrics-server-789c77976-zv9hg" is forbidden: SecurityContext.RunAsUser is forbidden
5m53s       Warning   FailedCreate        replicaset/metrics-server-789c77976    Error creating: pods "metrics-server-789c77976-vqm9m" is forbidden: SecurityContext.RunAsUser is forbidden
5m53s       Warning   FailedCreate        replicaset/metrics-server-789c77976    Error creating: pods "metrics-server-789c77976-l9bdw" is forbidden: SecurityContext.RunAsUser is forbidden
5m53s       Warning   FailedCreate        replicaset/metrics-server-789c77976    Error creating: pods "metrics-server-789c77976-x7v2r" is forbidden: SecurityContext.RunAsUser is forbidden
5m53s       Warning   FailedCreate        replicaset/metrics-server-789c77976    Error creating: pods "metrics-server-789c77976-4p4v9" is forbidden: SecurityContext.RunAsUser is forbidden
5m52s       Warning   FailedCreate        replicaset/metrics-server-789c77976    Error creating: pods "metrics-server-789c77976-4rdtb" is forbidden: SecurityContext.RunAsUser is forbidden
26s         Warning   FailedCreate        replicaset/metrics-server-789c77976    (combined from similar events): Error creating: pods "metrics-server-789c77976-442xf" is forbidden: SecurityContext.RunAsUser is forbidden

只要有清晰的错误提示,一般就可以判断出原因,比如此处可以看到
pods "metrics-server-789c77976-442xf" is forbidden: SecurityContext.RunAsUser is forbidden
说明pod在创建的过程中准入没有通过,准入控制的SecurityContext有问题,然后确认kube-apiserver的参数(systemctl status -l kube-apiserver)

--enable-admission-plugins=NamespaceLifecycle,LimitRanger,SecurityContextDeny,ServiceAccount,ResourceQuota,NodeRestriction

准入控制SecurityContextDeny的作用就是为了限制使用了SecurityContext,SecurityContext可以在容器中定义uid、gid与SELinux等操作系统级别的安全设定,正是由于这个准入控制的存在导致了此Pod根本没有进入到进行pod的镜像的拉取直接失败,导致根本没有pod的信息。

对应方法

删除准入控制中的SecurityContextDeny,然后重启ApiServer,再次创建就会发现至少出现ContainerCreating的状态了(至于pull不下来则是别的问题,此处不再赘述)

[root@host131 1.8+]# kubectl get pods -A
NAMESPACE     NAME                             READY   STATUS              RESTARTS   AGE
kube-system   coredns-59db588569-gz6x8         1/1     Running             0          26m
kube-system   metrics-server-789c77976-sfvsx   0/1     ContainerCreating   0          10s
[root@host131 1.8+]#

总结

问题的排查关键在于重要提示信息的获取,在kubernetes中,日志、systemctl status状态信息和kubeclt get event等命令合理结合才能准确和全面的获取包含问题原因的信息,另外各个组件的信息最好都要插件,比如此例中在controller-manager中也可以看到类似的错误信息。

Kubernetes基础:问题排查方法示例:结合使用kubectl get event相关推荐

  1. Kubernetes基础:可以用作示例演示的tornado镜像

    这篇文章说明一个可以在后续进行蓝绿部署.灰度发布以及负载均衡的tornado镜像. tornado镜像 蓝绿部署:https://blog.csdn.net/liumiaocn/article/det ...

  2. Kubernetes基础:重启pod的方法

    Kubernetes没有提供诸如docker restart类似的命令用于重启容器那样重启pod的命令,一般会结合restartPolicy进行自动重启,这篇文章整理一下偶尔需要手动进行重启的时候所需 ...

  3. Kubernetes基础详解

    1. Kubernetes介绍 1.1 应用部署方式演变 在部署应用程序的方式上,主要经历了三个时代: 传统部署:互联网早期,会直接将应用程序部署在物理机上 优点:简单,不需要其它技术的参与 缺点:不 ...

  4. Kubernetes 网络疑难杂症排查分享

    本文作者来自腾讯云容器服务(TKE)团队,经常帮助用户解决各种 Kubernetes 的疑难杂症,积累了比较丰富的经验,本文分享几个比较复杂的网络方面的问题排查和解决思路,深入分析并展开相关知识,信息 ...

  5. 【开源要闻】Canonical发布新OpenStack工具、Kubernetes访客引导方法

    Canonical发布支持CephFS的OpenStack Charms 20.02 Canonical近日宣布了OpenStack Charms 20.02的全面上市,这是用于在Ubuntu上设计, ...

  6. LLVM编译器基础架构与DragonEgg示例

    LLVM编译器基础架构与DragonEgg示例 LLVM 概述 LLVM 项目是模块化和可重用的编译器和工具链技术的集合.LLVM 与传统的虚拟机几乎没有关系."LLVM"这个名字 ...

  7. 送书 | 你一定能看懂的算法基础书(代码示例基于Python)

    本文引自图灵教育<算法图解> 你一定能看懂的算法基础书:代码示例基于Python:400多个示意图,生动介绍算法执行过程:展示不同算法在性能方面的优缺点:教会你用常见算法解决每天面临的实际 ...

  8. 服务器可以pyqt显示吗,用pyqt+socket实现远程操作服务器的一个例子,PyQtsocket,方法,示例...

    @本文来源于公众号:csdn2299,喜欢可以关注公众号 程序员学府 这篇文章主要介绍了PyQt+socket实现远程操作服务器的方法示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定 ...

  9. Kubernetes基础学习(一)

    Kubernetes基础学习 Kubernetes核心组件 Kubernetes核心组件如下: Kubernetes Master部分: etcd保存了整个集群的状态: apiserver提供了资源操 ...

最新文章

  1. DNS重绑定DNS Rebinding攻击
  2. Linux内核学习笔记
  3. 【原创】大叔案例分享(3)用户行为分析--见证scala的强大
  4. 信息系统项目管理系列之一:绪论
  5. 常用的几种大数据架构剖析
  6. 通过实验取证:TCP三次握手的过程
  7. 爱荷华大学计算机科学专业,爱荷华大学计算机科学专业好不好?专业设置详情一览...
  8. python自动保存ping结果_利用python获取Ping结果示例代码
  9. 巴塞尔问题欧拉解法逐步推导与分析
  10. HTML5详细介绍及使用
  11. 晶体管放大电路之应用
  12. taobao.trades.sold.increment.get( 淘宝店铺订单接口,淘宝店铺订单交易数据接口,淘宝店铺订单解密接口,淘宝店铺订单解密提额接口)代码对接教程
  13. 新年新气象,专注于重要的事
  14. 统计局解读1月制造业采购经理指数:服务业回升明显
  15. Excel 常用技巧目录
  16. 4米乘以12米CAD图_CAD绘图比例、出图比例、打印比例讲解!!!
  17. 新媒体运营的岗位晋升路线是怎么样的? 新媒体管理师是趋势吗?
  18. MXNet:基础和入门
  19. html如何在图片中放入音乐,如何给图片添加音乐
  20. 腾讯云服务器地域怎么选?地域可用区选择四大因素

热门文章

  1. 求连通图的关节点(割点)--C语言
  2. HEDD:增强子疾病相关数据库
  3. 高精度除法算法(大数除于小数)
  4. 我喜欢用计算机300,我喜欢夏天作文300字
  5. cellpadding和 cellspacing
  6. 语音转文字怎么设置在线转换的操作
  7. 中国金融出版社出版的2016版《公司信贷》
  8. 文件误删没进回收站怎么恢复?
  9. Excel 金额大写
  10. MacVim配置参考