33.5. 启用不安全 sysctl


集群管理员可在非常特殊的情况下允许某些不安全 sysctl,比如高性能或实时应用程序性能优化。

如果要使用不安全 sysctl,集群管理员必须在节点上单独启用它们。它们只能启用命名空间 sysctl。

您可以通过在 forbiddenSysctlsallowedUnsafeSysctls 字段中指定 Security Context Constraints 字段中的 sysctl 模式列表来控制 pod 中可以设置哪些 sysctl。

  • forbiddenSysctls 选项用来排除特定 sysctls。
  • allowedUnsafeSysctls 选项用来控制特定的需求,如高性能或实时应用程序调整。
警告

由于其不安全特性,使用不安全 sysctl 的风险是自带的,可能会导致严重问题,如容器、资源短缺或完全节点中断等严重问题。

  1. 在适当的节点配置映射文件kubeletArguments 参数中添加不安全 sysctl,如 配置节点资源 所述:

    例如:

    $ oc edit cm node-config-compute -n openshift-node
    
    ...
        kubeletArguments:
          allowed-unsafe-sysctls: 1
          - "net.ipv4.tcp_keepalive_time"
          - "net.ipv4.tcp_keepalive_intvl"
          - "net.ipv4.tcp_keepalive_probes"
    1
    添加您要使用的不安全 sysctl。
  2. 创建一个新的使用 restricted SCC 的内容并添加不安全 sysctl 的 SCC:

    ...
    allowHostDirVolumePlugin: false
    allowHostIPC: false
    allowHostNetwork: false
    allowHostPID: false
    allowHostPorts: false
    allowPrivilegeEscalation: true
    allowPrivilegedContainer: false
    allowedCapabilities: null
    allowedUnsafeSysctls: 1
    - net.ipv4.tcp_keepalive_time
    - net.ipv4.tcp_keepalive_intvl
    - net.ipv4.tcp_keepalive_probes
    ...
    metadata:
      name: restricted-sysctls 2
    ...
    1
    添加您要使用的不安全 sysctl。
    2
    为 SCC 指定新名称。
  3. 授予 pod ServiceAccount 的新 SCC 访问权限:

    $ oc adm policy add-scc-to-user restricted-sysctls -z default -n your_project_name
  4. 将不安全 sysctl 添加到 pod 的 DeploymentConfig 中。

    kind: DeploymentConfig
    
    ...
      template:
        ...
        spec:
          containers:
          ...
          securityContext:
            sysctls:
            - name: net.ipv4.tcp_keepalive_time
              value: "300"
            - name: net.ipv4.tcp_keepalive_intvl
              value: "20"
            - name: net.ipv4.tcp_keepalive_probes
              value: "3"
  5. 重启节点服务以应用更改:

    # systemctl restart atomic-openshift-node
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.