Я попытался настроить PodSecurityPolicy в кластере 1.10.1, установленном на ubuntu 16.04 с помощью kubeadm, выполнил инструкции на https://kubernetes.io/docs/concepts/policy/pod-security-policy/
Поэтому я изменил манифест apiserver на мастере на /etc/kubernetes/manifests/kube-apiserver.yaml
, добавив ",PodSecurityPolicy"
к --admission-control
arg
Когда я делаю это и запускаю kubectl get pods -n kube-system
, api-server не отображается в списке, очевидно, мне удалось задействовать работающий экземпляр apiserver, поскольку я получаю список всех других модулей в пространстве имен kube-system.
Я вижу, что новый контейнер докеров был запущен с контроллером допуска PodSecurityPolicy, и он, очевидно, обслуживает запросы kubectl.
Когда я проверяю логи kubelet с помощью journalctl -u 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, создал роль кластера и привязку и подтвердил, что PSP работает.
Просто не уверен, почему apiserver kubelet выдает эту ошибку и, следовательно, не отображается в списке модулей, можно было бы подумать, что kubelet создает этот модуль, и не уверен, что мне нужно создать привязку ролей для apiserver, диспетчера контроллеров, планировщика и куба. DNS
Нет документов, указывающих, как с этим справиться, я предполагаю, что это ситуация с курицей и яйцом, когда мне нужно загрузить кластер, добавить некоторые PSP, ClusterRoles и ClusterRolebindings, прежде чем я смогу изменить аргумент управления доступом для сервера api
У кого-нибудь есть такая же проблема или есть какие-либо указатели на это?
Спасибо, Пэт