CKAD-CN 考试知识点分享(4) 配置 Container 安全上下文
·
您必须连接到正确的主机。不这样做可能导致零分。[candidate@base] $ ssh ckad00029
任务目标
在 namespace quetzal 中,修改现有的 Deployment broker-deployment,使其容器满足以下安全要求:
- 以用户 ID
30000运行; - 禁止特权提升(
allowPrivilegeEscalation: false); - 添加
NET_BIND_SERVICE能力,允许绑定到低于 1024 的端口。
配置文件位于:/ckad/daring-moccasin/broker-deployment.yaml
步骤一:编辑 Deployment 配置文件
使用编辑器打开配置文件:
vim /ckad/daring-moccasin/broker-deployment.yaml
找到 spec.template.spec.containers 下的容器定义,在其中添加 securityContext 字段。
修改内容如下:
spec:
template:
spec:
containers:
- name: broker-container # 实际名称可能不同
image: your-image:tag
securityContext:
runAsUser: 30000
allowPrivilegeEscalation: false
capabilities:
add:
- NET_BIND_SERVICE
✅ 说明:
runAsUser: 30000:指定容器以用户 30000 身份运行;allowPrivilegeEscalation: false:禁止进程获得比父进程更多的权限;capabilities.add: ["NET_BIND_SERVICE"]:允许绑定到特权端口(如 80、443),而无需使用 root 权限。
步骤二:应用修改后的配置
保存文件后,使用 kubectl apply 更新 Deployment:
kubectl apply -f /ckad/daring-moccasin/broker-deployment.yaml
✅ 由于该 Deployment 已存在,
apply命令将触发滚动更新,逐步替换旧 Pod。
步骤三:验证更新结果
1. 检查 Deployment 是否更新成功
kubectl -n quetzal rollout status deployment broker-deployment
预期输出:
deployment "broker-deployment" successfully rolled out
2. 查看新 Pod 的安全上下文
获取新创建的 Pod 名称:
kubectl -n quetzal get pods
查看 Pod 的详细信息:
kubectl -n quetzal get pod <pod-name> -o jsonpath='{.spec.containers[0].securityContext}'
输出应包含:
{
"runAsUser": 30000,
"allowPrivilegeEscalation": false,
"capabilities": {
"add": ["NET_BIND_SERVICE"]
}
}
总结
- 成功修改
broker-deployment的securityContext; - 容器现在以用户
30000运行,禁止特权提升,并拥有NET_BIND_SERVICE能力; - 通过
kubectl apply安全地更新了现有 Deployment,未删除重建; - 所有安全要求均已满足,Deployment 正常运行。
✅ 任务完成。
更多推荐


所有评论(0)