千家信息网

kubernetes1.4中怎么使用sysctl命令

发表于:2025-02-02 作者:千家信息网编辑
千家信息网最后更新 2025年02月02日,这篇文章主要讲解了"kubernetes1.4中怎么使用sysctl命令",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"kubernetes1.4中怎么
千家信息网最后更新 2025年02月02日kubernetes1.4中怎么使用sysctl命令

这篇文章主要讲解了"kubernetes1.4中怎么使用sysctl命令",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"kubernetes1.4中怎么使用sysctl命令"吧!

sysctl是一个允许改变正在运行中的Linux系统内核参数的接口。可以通过sysctl修改Linux系统内核中的TCP/IP 堆栈和虚拟内存系统的高级选项,而且不需要重新启动Linux系统,就可以实现优化Linux系统和提高应用进程运行性能。

通过Linux系统中的/proc虚拟文件系统来实现动态配置Linux系统内核参数,在/proc/sys目录下有Linux系统绝大多数的内核参数,这些内核参数可以在Linux系统运行时进行修改,并且不需要重新启动Linux系统便可以立刻生效,但是这种修改在重新启动Linux系统后便会失效,要是想永久生效的话,需要更改配置文件/etc/sysctl.conf中相应的内核参数配置项。

可以通过下面命令获取sysctl可以操作的所有内核参数配置项和已经配置的数值:

# sysctl –a这些内核参数主要包括下面几类配置项:全局内核配置项:以"kernel."为配置项前缀,举例:kernel.shmmax = 33554432(共享内存段的最大尺寸,以字节为单位)kernel.threads-max = 139264(Linux内核所能使用的线程最大数量)网络配置项:以"net."为配置项前缀,举例:net.ipv4.ipfrag_low_thresh = 196608(用于IP分片汇聚的最小内存用量)net.ipv4.ipfrag_high_thresh = 262144(用于IP分片汇聚的最大内存用量)虚拟内存配置项:以"vm."为配置项前缀,举例:vm.swappiness = 60(减少系统对于swap频繁的写入,将加快应用程序之间的切换,有助于提升系统性能)vm.dirty_ratio = 40(该文件表示如果进程产生的废数据到达系统整体内存的百分比,此时进程自信把废数据写回磁盘)设备专用配置项:以"dev."为配置项前缀,举例:dev.raid.speed_limit_max = 200000(需要初始化同步RAID的同步最大速度限制)dev.raid.speed_limit_min = 1000(需要初始化同步RAID的同步最小速度限制)文件系统专用配置项:以"fs."为配置项前缀fs.file-max = 779703(可以分配的文件句柄的最大数目)fs.file-nr = 3930 0 779703(已分配文件句柄的数目,已使用文件句柄的数目,文件句柄的最大数目,该文件是只读的,仅用于显示信息)

容器相关内核参数

上面介绍了通过sysctl可以操作Linux系统内核参数,在这些内核参数中,有些不但是操作系统全局级别的内核参数,还是命名空间级别的内核参数。对于容器来说,是通过命名空间实现隔离的,那么就意味着这些命名空间级别的参数是容器相关的内核参数。

Linux系统命名空间的分类如下:

命名空间级别的内核参数包括:kernel.shm*(内核中共享内存相关参数),举例:kernel.shmall = 3774873(可以使用的共享内存的总量)kernel.shmmax = 15461882265(单个共享内存段的最大值)kernel.msg*(内核中SystemV消息队列相关参数)kernel.msgmnb = 16384(每个消息队列的最大字节限制)kernel.msgmni = 128(同时运行的最大的消息队列个数)kernel.sem(内核中信号量参数)kernel.sem = 250 32000 100 128(每个信号集中的最大信号量数目、系统范围内的最大信号量总数目、每个信号发生时的最大系统操作数目、系统范围内的最大信号集总数目)fs.mqueue.*(内核中POSIX消息队列相关参数)fs.mqueue. msg_max = 32678(队列里缓存的软最大消息数目)fs.mqueue. msgsize_max = 8192(最大消息长度上限)net.*(内核中网络配置项相关参数)net.ipv4.ipfrag_low_thresh = 196608(用于IP分片汇聚的最小内存用量)net.ipv4.ipfrag_high_thresh = 262144(用于IP分片汇聚的最大内存用量)

