真题解析
题目

Context
AppArmor 已在 cluster 的工作节点上被启用。一个 AppArmor 配置文件已存在,但尚未被实施。
Task
在 cluster 的工作节点上,实施位于 /etc/apparmor.d/nginx_apparmor 的现有 AppArmor 配置文件。
编辑位于 /etc/candidate/KSSH00401/nginx-deploy.yaml 的现有清单文件以应用 AppArmor 配置文件。
最后,应用清单文件并创建其中指定的 Pod。
解析
AppArmor 官方文档:
https://kubernetes.io/zh-cn/docs/tutorials/security/apparmor/
加载 apparmor 配置文件(所有 Worker 节点执行)
apparmor_parser /etc/apparmor.d/nginx-apparmor
apparmor_status | grep nginx
nginx-deny-write编辑 nginx-deploy.yaml (CP 节点执行)
# vim nginx-deploy.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
creationTimestamp: null
labels:
app: nginx-deploy
name: nginx-deploy
spec:
replicas: 1
selector:
matchLabels:
app: nginx-deploy
strategy: {}
template:
metadata:
creationTimestamp: null
labels:
app: nginx-deploy
spec:
securityContext: # 添加此项配置
appArmorProfile:
type: Localhost # 加载宿主机上的配置
localhostProfile: nginx-deny-write # AppArmor 的 Profile 名称
containers:
- image: nginx
name: nginx
resources: {}
status: {}应用
kubectl create -f nginx-deploy.yamlLast updated