管理内核参数配置
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