新特性

因为sysctl可以修改命名空间级别的内核参数,所以在Kubernetes1.4中通过sysctl来配置POD中Linux内核参数的功能,通过修改POD中Linux内核参数,可以优化POD性能,提升POD中容器运行效率。在Kubernetes1.4中这还是一个阿尔法特性。

修改Linux内核参数存在安全风险,修改错误很可能会降低系统性能,甚至会引起系统崩溃,所以需要谨慎对待。在Kubernetes1.4中将命名空间级别的内核参数分成了两类,一类是安全的内核参数,一类是不安全的内核参数。所谓安全的命名空间级别内核参数,就是要能够实现相同节点上不同POD之间的完全隔离,要满足如下条件:

不能对相同节点上其他POD产生任何影响不能对节点上操作系统健康造成影响不能在POD资源限制以外获取更多的CPU和内存资源根据上面三个条件可以发现,大多数的命名空间级别内核参数都不是安全的。在Kubernetes1.4中,认为下面的命名空间级别内核参数是安全的:kernel.shm_rmid_forced = 1(表示是否强制将共享内存和一个进程联系在一起,这样的话可以通过杀死进程来释放共享内存)net.ipv4.ip_local_port_range =1024 65000(表示允许使用的端口范围)net.ipv4.tcp_syncookies = 1(表示是否打开TCP同步标签,同步标签可以防止一个套接字在有过多试图连接时引起过载)

在Kubernetes以后的版本中,还会继续扩充安全的命名空间级别内核参数。在Kubernetes中,所有安全的命名空间级别内核参数默认都是启用状态的,所有不安全的命名空间级别内核参数默认都是禁用状态的,如果想设置不安全的内核参数,需要Kubernetes管理员手工启用。如果管理员没有手工启用不安全的内核参数,那么Kubernetes仍然会进行调度,将这些带有不安全内核参数的POD分配到节点上,但是这些POD在启动时会失败。

在启动kubelet时通过增加参数"experimental-allowed-unsafe-sysctls"来启用不安全的命名空间级别内核参数:

可以在POD配置文件中设置已经被启用的命名空间级别内核参数:

上面的配置文件在POD中设置了安全的命名空间级内核参数:kernel.shm_rmid_forced,并且在POD中设置了两个不安全的命名空间级内核参数:net.ipv4.route.min_pmte和kernet.msgmax。

在annotations中的"security.alpha.kubernetes.io/sysctls"参数上设置安全的命名空间级内核参数,在annotations中的"security.alpha.kubernetes.io/unsafe-sysctls"参数上设置不安全的命名空间级内核参数。

感谢各位的阅读,以上就是"kubernetes1.4中怎么使用sysctl命令"的内容了,经过本文的学习后,相信大家对kubernetes1.4中怎么使用sysctl命令这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是,小编将为大家推送更多相关知识点的文章,欢迎关注!

参数 内核 系统 配置 空间 安全 最大 内存 级别 文件 数目 信号 消息 同步 命令 前缀 进程 队列 运行 句柄 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 我的世界电脑联机服务器地址 南京伺服控制软件开发工程师 网络技术与商务应用期末考试 ns连手机热点显示服务器 网络技术保障岗待遇怎么样 公司网络安全培训教育 云服务器 网站 西安交通大学数据库期末考试 多个软件用一个数据库出现问题 宝塔面板文件上传好数据库没有表 hp 打印机服务器 山西云搜网络技术怎么样 网络技术竞赛活动后的效果评价 御银股份涉及网络安全吗 摩普网络技术有限公司 软件开发企业风险防控 服务器跑虚拟机 软件开发法律法规清单 安卓ktv软件开发 数据库怎么挂载到服务器上 编程软件开发中心 如何输出链表中第i个数据库 ns连手机热点显示服务器 环保app软件开发技术 我国的统计资料数据库 宝塔面板文件上传好数据库没有表 计算机网络技术专业主要困难 山西云搜网络技术怎么样 数据库 触发器怎么重启 小趴玩的是哪个服务器
0