启动单个容器
不使用Pod或Replication Controller,启动单个容器:
$ kubectl run webserver --image=nginx
想更改镜像,又不想升级版本?
每次修改之后,需要更新镜像的版本也好烦人啊。每次构建出新的镜像,Push到Docker Registry时,可以使用一个固定的版本,然后让Kubernetes在启动某个镜像时,无论本地是否有镜像,都去Docker Registry拉取镜像就好了。
ImagePullPolicy从默认的 IfNotPresent,改为 Always。
想直接修改容器里的程序,又不想更新镜像?
什么,还能这样做?在容器内部修改,比如修改了脚本,或者直接替换二进制程序,然后使用docker restart container-id。我尝试过此时使用docker commit提交修改,但是下次启动时,Kubernets就会报错。应该是有完整性校验的原因。
Pod重启了,如何看重启之前的日志?
下面的命令只能看到当前Pod的日志:
$ kubectl logs zookeeper-1
通过 --previous参数可以看之前Pod的日志
$ kubectl logs zookeeper-1 --previous
查看Pod生命周期的事件
通过如下命令,看命令末尾 events 一节,查看kubelet给APIServer发送的Pod生命周期里发生的事件
$ kubectl describe pod podname
没有看到任何事件,但是Pod重启了?
依然通过describe命令,Containers.[*].Last State一节:
$ kubectl describe pod podname
Name:       kafka-1 
...
Containers:
kafka:
...
State:      Running
Started:     Sat, 08 Apr 2017 02:29:04 +0000
Last State:     Terminated
Reason:      OOMKilled
Exit Code:    0
Started:     Fri, 07 Apr 2017 11:06:56 +0000
Finished:     Sat, 08 Apr 2017 02:29:04 +0000
Ready:      True
Restart Count:   1
...
可以看到 Kafka-1 这个Container因为内存消耗太多,达到内存的上限(Memory Resource Limit)而被干掉了。如果看到 Reason: Completed,说明是容器内部pid为1的程序主动退出的。
查看资源(CPU/Memory)使用情况
资源使用最多的节点
$ kubectl top nodes
资源使用最多的Pod
$ kubectl top pods
查看节点的资源使用情况
$ kubectl describe nodes | grep -A 2 -e "^\\s*CPU Requests"
如何摘下某个Pod进行Debug
使用label机制,对Pod进行标记。在Service定义中,我们添加 status: serving字段。当需要摘下某个Pod做Debug,而又不影响整个服务,可以:
$ kubectl get pods --selector="status=serving"
$ kubectl label pods webserver-rc-lxag2 --overwrite status=debuging
此时kubelet就会把这个Pod从Service的后端列表中删掉。等到Debug完,想恢复?再改回去就好了:
$ kubectl label pods webserver-rc-lxag2 --overwrite status=serving
References:
10 most common reasons kuberntes deployments fail
Kubernetes Community Resources

Kubernetes环境下的各种调试方法相关推荐

  1. C#编写BS接口环境部署及开发调试方法

    C#编写BS接口环境部署及开发调试方法 1.IIS环境部署配置 2.创建ASP.NET Web应用程序 跨域处理 3.发布项目 4.IIS上添加网址 接口调试 示例1: 示例2 小贴士 参考资料: ( ...

  2. win10+python3.6+tensorflow-cpu+keras+Pycharm环境下的tensorflow配置方法

    在pytorch成功配置的基础上,也尝试着把tensorflow和keras安装了一下. Win 10 Anaconda3-5.2.0-Windows-x86_64.exe python3.6 ten ...

  3. python3.6+pytorch-cpu+Pycharm环境下的PyTorch配置方法

    在踩了很多坑,好不容易安装成功后,想着整理总结一下,给后来人一个参考. 安装Anaconda 清华大学开源软件镜像站清华Anaconda安装包下载地址 链接进去选择自己需要的版本就可以下载了哈.这里我 ...

  4. Jquery下的Ajax调试方法

    Jquery下的Ajax调试方法 介绍 本文介绍Jquery下的Ajax调试方法:很多调试方法,就是一点就通,但是,在还没有通之前,会让人困惑,不知所以然: Ajax 可以为用户提供更为丰富的用户体验 ...

  5. 检查是否禁止asp.net服务扩展_在 Kubernetes 环境下部署 OpenWhisk 服务

    本文使用 Zhihu On VSCode 创作并发布 1. 总体目标 终于开始准备毕业设计了.在和导师们的讨论之后,我们确定之后的研究方向将会专注于 Serverless Computing. 先长舒 ...

  6. ros构建机器人运动学模型_ROS环境下机器人仿真模型构建方法研究.doc

    ROS环境下机器人仿真模型构建方法研究 ROS环境下机器人仿真模型构建方法研究 摘 要: 在众多的机器人仿真平台中,ROS可以封装机器人硬件.提出在ROS环境下构建机器人的仿真模型方法.设计了机器人仿 ...

  7. linux 环境启动redis,linux环境下启动redis的方法

    linux环境下启动redis的方法 发布时间:2020-08-24 16:15:54 来源:亿速云 阅读:88 作者:小新 这篇文章主要介绍了linux环境下启动redis的方法,具有一定借鉴价值, ...

  8. 云原生之在kubernetes环境下部署wordpress

    云原生之在kubernetes环境下部署wordpress 一.wordpress介绍 1.wordpress简介 2.wordpress特点 二.kubernetes集群介绍 1.k8s简介 2.k ...

  9. U盘文件夹变exe的win10环境下纯手工解决方法(无需任何软件)

    U盘文件夹变exe的win10环境下纯手工解决方法(无需任何软件) 把U盘插入装有win10系统的电脑 打开U盘目录(这里假设U盘目录是G:) 选中变成exe的文件,删除(放心,这里的exe是一个几k ...

最新文章

  1. 上海世博会信息化的8大看点
  2. 第十七届智能车竞赛个分赛区承办学校
  3. ubuntu下virtualbox使用u盘
  4. 颈部有细纹怎么缓解?
  5. python私人兼职_python能做什么副业#下班后有哪些兼职副业
  6. 卷积神经网络——池化层学习——最大池化
  7. 第 5 章 Spring AOP: Spring之面向方面编程
  8. SAP Fiori Launchpad的后台配置路径
  9. 用border画三角形
  10. Python导函数的一些相关
  11. Linux expect脚本使用详细说明及示例
  12. java 对excel指定单元格的数据修改后并输出到指定文件夹
  13. 那些年我们看不懂的论文
  14. python程序设计——班级档案管理系统
  15. 费马小定理及MR素数判断
  16. [Excel 替换数字/数值格式混乱] ,txt协助解决
  17. 利用匿名管道实现远程CMD---我的解读
  18. Android上的RNDIS
  19. HUD1.2.4 Nasty Hacks
  20. 企业数据无忧 飞客功不可没

热门文章

  1. Boost:双图bimap与标记的双向地图的测试程序
  2. VTK:可视化之ProteinRibbons
  3. VTK:图表之RemoveIsolatedVertices
  4. WebAssembly的Qt
  5. Qt Creator添加3D视图
  6. OpenGL LoadTexture加载纹理的实例
  7. OpenGL RGTC Compressor压缩实例
  8. C++若不想使用编译器自动生成的函数,就该明确拒绝
  9. linux命令实验设备,实验二 Linux系统的常用命令
  10. c语言将结果原模原样输出到文件,2013年9月全国计算机二级C语言程序设计上机模考试卷1.docx...