对Kubernetes集群进行健康扫描,以图表的方式进行展示、建议及说明
基本检查 |
描述 |
裸Pod |
避免在集群中使用裸Pod |
完全合格的镜像名(FQIN) |
避免使用不完全合格的镜像名 |
镜像Latest标签 |
避免使用latest标签 |
存活探针 |
建议为Pod创建存活探针 |
就绪探针 |
建议为Pod创建就绪探针 |
默认命名空间 |
避免在default命名空间创建各种资源 |
资源配额(资源要求检测大于5核5G) |
建议配置Pod的资源请求、Pod的资源限制同时检测Pod资源请求是否过大(大于5核5G视为过大) |
卷挂载(主机路径) |
避免挂载主机路径 |
节点自定义标签 |
避免自定义节点标签 |
Metric Server |
建议集群安装Metric Server服务 |
Pod节点选择标签(节点名作为节点选择标签) |
避免Pod节点选择标签为节点名 |
准入控制Webhook(Validating Webhook 和 Mutating Webhook) |
避免配置的Validating Webhook针对的服务的命名空间不存在;避免配置的Validating Webhook针对的service不存在;配置的Mutating Webhook针对的服务的命名空间不存在;避免配置的Mutating Webhook针对的service不存在;避免配置的Validating Webhook针对的Namespace为kubernetes系统Namespace;避免已配置的Mutating Webhook针对的Namespace为kubernetes系统Namespace |
命名空间资源限制 |
建议为命名空间添加资源限制(LimitRange)(未完成) |
命名空间资源配额 |
建议为命名空间添加资源配额(ResourceQuota)(未完成) |
无用检查 |
描述 |
服务账户 |
无用的ServiceAccount |
ConfigMap |
无用的ConfigMap |
Secret |
无用的Secret |
PV |
无用的PersistentVolume |
PVC |
无用的PersistentVolumeClaim |
HPA |
无用的HorizontalPodAutoscaler |
集群角色 |
无用的ClusterRole |
角色 |
无用的Role |
服务 |
无用的Service |
副本集 |
无用的ReplicaSet |
Pod中断预算 |
无用的PodDisruptionBudget |
Pod预设 |
无用的PodPreset |
状态检查 |
描述 |
节点状态 |
节点处于未知状态;节点未处于就绪状态;节点内存不足;节点硬盘空间不足;节点PID不足;节点的网络不可达 |
命名空间状态 |
命名空间未处于就绪状态 |
Pod状态 |
Pod状态应该是Running或者Succeeded;Pod中容器重启次数为大于10 |
组件状态 |
组件controller-manager、scheduler、etcd状态 |
安全检查 |
描述 |
特权容器 |
避免使用特权模式的容器 |
API Server |
参考:CIS |
Controller Manager |
参考:CIS |
Scheduler |
参考:CIS |
Etcd |
参考:CIS |
- 在资源的Annotations中添加如下注释,例如:禁止检查Pod状态和存活检测
annotations:
kingfisher.inspect.com/disabled-inspect: "pod-state,liveness"
- 根据需求修改对应的REGISTRY变量,即可修改推送的仓库地址
- 编译成二进制文件: make build
- 生成镜像推送到镜像仓库: make push