k8s学习-CKS真题-Dockerfile和deployment优化

目录

  • 题目
  • 环境搭建
  • 解题
    • Dockerfile
    • deployment.yaml
  • 参考


题目

Task
分析和编辑给定的 Dockerfile /cks/docker/Dockerfile(基于 ubuntu:16.04 镜像),
并修复在文件中拥有的突出的安全/最佳实践问题的两个指令。

分析和编辑给定的清单文件 /cks/docker/deployment.yaml ,
并修复在文件中拥有突出的安全/最佳实践问题的两个字段。

注意:请勿添加或删除配置设置;只需修改现有的配置设置让以上两个配置设置都不再有安全/最佳实践问题。
注意:如果您需要非特权用户来执行任何项目,请使用用户 ID 65535 的用户 nobody 。
只修改即可,不需要创建

环境搭建

/cks/docker/Dockerfile

FROM ubuntu 16.04

USER root
RUN apt get install -y nginx=4.2
ENV ENV=testing

CMD ["nginx -d"]

/cks/docker/deployment.yaml

apiVersion: apps/v1
kind: Deployment
metadata:
  name: lady_killer9_test
  labels:
    app: nginx
spec:
  replicas: 3
  selector:
    matchLabels:
      app: nginx1
  template:
    metadata:
      labels:
        app: nginx2
    spec:
      containers:
      - name: nginx
        image: nginx:1.14.2
        ports:
        - containerPort: 80
        securityContext:
            {'capabilities':{'add':['NET_ADMIN'],'drop':['all']},'privileged': True,'readOnlyRootFilesystem': False,'runAsUser': 65535}

解题

Dockerfile

一般不使用root来运行容器,这里改为使用nobody
命令

vim /cks/docker/Dockerfile

截图
k8s学习-CKS真题-Dockerfile和deployment优化_第1张图片

deployment.yaml

标签改为一样的
安全上下文配置错误

  • privileged改为false
  • readOnlyRootFilesystem改为true

命令

vim /cks/docker/deployment.yaml

截图
k8s学习-CKS真题-Dockerfile和deployment优化_第2张图片

参考

Docker-Dockerfile学习
k8s学习-Deployment(模板、更新、扩缩容、回滚等)
为 Pod 或容器配置安全上下文

更多k8s相关内容,请看文章:k8s学习-思维导图与学习笔记

你可能感兴趣的:(kubernetes,学习,docker)