gpt4 book ai didi

kubernetes - 在 kubeadm 集群上配置 PodSecurityPolicy

转载 作者:行者123 更新时间:2023-12-02 11:28:50 29 4
gpt4 key购买 nike

我尝试使用 kubeadm 在 ubuntu 16.04 上安装的 1.10.1 集群上设置 PodSecurityPolicy,并按照 https://kubernetes.io/docs/concepts/policy/pod-security-policy/ 中的说明进行操作。

所以我在 /etc/kubernetes/manifests/kube-apiserver.yaml 上更改了 master 上的 apiserver list 。
添加 ",PodSecurityPolicy"--admission-control参数

当我这样做并运行 kubectl get pods -n kube-systemapi-server 没有列出,显然我已经成功地访问了一个正在运行的 apiserver 实例,因为我得到了 kube-system 命名空间中所有其他 pod 的列表

我可以看到已经使用 PodSecurityPolicy 准入 Controller 启动了一个新的 docker 容器,它显然正在为 kubectl 请求提供服务

当我使用 journalctl -u kubelet 检查 kubelet 日志时我可以看到
Apr 15 18:14:23 pmcgrath-k8s-3-master kubelet[993]: E0415 18:14:23.087361 993 kubelet.go:1617] Failed creating a mirror pod for "kube-apiserver-pmcgrath-k8s-3-master_kube-system(46dbb13cd345f9fbb9e18e2229e2e
dd1)": pods "kube-apiserver-pmcgrath-k8s-3-master" is forbidden: unable to validate against any pod security policy: []

我已经添加了特权 PSP 并创建了集群角色和绑定(bind)并确认 PSP 正在工作

只是不确定为什么 apiserver kubelet 会出现此错误,因此不会出现在 pod 列表中,会认为 kubelet 创建了这个 pod,但不确定我是否必须为 apiserver、 Controller 管理器、调度程序和 kube-创建角色绑定(bind)- dns

没有说明如何处理这个问题的文档,我认为这是先有鸡还是先有蛋的情况,我必须引导集群,添加一些 PSP、ClusterRoles 和 ClusterRolebindings,然后才能改变 api 服务器的准入控制参数

有人有同样的问题或对此有任何指示吗?

谢谢

最佳答案

我写了一篇关于我如何弄清楚这些东西的博客文章,简短的回答是

  • 在启用 PodSecurityPolicy 准入 Controller 的主运行 kubeadm init
  • 使用 RBAC 配置添加一些 pod 安全策略 - 足以允许 CNI 和 DNS 等启动
  • 没有这个
  • 将无法启动 CNI 守护程序集
  • 通过 kubeadm join 完成集群配置添加节点
  • 当您向集群添加更多工作负载时,请检查您是否需要针对相同的 pod 安全策略和 RBAC 配置

  • https://pmcgrath.net/using-pod-security-policies-with-kubeadm

    关于kubernetes - 在 kubeadm 集群上配置 PodSecurityPolicy,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49845823/

    29 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com