首页 > 解决方案 > 安全策略 Docker Kubernetes CAP_NET_ADMIN

问题描述

我有一个问题,我不知道为什么它与 docker 一起运行,当我运行时:
docker run --cap-add NET_ADMIN --name pacman -d -p 8080:80 pacman
我的程序正在运行。但是当我用 minikube 和这个部署文件加载我的程序时:deployment.yml

apiVersion: apps/v1
kind: Deployment
metadata:
  name: pacman
spec:
  replicas: 1
  selector:
    matchLabels:
      app: pacman
  template:
    metadata:
      labels:
        app: pacman
    spec:
      containers:
      - name: pacman
        image: docker.io/kelysa/pacman:lastest
        imagePullPolicy: Always
        securityContext:
          capabilities:
            add: ["NET_ADMIN"]
        ports:
        - containerPort: 80
        resources:
            limits:
              cpu: "60"
            requests:
              cpu: 10m

我添加了相同的策略组,但我不知道为什么我的程序不起作用。我有这样的错误: WARN[0000] Can't run iptables : Error running bash command iptables -L: exit status 1. Output: iptables: Operation not supported. WARN[0000] BLOCK_NETWORK requires iptables. CAP_NET_RAW,CAP_NET_ADMIN+ capability is also required.

如果我在没有 --cap-add NET_ADMIN 的情况下运行 docker,我会遇到同样的问题,所以我添加了 NET_ADMIN,它可以在带有 dockerfile 的 docker 上运行,但它不适用于我的 deployment.yml。

请问你能帮帮我吗 ?

标签: dockersecuritykubernetesyamlminikube

解决方案


推荐阅读