为 AKS 群集中的特定 Pod 设置 sysctl 参数“net.ipv4.tcp_retries2”时出错

Pra*_*ado 4 kubernetes azure-aks

我正在处理一个要求,其中我们希望将 Kubernetes POD 中的特定内核参数“net.ipv4.tcp_retries2”更新为“5”。

我们使用的是 AKS 集群 v1.21.7

我尝试使用 securityContext 设置上述 sysctl 参数但失败

  template:
    metadata:
      labels:
        app.kubernetes.io/name: weather-forecast-api
        app.kubernetes.io/instance: RELEASE-NAME
    spec:
      serviceAccountName: RELEASE-NAME-weather-forecast-api
      securityContext:
        sysctls:
        - name: net.ipv4.tcp_retries2
          value: "5"
Run Code Online (Sandbox Code Playgroud)

当我在 AKS 中应用上述更改时,pod 无法运行并给出错误

禁止的 sysctl:“net.ipv4.tcp_retries2”未列入白名单

我知道我们可以在裸机 Kubernetes 集群上的 Kubelet 级别修改内核级别设置,但就我而言,它是来自 Azure 的托管集群。

goh*_*m'c 8

使用初始化容器来设置:

...
template:
  metadata:
    labels:
      app.kubernetes.io/name: weather-forecast-api
      app.kubernetes.io/instance: RELEASE-NAME
  spec:
    serviceAccountName: RELEASE-NAME-weather-forecast-api
    initContainers:
    - name: sysctl
      image: busybox
      securityContext:
        privileged: true
      command: ["sh", "-c", "sysctl -w net.ipv4.tcp_retries2=3"]
    ...
Run Code Online (Sandbox Code Playgroud)