目录
[7. Dockerfile 检测](#7. Dockerfile 检测)
[免费获取并激活 CKA_v1.31_模拟系统](#免费获取并激活 CKA_v1.31_模拟系统)
[2)、修改 Dockerfile](#2)、修改 Dockerfile)
[3)、 修改 deployment.yaml](#3)、 修改 deployment.yaml)
7. Dockerfile 检测
免费获取并激活 CKA_v1.31_模拟系统
题目
您必须在以下Cluster/Node上完成此考题:
Cluster Master node Worker node
CKS00707 master node01
.
设置配置环境:
candidate@node01\]$ kubectl config use-context CKS00707 . Task . 分析和编辑给定的 Dockerfile /cks/docker/Dockerfile (基于 ubuntu:16.04 镜像), 并修复在文件中拥有的突出的安全/最佳实践问题的 **两个指令** 。 . 分析和编辑给定的清单文件 /cks/docker/deployment.yaml , 并修复在文件中拥有突出的安全/最佳实践问题的 **两个字段** 。 . 注意:请勿添加或删除配置设置;只需修改现有的配置设置让以上 **两个** 配置设置都不再有安全/最佳实践问题。 . 注意:如果您需要非特权用户来执行任何项目,请使用用户 ID 65535 的用户 nobody 。 . 只修改即可,不需要创建。
开始操作:
1)、切换集群
bash
kubectl config use-context CKS00707
2)、修改 Dockerfile
bash
vim /cks/docker/Dockerfile
指定稳定的镜像版本,一般lastest稳定性尚待验证
bash
#修改基础镜像为题目要求的 ubuntu:16.04
FROM ubuntu:16.04
CKS模拟系统截图

将容器启动时的程序运行用户改成nobody低权限用户
bash
#仅将 CMD 上面的 USER root 修改为 USER nobody,不需要改其他的 USER root。
USER nobody
CKS模拟系统截图

3)、修改 deployment.yaml
bash
vim /cks/docker/deployment.yaml
更改labels
bash
#emplate 里标签跟上面的内容不一致,所以需要将原先的 run: couchdb 修改为 app: couchdb
apiVersion: apps/v1
kind: Deployment
metadata:
name: couchdb
namespace: default
labels:
app: couchdb #标签
version: stable
spec:
replicas: 1
revisionHistoryLimit: 3
selector:
matchLabels:
app: couchdb #标签
version: stable
template:
metadata:
labels:
app: couchdb #标签,run: couchdb改为app: couchdb
version: stable
spec:
containers:
- name: couchdb
CKS模拟系统截图

更改Pod安全标准设置
bash
#确保 'privileged': 为 False
#确保'readonlyRootFilesystem': 为 True
#确保'runAsUser': 为 65535
...
volumeMounts:
- name: database-storage
mountPath: /var/lib/database
securityContext:
{'capabilities': {'add': ['NET_BIND_SERVICE'], 'drop': ['all']}, 'privileged': False, 'readOnlyRootFilesystem': True, 'runAsUser': 65535}
resources:
...
CKS模拟系统截图

CKA高仿真环境简单演示视频