真题解析

题目

Context

AppArmor 已在 cluster 的工作节点上被启用。一个 AppArmor 配置文件已存在,但尚未被实施。

您可以使用浏览器打开一个额外的标签页来访问 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.yaml

Last updated