本期介绍一个实用的Kubectl插件kubectl-ice,可以让你快速地查看POD中容器正在运行的配置信息,例如你可以查看所有POD内容器镜像的拉取策略、挂载卷、端口以及可执行配置等信息,同时结合metrics server你也可以查看容器运行的CPU和内存等相关指标信息。
功能
- 仅使用读取权限,不会调用写操作。
- 默认会列举出当前集群下命名空间内所有pod中的容器相关配置,kubectl-ice基本支持所有kubectl的选项参数;例如指定-A指定所有命令空间下的pod中的所有容器。
- 支持选择器,与在kubectl中的使用方式类似。
- 支持对输出的内容进行排序。
- 用match标志从输出中排除行,这对于排除内存或cpu使用率低的容器很有用。Exclude rows from output using the match flag, useful to exclude containers with low memory or cpu usage。
- 使用oddity标志只列出不在范围内的cpu和内存结果。List only cpu and memory results that dont fall within range using the oddities flag。
安装
安装比较简单,可以通过kubectl插件管理器krew[1]安装,也可以通过下载二进制[2]包进行安装,或者不嫌麻烦源码直接安装。
krew安装
$ kubectl krew install ice
- 1.
源码安装
$ git clone https://github.com/NimbleArchitect/kubectl-ice.git $ cd kubectl-ice $ make bin
- 1.
- 2.
- 3.
使用帮助
kubectl-ice command # 检索在容器级别指定的命令行和任何参数 kubectl-ice cpu # 返回CPU请求的大小,限制和每个容器的使用 kubectl-ice help # 显示帮助信息 kubectl-ice image # 列出每个容器的镜像以及镜像的拉取策略 kubectl-ice ip # 列出名称空间中所有pods的IP地址 kubectl-ice memory # 返回每个容器的内存请求大小、限制和使用情况 kubectl-ice ports # 显示pod内容器暴露的端口 kubectl-ice probes # 显示每个容器配置的启动、就绪和活动探针的详细信息 kubectl-ice restarts # 显示pod中每个容器的重启计数 kubectl-ice status # 列出pod中每个容器的状态 kubectl-ice volumes # 列出所有具有挂载点的容器卷
- 1.
- 2.
- 3.
- 4.
- 5.
- 6.
- 7.
- 8.
- 9.
- 10.
- 11.
使用案例
基础
显示指定pod内容器的内存指标信息(T: type,其值有I/init容器,S/standard标准容器)。
$ kubectl-ice memory resource-test-6c6f556b4f-lmngp T CONTAINER USED REQUEST LIMIT %REQ %LIMIT S resource 101.18Mi 500Mi 1Gi 20.24 9.88
- 1.
- 2.
- 3.
可结合标签使用。
kubectl-ice probes
检查容器状态(以及之前的状态)。
kubectl-ice status
显示pod内容器镜像的拉取策略。
显示pod内容器暴露的端口以及挂载卷信息。
使用选择器,同时可以使用--sort进行排序,注意!的使用,表示倒序。
kubectl-ice select --sort
- 更多使用帮助信息可以参考官方说明[3]。
- 更多使用案例可以参考官方说明[4]。
参考资料
[1]krew: 。
[2]kubectl-ice: 。
[3]kubectl-ice usage: 。
[4]example: 。
《linux就该这么学》不错的linux自学书籍