原生节点镜像介绍
原生节点(TKE Housekeeper)镜像基于腾讯云 TencentOS 3.1 发行版提供,内核 LTS 版本为5.4.241。通过深度整合 Kubernetes 与腾讯自研如意、悟净底层内核能力,在资源利用率、隔离性和性能方面均有显著优化。
镜像支撑方:容器团队和 TencentOS 研发团队共同支持。
原生节点内核/发行版更新项
5.4.241-19-0017.1_plus
更新日期:2024年6月
常规更新:
更新内核 LTS 版本,从 5.4.119 升级至 5.4.241。
async fork support:进程的第3、4级页表异步拷贝,用于 fork 加速。
unprivileged overlay mounts(overlayfs 支持 docker in docker 的场景)。
如意(混部)模块:
支持 CPU、内存、IO、网络多种资源进行不同 QoS 级别的隔离。
优化 CPU cgroup 使用率统计算法,统计更准确。
支持容器资源视图隔离。
悟净(内存压缩)模块:
更精细的 kmem 统计(字节粒度),上游 object cgroup backport。
基于 object cgroup 实现 zram 粒度的统计功能。
基于 cgroup 粒度的 zram 统计功能,实现了 cgroup 可以设置独立的压缩算法、压缩限制。
基于自研 workingset 算法,可以精确估算文件页的有效节省量。
隔离容器 swap 行为能力:内核开启 swap 后,可以对部分容器隔离 swap 设备的感知。
添加 PSI cgroup v1 support。
提供异步回收 async clean dying memcgs 的功能。
上游 multi-gen LRU backport。
关键内核参数说明
注意事项:
部分参数(如 kernel.threads-max )会基于机器规格进行动态计算,算法可能有微调,实际结果差距不大,在表中不予展示。如需查看,可以登录机器后通过命令
sysctl <参数名称>查看。修改内核参数可能导致系统不稳定,建议在测试环境验证后再在生产环境操作。
关键参数对比如下:
参数名称 | TencentOS 3.1 | 原生节点 | 说明 | 差异原因 |
kernel.random.entropy_avail | 3780 | 256 | 内核差异 patch [random: use symbolic constants for crng_init states] | 内核差异 patch |
kernel.random.poolsize | 4096 | 256 | 内核差异 patch [random: use symbolic constants for crng_init states] | 内核差异 patch |
kernel.random.read_wakeup_threshold | 64 | - | 内核差异 patch [random: use symbolic constants for crng_init states] | 内核差异 patch |
kernel.random.write_wakeup_threshold | 896 | 256 | 内核差异 patch [random: use symbolic constants for crng_init states] | 内核差异 patch |
kernel.watchdog_thresh | 10 | 60 | 内核出现软、硬死锁后,watchdog触发整机重启的时间阈值 | 对业务无影响 |
net.core.bpf_jit_limit | 398458880 | 796917760 | 内核差异 patch [bpf: Adjust insufficient default bpf_jit_limit] | 内核差异 patch |
net.ipv4.ip_local_reserved_ports | 60001-60002 | - | 新版本无需设置 | 该参数只需要 master 节点配置,worker 节点不需要。原生节点不配置无影响 |
net.ipv4.tcp_fastopen_blackhole_timeout_sec | 3600 | 0 | 内核差异 patch [tcp: disable TFO blackhole logic by default] | 禁用黑洞检测。对业务无影响。 |
net.ipv4.tcp_slow_start_after_idle | 0 | 1 | TS3.1 中做了修改 ,非镜像默认值 /etc/sysctl.conf | 调整回默认值1。该字段业务可自行调整。 |
net.ipv6.neigh.default.gc_thresh3 | 4096 | 1024 | 无 | ipv6 参数,对业务无影响。ipv4 的 gc 阈值可根据情况调大。 |
kernel.cpu_qos kernel.cpu_qos_ht_isolate kernel.cpu_qos_latency_diff kernel.cpu_qos_latency_gran kernel.cpu_qos_latency_recoup kernel.cpu_qos_recoup_granularity_ns kernel.cpu_qos_remove_bt_load kernel.cpu_qos_tick_gran kernel.cpu_qos_tick_granularity_ns | 不支持 | 支持 | 如意(混部)CPU 隔离相关参数 | 内核增强,无影响 |
kernel.sched_bt_load_balance_interval_max_mskernel.sched_bt_load_balance_interval_min_mskernel.sched_bt_migration_cost_ns | 不支持 | 支持 | 如意(混部)CPU 隔离相关参数 | 内核增强,无影响 |
vm.memory_qos vm.clean_dying_memcg_async vm.clean_dying_memcg_threshold vm.compaction_proactiveness vm.force_swappiness kernel.async_mem_free_pages vm.memcg_latency_histogram vm.memcg_page_cache_hit vm.memory_exp_reclaim vm.page_reporting_enable vm.page_reporting_supported vm.qos_highest_reclaim_prio vm.qos_prio_reclaim_ratio vm.pagecache_limit_retry_times kernel.allow_memcg_migrate_ignore_blkio_bind | 不支持 | 支持 | 如意(混部)内存隔离相关参数 | 内核增强,无影响 |
kernel.io_qos kernel.io_cgv1_buff_wb | 不支持 | 支持 | 如意(混部) IO 隔离相关参数 | 内核增强,无影响 |
net.core.net_qos net.ipv4.ip_local_port_ratio | 不支持 | 支持 | 如意(混部)网络隔离相关参数 | 内核增强,无影响 |
| | | | |
vm.wujing_enable | 不支持 | 支持 | 悟净(内存压缩)相关参数 | 内核增强,无影响 |
kernel.oops_limit | - | 10000 | 在 oops 多少次后内核会触发 panic | - |
net.netfilter.nf_conntrack_tcp_be_liberal | 0 | 0 | 社区功能,参数值为0或1。 0:表示关闭,所有不在TCP 窗口中的包都被标记为无效。 1:表示开启,只有不在 TCP 窗口内的包被标记为无效。容器场景下,开启这个参数可以避免 NAT 过的 TCP 连接带宽受限。 | - |