[转帖]k8s 修改 pod 内容器内核参数

k8s,修改,pod,内容,内核,参数 · 浏览次数 : 0

小编点评

**容器的本质是一个进程,共享宿主机的内核。** **原理解释:** 修改宿主机的内核参数容器中也会改,因为内核参数是内核本身的一部分。然而,实际情况并非如此,容器的内核参数可以和宿主机不同。 **docker 修改内核参数的步骤:** 1. 创建一个容器,使用 `--sysctl`选项设置内核参数。 2. 使用 `pod` 的 `initContainers`属性设置内核参数。 **initContainers 的属性:** * `command`:设置内核参数的命令。 * `image`:设置内核参数的镜像。 * `resources`:设置内核参数的资源限制。 * `securityContext`:设置内核参数的安全上下文。 **示例:** ```yaml initContainers: - command: sysctl -a |grep -E \\'kernel.msgmnb|kernel.msgmni|kernel.msgmax|kernel.shmmax|kernel.sem' image: busybox:1.27 name: init-sysctl securityContext: privileged: true - command: - /bin/sh -c "- | ulimit -n 65536; mount -o remount rw /sys; echo never > /sys/kernel/mm/transparent_hugepage/enabled; mount -o remount rw /proc/sys; echo 2000 > /proc/sys/net/core/somaxconn; echo 1 > /proc/sys/vm/overcommit_memory; image: registry.cn-beijing.aliyuncs.com/acs/busybox:v1.29.2; imagePullPolicy: IfNotPresent; name: init-redis" image: busybox:1.27 name: init-redis securityContext: privileged: true ``` **总结:** 容器的内核参数可以和宿主机不同,但使用 `pod` 的 `initContainers` 属性可以设置内核参数。

正文

https://www.cnblogs.com/leffss/p/14832023.html

 

容器的本质是一个进程,共享宿主机的内核。原以为修改了宿主机的内核参数容器中也会改,但实际上并不是这样,容器的内核参数可以和宿主机不同。

docker 修改内核参数

docker run -it --rm --sysctl net.core.somaxconn=65535 busybox cat /proc/sys/net/core/somaxconn

多个参数:

docker run -itd --restart=always --net=host \
--name=centos01 --hostname=centos01 \
--sysctl kernel.msgmnb=13107200 \
--sysctl kernel.msgmni=256 \
--sysctl kernel.msgmax=65536 \
--sysctl kernel.shmmax=69719476736 \
--sysctl kernel.sem='500 256000 250 1024' \
-v /mnt:/update \
centos /bin/bash
 
 
docker exec centos01 sysctl -a |grep -E \
'kernel.msgmnb|kernel.msgmni|kernel.msgmax|kernel.shmmax|kernel.sem'

kubernetes 修改内核参数

使用 pod 的 initContainers:

      initContainers:
      - command:
        - sysctl
        - -w
        - net.ipv4.tcp_keepalive_time=180
        image: busybox:1.27
        name: init-sysctl
        securityContext:
          privileged: true

或者

      initContainers:
      - command:
        - /bin/sh
        - -c
        - |
          ulimit -n 65536
          mount -o remount rw /sys
          echo never > /sys/kernel/mm/transparent_hugepage/enabled
          mount -o remount rw /proc/sys
          echo 2000 > /proc/sys/net/core/somaxconn
          echo 1 > /proc/sys/vm/overcommit_memory
        image: registry.cn-beijing.aliyuncs.com/acs/busybox:v1.29.2
        imagePullPolicy: IfNotPresent
        name: init-redis
        resources: {}
        securityContext:
          privileged: true
          procMount: Default

与[转帖]k8s 修改 pod 内容器内核参数相似的内容:

[转帖]k8s 修改 pod 内容器内核参数

https://www.cnblogs.com/leffss/p/14832023.html 容器的本质是一个进程,共享宿主机的内核。原以为修改了宿主机的内核参数容器中也会改,但实际上并不是这样,容器的内核参数可以和宿主机不同。 docker 修改内核参数 docker run -it --rm -

[转帖]k8s containerd私有仓库配置及常用命令

containerd相关 一、修改containerd配置文件,添加私有仓库配置 查看containerd的默认配置 containerd config default k3s集群配置文件位置: /etc/rancher/k3s/registries.yaml /var/lib/rancher/k3

[转帖]k8s证书永不过期

https://www.cnblogs.com/fengzi7314/p/15909220.html 第一步,在github上下载对应的版本,我的是1.22版本,所以选的是1.22版本 第二步,下载到本地解压 第三步,进入目录编辑文件,修改为100年 cd kubernetes-1.22.0/ vi

[转帖]k8s对接ceph,ceph-csi方式

1.上传ceph-csi-yaml和ceph-csi-image 两个文件夹到服务器 2.加载 ceph-csi-image里面的镜像 3.将加载好的镜像上传到本地harbor上。 4.修改ceph-csi-yaml文件夹里面的 yaml文件内容 k8s对接ceph离线安装包 #csi-config

[转帖]重写Nacos服务发现逻辑动态修改远程服务IP地址

https://www.cnblogs.com/changxy-codest/p/14632574.html 背景 还是先说下做这个的背景,开发环境上了K8S,所有的微服务都注册在K8S内的Nacos,注册地址为K8S内部虚拟IP,K8S内的服务之间相互调用没有问题,但是本机开发联调调用其他微服务就

[转帖]Kafka-Kraft 模式架构部署

news文章来源: Kafka-Kraft 模式架构部署 Kafka网址:https://kafka.apache.org/ PS:因环境原因此文档内端口都有修改! 1.去官网下载二进制包 PS:3.4.0是目前最新的版本!需要jdk1.8及以上版本启动。 [root@k8s-node1 ~]# w

[转帖]k8s发布Spring cloud+eureka架构服务优雅启动停止方案

本文转载自昆仑枫的简书https://www.jianshu.com/p/6d393cbb694a Spring cloud+eureka是目前微服务主流解决方案之一,kubernetes则是广泛应用的发布工具,两者结合使用很常见。而两者结合时如何优雅启停从而实现无感发布很关键。下面将从不做特殊处理

[转帖]K8S部署Redis Cluster集群(三主三从模式) - 部署笔记

https://www.cnblogs.com/cheyunhua/p/15619317.html 一、Redis 介绍 Redis代表REmote DIctionary Server是一种开源的内存中数据存储,通常用作数据库,缓存或消息代理。它可以存储和操作高级数据类型,例如列表,地图,集合和排序

[转帖]k8s部署有状态应用redis-cluster集群踩坑总结

https://segmentfault.com/a/1190000039196137 redis-cluster集群的部署网上一堆,用k8s部署也不在少数,但都是抄来抄去,问题不少,实际操作分享出来的还是太少。 1、redis启动配置文件,使用CofigMap来管理比较方便,redis-confi

[转帖]k8s-mtu设置不当引发的线上故障

https://www.cnblogs.com/zisefeizhu/p/16611626.html 背景 在部署新的paas平台线上环境时,突发consul和es中间件无法创建。 排查过程 以consul 通过查询k8s集群中pod状态发现原来3pod的consul集群,其中2个pod一直重启。