最近准备花一周的时间准备CKS考试,在准备考试中发现有一个题目关于不安全项目修复的题目。
What's the kube-batch
kube-batch是一个基于Kubernetes的任务批处理系统。它扩展了Kubernetes的调度器,为用户提供了一种简单而可扩展的方式来管理大规模、并行和长时间运行的任务。
kube-batch可以将任务拆分为独立的作业(Job),并在集群中的多个节点上并行执行。它提供了灵活的调度策略,可根据资源需求、约束条件和优先级来调度作业。同时,kube-batch还提供了任务状态跟踪、作业控制和资源管理等功能。
与传统的任务调度系统相比,kube-batch利用了Kubernetes的弹性扩展和容错机制,可以自动处理节点故障、资源限制和负载均衡等问题。它还能够与Kubernetes的监控、日志和报警系统集成,提供全面的任务管理和监控功能。
总之,kube-batch是一个用于管理大规模任务批处理的开源工具,它利用Kubernetes的弹性和可扩展性来提供高效的任务调度和资源管理。
提示:这道题需要切换到master节点上去完成
shell
ssh xxx
Question 1
Fix the following CIS Benchmark issues with the kubelet on the control plane server:
- Make sure --anonymous-auth is not set to true.
- Use Webhook mode for authn/authz.
本题的意思是解决控制平面服务器上kubelet的以下CIS基准问题:
- 确保--anonymous-auth未设置为true。
- 使用Webhook模式进行身份验证/授权。
Practice
本题需要明确一点的是kubelet配置文件所在位置为:/var/lib/kubelet/config.yaml
, 所以此时,仅仅需要对该文件做如下更改即可
昨晚上述步骤之后需要对kubelet进行重启,重启命令为:
shell
sudo systemctl restart kubelet
sudo systemctl status kubelet
Question 2
Fix the following CIS Benchmark issues with kube-apiserver:
- Make sure the --profiling=false flag is set.
- Ensure authorization mode does not include AlwaysAllow.
- Make sure authorization mode includes Node and RBAC.
修复以下CIS基准问题与kube-apiserver:
- 确保设置了--profiling=false标志。
- 确保授权模式不包括AlwaysAllow。
- 确保授权模式包括Node和RBAC。
Practice
这里需要明确的是kube-apiserver配置文件所在位置是在/etc/kubernetes/manifests/kube-apiserver.yaml
,所以此时仅仅需要对文件做如下更改即可:
修改完成以后如果需要验证可以使用kubectl get nodes
进行验证,不过这个需要等待apiserver加载配置成功后才会有结果
Question 3
Fix the following CIS benchmark issues with etcd:
- Make sure client-cert-auth is set to true.
这个题就是将etcd的client-cert-auth设置为true。
Practice
这里需要明确的是etcd配置文件所在位置是在/etc/kubernetes/manifests/etcd.yaml
,所以仅仅需要对该文件做如下更改即可:
如果需要验证,可以使用kubectl get pods -n kube-system
来进行验证