更新时间:2024-11-21 GMT+08:00

管理内核参数配置

CCE Autopilot是云容器引擎服务推出的Serverless版集群,同物理机系统内核隔离且互不影响。对于资深业务部署场景,内核参数调优是比较通用的方式。在安全范围内,CCE Autopilot服务允许客户根据Kubernetes社区推荐的方案,通过Pod的安全上下文(Security Context)对内核参数进行配置,极大提升用户业务部署的灵活性。如果您对securityContext概念不够熟悉,更多信息可阅读Security Context

在 Linux 中,最通用的内核参数修改方式是通过sysctl接口进行配置。在Kubernetes中,也是通过Pod的sysctl安全上下文(Security Context)对内核参数进行配置,如果您对sysctl概念不够熟悉,可阅读在 Kubernetes 集群中使用 sysctl。安全上下文(Security Context)作用于同一个Pod内的所有容器。

CCE Autopilot服务支持修改的非安全的sysctl参数范围如下:

kernel.shm*, 
kernel.msg*,    
kernel.sem, 
fs.mqueue.*, 
net.*

为了避免破坏操作系统的稳定性,请您在了解变更后果之后再修改sysctl参数。

有命名空间的sysctl参数,在未来的Linux内核版本中,可能会发生变化。

由于非安全的sysctl参数其本身具有不稳定性,在使用非安全的 sysctl 参数时可能会导致一些严重问题, 如容器的错误行为,用户需自行承担风险。

以下示例中,使用Pod SecurityContext来对两个sysctl参数kernel.msgmax和net.core.somaxconn进行设置。

apiVersion: v1
kind: Pod
metadata:
  name: sysctls-context-example
spec:
  securityContext:
    sysctls:
    - name: kernel.msgmax
      value: "65536"
    - name: net.core.somaxconn
      value: "1024"
  ...

进入容器确认配置生效:

kubectl exec -it podname -c container-1 -- /bin/sh