Я не уверен на 100%, но эта проблема может быть в пропущенном поле capabilities:
.
apiVersion: extensions/v1beta1
kind: DaemonSet
metadata:
name: my-daemon
spec:
template:
metadata:
labels:
app: my-daemon
spec:
hostNetwork: true
serviceAccountName: my-sa-account
containers:
- name: my-daemon
image: akhilerm/my-daemon:0.5
imagePullPolicy: Always
securityContext:
capabilities:
add: ["NET_BROADCAST", "NET_ADMIN", ..all CAPs..,"SYS_ADMIN"]
...
...
или
apiVersion: extensions/v1beta1
kind: DaemonSet
metadata:
name: my-daemon
spec:
template:
metadata:
labels:
app: my-daemon
spec:
hostNetwork: true
serviceAccountName: my-sa-account
containers:
- name: my-daemon
image: akhilerm/my-daemon:0.5
imagePullPolicy: Always
securityContext:
capabilities:
add:
- NET_BROADCAST
- NET_ADMIN
- ...
- SYS_ADMIN
...
...
Проверьте это и дайте мне знать, если естьлюбой успех.Если нет - я постараюсь копнуть глубже и предоставлю вам другое решение.Я нашел именно этот формат во всех примерах, поэтому надеюсь, что он поможет.В качестве реального примера я могу предоставить вам статью kubernetes-the-not-not-hard-way-with-ansible-ingress-with-traefik со следующими пояснениями:
securityContext:
capabilities:
drop:
- ALL
add:
- NET_BIND_SERVICE
Без этого параметра мы не сможем привязать Traefik к портам 80 и 443 (что в основном верно для всех служб, которые хотят использовать порты <1024).Мы также можем использовать привилегированное: true, но это значительно увеличивает поверхность атаки.Таким образом, использование возможностей Linux дает нам детальный контроль над разрешениями суперпользователя и сводит разрешения к минимуму. </p>
Или еще 1 из официальной статьи Kubernetes security-context *1018*, но на этот разКонфигурация для Pod:
apiVersion: v1
kind: Pod
metadata:
name: security-context-demo-4
spec:
containers:
- name: sec-ctx-4
image: gcr.io/google-samples/node-hello:1.0
securityContext:
capabilities:
add: ["NET_ADMIN", "SYS_TIME"]
Надеюсь, это поможет вам.