Docker修改内核参数

        上回书说到已经安装了docker,这会需要修改一下docker的内核参数来开启转发功能;

一、为什么要开启转发功能呢?

        首先是br_netfilter,它的作用是将桥接的流量转发至iptables链,如果没有br_netfilter,则会出现同一node内前后pod间通讯的问题;此时,前后pod间的通讯会通过桥接形式传递导致数据没有返回,而配置net.bridge.bridge-nf-call-iptables=1,则是将桥接的通讯也去调用iptables策略;net.ipv4.ip_forward = 1的命令允许接口与接口间的转发,该配置是 Linux 内核将流量从容器路由到外部所必须的;

二、开启转发功能;
modprobe br_netfilter

此时可以看一下br_netfilter状态;

lsmod |grep br_netfilter

 三、修改内核参数;   
vim /etc/sysctl.d/docker.conf

net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
net.ipv4.ip_forward = 1      

:wq保持以后,使配置生效:

sysctl -p /etc/sysctl.d/docker.conf

四、设置开机自启动;
vim /etc/rc.sysinit

#! /bin/bash
for file in /etc/sysconfig/modules/*.modules ; do
[-x $file] && $file
done

创建 br_netfilter.modules文件

vim /etc/sysconfig/modules/br_netfilter.modules

modprobe br_netfilter

重启一下看看,是生效的;

五、重启容器;
systemctl daemon-reload && sudo systemctl restart docker

        我是chililopp,正在学习k8s,之后如果有新的总结或者体验也会发出来,如果有说的不对的地方,还请指点,十分感谢阅读!

### 修改 CentOS 中的内核参数 在 CentOS 系统中,可以通过编辑 `/etc/sysctl.conf` 文件来永久修改内核参数。以下是具体的操作方法: #### 编辑 `sysctl.conf` 文件 使用文本编辑器打开 `/etc/sysctl.conf` 文件,例如通过 Vim 进行编辑: ```bash vim /etc/sysctl.conf ``` #### 添加或修改内核参数 根据需求,在文件中添加相应的内核参数配置项。例如,可以添加以下内容[^1]: ```plaintext fs.file-max = 6815744 kernel.shmall = 2097152 kernel.shmmax = 536870912 kernel.shmmni = 4096 kernel.sem = 250 32000 100 128 net.ipv4.ip_local_port_range = 9000 65500 net.core.rmem_default = 262144 net.core.rmem_max = 4194304 net.core.wmem_default = 262144 net.core.wmem_max = 1048576 net.ipv4.tcp_wmem = 262144 262144 262144 net.ipv4.tcp_rmem = 4194304 4194304 4194304 ``` #### 应用更改 保存并关闭文件后,运行以下命令使新配置生效: ```bash sysctl -p ``` 此命令会重新加载 `/etc/sysctl.conf` 配置文件中的设置。 #### 查看当前内核参数值 如果需要查看某个特定内核参数的当前值,可以使用以下命令[^2]: ```bash sysctl 参数名 ``` 例如,要查看 `fs.file-max` 的值,可执行: ```bash sysctl fs.file-max ``` #### 注意事项 - 如果某些参数未被正确识别,请确认系统的内核版本支持这些参数。 - 对于临时调整内核参数的情况,可以直接使用 `sysctl` 命令而无需修改配置文件。例如: ```bash sysctl -w net.ipv4.ip_forward=1 ``` 这种方式仅在当前会话有效,重启后失效。 --- ### 使用 Docker 安装 Redis 并涉及内核优化的例子 当使用 Docker 在 CentOS 上部署 Redis 服务时,可能也需要对内核参数进行适当调整以提高性能。例如,按照教程[^3][^4],可以在安装过程中结合上述内核参数优化策略,确保 Redis 和操作系统之间的高效协作。 ```bash docker run -d --privileged=true \ -p 6379:6379 \ --restart always \ -v /home/redis/redis.conf:/etc/redis/redis.conf \ -v /home/redis/data:/data \ --name redis \ redis:6.0.8 --requirepass "yourpassword" ``` 在此基础上,建议进一步验证相关网络和内存管理参数是否已按需调整。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值