从《Kubernetes实践入门》的写作中学习,本文章简要介绍了初学者入门Kubernetes的安全性章节
背景:
我个人认为除了了解基础设施的知识外,我希望能够搭建和部署应用程序的环境,并在未来获得更多相关知识。我还希望能够进一步更新自己的知识。
我在其中遇见这本书,希望将来能够慢慢留下一些所做的事情,并将其作为写给未来自己的信,希望能重新审视它们。
这是我自己在学习时使用的书籍的引用和参考介绍。
![](https://cdn.silicloud.com/blog-img/blog/img/657d23fe37434c4406c2cdd9/4-0.jpg)
关于实际的学习
在閱讀書籍的同時,我希望能夠逐章節地進行一點一點地學習。同時,我也想利用GitHub的原始程式碼來學習。這一章的學習可能主要是將書籍的內容進行書寫練習……
勉强开始
代码库
请提供中文的一个选项, 并重新表达以下内容:https://github.com/kubernetes-practical-guide/examples/tree/master/ch7.3.1/manifests/mattermost
在容器内设置执行进程的用户。
-
- クラスタそのもののセキュリティのリスクとアプリケーション自体のセキュリティのリスクがある
-
- SecurityContext は Pod 全体、コンテナごとに権限を設定できる機能である
- その中で、今回は「コンテナ内でプロセスを実行するユーザを設定」する機能を使ってみる
spec:
+ securityContext:
+ runAsUser: 1000
+ fsGroup: 1000
containers:
- - image: k8spracticalguide/mattermost:4.10.2
+ - image: k8spracticalguide/mattermost:4.10.2-procps
name: mattermost
+ securityContext:
+ allowPrivilegeEscalation: false
env:
你可以确认用户正在以1000运行。
$ kubectl apply -f mattermost-deploy.yaml
deployment.apps/mattermost configured
$ kubectl exec mattermost-6fcff795d6-kswk6 ps aux
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
1000 1 0.0 0.0 4292 744 ? Ss 08:59 0:00 /bin/sh -c /mm/mm_entrypoint.sh
1000 6 0.8 1.1 503792 45268 ? Sl 08:59 0:00 ./bin/platform --config=config/config.json
1000 18 1.0 0.0 36640 2664 ? Rs 09:00 0:00 ps aux
将容器镜像修改为适用于普通用户操作的模式。
- コンテナイメージを編国して、一般ユーザで動作するようにします
WORKDIR /mm
COPY --from=downloader /mattermost /mm_entrypoint.sh ./
RUN apt-get update && apt-get install -y procps
-RUN chmod +x mm_entrypoint.sh
+RUN chmod +x mm_entrypoint.sh \
+ && groupadd -g 2000 mattermost \
+ && useradd -u 1000 -g mattermost mattermost \
+ && chown -R mattermost:mattermost ./
+USER mattermost
ENTRYPOINT /mm/mm_entrypoint.sh
spec:
- securityContext:
- runAsUser: 1000
- fsGroup: 1000
containers:
- - image: k8spracticalguide/mattermost:4.10.2-procps
+ - image: k8spracticalguide/mattermost:4.10.2-non-root
name: mattermost
securityContext:
allowPrivilegeEscalation: false
你可以确认用户正在使用Mattermost。
$ kubectl apply -f mattermost-deploy.yaml
deployment.apps/mattermost configured
$ kubectl exec mattermost-5545c76765-hmw7t ps aux
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
matterm+ 1 0.0 0.0 4292 784 ? Ss 09:12 0:00 /bin/sh -c /mm/mm_entrypoint.sh
matterm+ 6 1.4 1.3 443476 52596 ? Sl 09:12 0:00 ./bin/platform --config=config/config.json
matterm+ 28 0.0 0.0 36640 2788 ? Rs 09:13 0:00 ps aux
接下来我们将学习第7.4章。
“加强网络安全”
最终
由于安全性很重要,所以在阅读书籍的同时,我想进行这次的抄经活动,并思考其中的核心问题。
通过阅读这本书,我得到了重新思考自我关注事项的契机。我个人正在努力学习“算法的再学习”和“React”作为开发的学习补充。
因为没有任何主意,所以学习一直卡住了…
我阅读了React的文档后,感觉其中凝聚了SOLID等核心要点。
我希望在这次的宣言中也能够融入这样的精髓,并且逐渐实现它。
之前的发布
-
- 初学者的Kubernetes入门(从书籍《Kubernetes实践入门》进行学习)Pod部分
-
- 初学者的Kubernetes入门(从书籍《Kubernetes实践入门》进行学习)Namespace部分
-
- 初学者的Kubernetes入门(从书籍《Kubernetes实践入门》进行学习)Label部分
-
- 初学者的Kubernetes入门(从书籍《Kubernetes实践入门》进行学习)ReplicaSet部分
-
- 初学者的Kubernetes入门(从书籍《Kubernetes实践入门》进行学习)Deployment部分
-
- 初学者的Kubernetes入门(从书籍《Kubernetes实践入门》进行学习)Service部分
-
- 初学者的Kubernetes入门(从书籍《Kubernetes实践入门》进行学习)ConfigMap部分
-
- 初学者的Kubernetes入门(从书籍《Kubernetes实践入门》进行学习)Secret部分
-
- 初学者的Kubernetes入门(从书籍《Kubernetes实践入门》进行学习)操作部分
-
- 初学者的Kubernetes入门(从书籍《Kubernetes实践入门》进行学习)体验部分
-
- 初学者的Kubernetes入门(从书籍《Kubernetes实践入门》进行学习)体验部分2
-
- 初学者的Kubernetes入门(从书籍《Kubernetes实践入门》进行学习)体验部分3(Label操作)
-
- 初学者的Kubernetes入门(从书籍《Kubernetes实践入门》进行学习)体验部分3(OwnerReference操作)
-
- 初学者的Kubernetes入门(从书籍《Kubernetes实践入门》进行学习)清单部分
-
- 初学者的Kubernetes入门(从书籍《Kubernetes实践入门》进行学习)清单(ConfigMap)部分
-
- 初学者的Kubernetes入门(从书籍《Kubernetes实践入门》进行学习)通信部分
-
- 初学者的Kubernetes入门(从书籍《Kubernetes实践入门》进行学习)通信部分2
-
- 初学者的Kubernetes入门(从书籍《Kubernetes实践入门》进行学习)通信部分3
-
- 初学者的Kubernetes入门(从书籍《Kubernetes实践入门》进行学习)通信部分4
-
- 初学者的Kubernetes入门(从书籍《Kubernetes实践入门》进行学习)公开部分1(NodePort)
-
- 初学者的Kubernetes入门(从书籍《Kubernetes实践入门》进行学习)公开部分2(LoadBalancer)
-
- 初学者的Kubernetes入门(从书籍《Kubernetes实践入门》进行学习)公开部分3(Ingress)
-
- 初学者的Kubernetes入门(从书籍《Kubernetes实践入门》进行学习)外部存储部分
-
- 初学者的Kubernetes入门(从书籍《Kubernetes实践入门》进行学习)外部存储部分2
-
- 初学者的Kubernetes入门(从书籍《Kubernetes实践入门》进行学习)StatefulSet部分
-
- 初学者的Kubernetes入门(从书籍《Kubernetes实践入门》进行学习)StatefulSet部分2
-
- 初学者的Kubernetes入门(从书籍《Kubernetes实践入门》进行学习)StatefulSet部分3
-
- 初学者的Kubernetes入门(从书籍《Kubernetes实践入门》进行学习)扩容部分
-
- 初学者的Kubernetes入门(从书籍《Kubernetes实践入门》进行学习)Mattermost连接部分
-
- 初学者的Kubernetes入门(从书籍《Kubernetes实践入门》进行学习)Job部分
-
- 初学者的Kubernetes入门(从书籍《Kubernetes实践入门》进行学习)稳定性部分
- 初学者的Kubernetes入门(从书籍《Kubernetes实践入门》进行学习)稳定性部分2