前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >kubernetes中为容器设置内核参数

kubernetes中为容器设置内核参数

原创
作者头像
铜锣烧
发布2022-12-09 00:07:23
1.5K0
发布2022-12-09 00:07:23
举报

方式一:通过添加一个特权模式的initContainers方式实现

相关yaml可参考

代码语言:yaml
复制
apiVersion: apps/v1
kind: Deployment
metadata:
  labels:
    k8s-app: nginx
  name: nginx
  namespace: default
spec:
  selector:
    matchLabels:
      k8s-app: nginx
  template:
    metadata:
      labels:
        k8s-app: nginx
    spec:
      containers:
        - name: nginx
          image: nginx
      initContainers:
        - name: setsysctl
          image: busybox
          securityContext:
            privileged: true
          command:
            - sh
          args:
            - -c
            - |
              sysctl -w net.ipv4.tcp_tw_reuse=1
              sysctl -w net.core.somaxconn=65535
              sysctl -w net.ipv4.ip_local_port_range="30000 65535"

方式二:通过给workload的securityContext中设置sysctls参数实现

注意:此方式如果使用了非安全内核参数,必须要先修改节点的kubelet配置,增加--allowed-unsafe-sysctls字段,并允许相关非安全参数,否则创建后,pod会报错SysctlForbidden,并大量不断创建pod,可能将集群搞挂

如何配置允许不安全参数,以及哪些是安全参数,非安全参数等等,可参考官方文档:在 Kubernetes 集群中使用 sysctl

使用该方式相关yaml可参考:

代码语言:yaml
复制
apiVersion: apps/v1
kind: Deployment
metadata:
  labels:
    k8s-app: nginx
  name: nginx
  namespace: default
spec:
  selector:
    matchLabels:
      k8s-app: nginx
  template:
    metadata:
      labels:
        k8s-app: nginx
    spec:
      securityContext:
        sysctls:
          - name: net.ipv4.tcp_tw_reuse
            value: "1"
          - name: net.core.somaxconn
            value: "65535"
          - name: net.ipv4.ip_local_port_range
            value: "30000 65535"
      containers:
        - name: nginx
          image: nginx

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 方式一:通过添加一个特权模式的initContainers方式实现
  • 方式二:通过给workload的securityContext中设置sysctls参数实现
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档