kubernetes 如何应用sysctl -w net.ipv4.ping_group_range?GCP K8

d6kp6zgx  于 2023-10-17  发布在  Kubernetes
关注(0)|答案(1)|浏览(100)

我有一个应用程序,从GCP K8的自动驾驶运行的IP地址。
我尝试设置下面的第一,但它原来GCP K8的自动驾驶禁用该权限,如果你添加它。

securityContext:
    capabilities:
      add: ["NET_RAW"]

接下来,我尝试在部署文件中设置net.ipv4.ping_group_range,如下所示。

securityContext:
    runAsNonRoot: true 
    seccompProfile: 
      type: RuntimeDefault
    sysctls:
    - name: kernel.shm_rmid_forced
      value: "1"
    - name: net.ipv4.ping_group_range
      value: "0           200000000"

但上面给了我下面的错误,当我尝试部署它。

strict decoding error: unknown field "spec.template.spec.containers[0].securityContext.sysctls"

我也试过

command: ["/bin/sh"]
  args:
    - -c
    - sysctl -w net.ipv4.ping_group_range=0 2000000

在我的部署文件中,但是当容器试图启动时,这给了我一个权限被拒绝的错误。
是否可以从GCP K8 AutoPilot群集中对IP地址执行Ping操作,或者如何正确应用sysctl -w net.ipv4.ping_group_range?

13z8s7eq

13z8s7eq1#

GKE Autopilot集群始终使用Container-Optimized OS,并将containerd作为其节点映像。容器优化的OS内核在自动驾驶仪集群中被锁定,因此您无法对其执行写操作,因为它被限制为只读模式。
因此,群集禁用了为内核中的参数设置某些值的权限,因为内核已锁定。
为了根据需要修改属性,您可以使用GKE Standard Cluster,它提供了灵活性。

相关问题