从《Kubernetes实践入门》的写作中学习,本文章简要介绍了初学者入门Kubernetes的安全性章节

背景:

我个人认为除了了解基础设施的知识外,我希望能够搭建和部署应用程序的环境,并在未来获得更多相关知识。我还希望能够进一步更新自己的知识。

我在其中遇见这本书,希望将来能够慢慢留下一些所做的事情,并将其作为写给未来自己的信,希望能重新审视它们。

这是我自己在学习时使用的书籍的引用和参考介绍。

关于实际的学习

在閱讀書籍的同時,我希望能夠逐章節地進行一點一點地學習。同時,我也想利用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等核心要点。

我希望在这次的宣言中也能够融入这样的精髓,并且逐渐实现它。

之前的发布

    1. 初学者的Kubernetes入门(从书籍《Kubernetes实践入门》进行学习)Pod部分

 

    1. 初学者的Kubernetes入门(从书籍《Kubernetes实践入门》进行学习)Namespace部分

 

    1. 初学者的Kubernetes入门(从书籍《Kubernetes实践入门》进行学习)Label部分

 

    1. 初学者的Kubernetes入门(从书籍《Kubernetes实践入门》进行学习)ReplicaSet部分

 

    1. 初学者的Kubernetes入门(从书籍《Kubernetes实践入门》进行学习)Deployment部分

 

    1. 初学者的Kubernetes入门(从书籍《Kubernetes实践入门》进行学习)Service部分

 

    1. 初学者的Kubernetes入门(从书籍《Kubernetes实践入门》进行学习)ConfigMap部分

 

    1. 初学者的Kubernetes入门(从书籍《Kubernetes实践入门》进行学习)Secret部分

 

    1. 初学者的Kubernetes入门(从书籍《Kubernetes实践入门》进行学习)操作部分

 

    1. 初学者的Kubernetes入门(从书籍《Kubernetes实践入门》进行学习)体验部分

 

    1. 初学者的Kubernetes入门(从书籍《Kubernetes实践入门》进行学习)体验部分2

 

    1. 初学者的Kubernetes入门(从书籍《Kubernetes实践入门》进行学习)体验部分3(Label操作)

 

    1. 初学者的Kubernetes入门(从书籍《Kubernetes实践入门》进行学习)体验部分3(OwnerReference操作)

 

    1. 初学者的Kubernetes入门(从书籍《Kubernetes实践入门》进行学习)清单部分

 

    1. 初学者的Kubernetes入门(从书籍《Kubernetes实践入门》进行学习)清单(ConfigMap)部分

 

    1. 初学者的Kubernetes入门(从书籍《Kubernetes实践入门》进行学习)通信部分

 

    1. 初学者的Kubernetes入门(从书籍《Kubernetes实践入门》进行学习)通信部分2

 

    1. 初学者的Kubernetes入门(从书籍《Kubernetes实践入门》进行学习)通信部分3

 

    1. 初学者的Kubernetes入门(从书籍《Kubernetes实践入门》进行学习)通信部分4

 

    1. 初学者的Kubernetes入门(从书籍《Kubernetes实践入门》进行学习)公开部分1(NodePort)

 

    1. 初学者的Kubernetes入门(从书籍《Kubernetes实践入门》进行学习)公开部分2(LoadBalancer)

 

    1. 初学者的Kubernetes入门(从书籍《Kubernetes实践入门》进行学习)公开部分3(Ingress)

 

    1. 初学者的Kubernetes入门(从书籍《Kubernetes实践入门》进行学习)外部存储部分

 

    1. 初学者的Kubernetes入门(从书籍《Kubernetes实践入门》进行学习)外部存储部分2

 

    1. 初学者的Kubernetes入门(从书籍《Kubernetes实践入门》进行学习)StatefulSet部分

 

    1. 初学者的Kubernetes入门(从书籍《Kubernetes实践入门》进行学习)StatefulSet部分2

 

    1. 初学者的Kubernetes入门(从书籍《Kubernetes实践入门》进行学习)StatefulSet部分3

 

    1. 初学者的Kubernetes入门(从书籍《Kubernetes实践入门》进行学习)扩容部分

 

    1. 初学者的Kubernetes入门(从书籍《Kubernetes实践入门》进行学习)Mattermost连接部分

 

    1. 初学者的Kubernetes入门(从书籍《Kubernetes实践入门》进行学习)Job部分

 

    1. 初学者的Kubernetes入门(从书籍《Kubernetes实践入门》进行学习)稳定性部分

 

    初学者的Kubernetes入门(从书籍《Kubernetes实践入门》进行学习)稳定性部分2
广告
将在 10 秒后关闭
bannerAds