从Rocky Linux迁移到openEuler:我的K8s集群部署体验与配置差异全记录
从Rocky Linux迁移到openEuler我的K8s集群部署体验与配置差异全记录当企业级用户开始考虑从CentOS/RHEL生态转向国产化操作系统时openEuler往往成为首选。作为一个长期使用Rocky Linux部署Kubernetes集群的运维工程师最近我完成了从Rocky Linux 9到openEuler 22.03 LTS的完整迁移。这次迁移不仅涉及基础系统的变更更需要在K8s部署的每个环节识别差异点并调整配置策略。1. 系统初始化包管理生态的转换openEuler采用DNF作为默认包管理器这与Rocky Linux保持一致但软件源配置和基础组件存在显著差异。在准备K8s基础环境时我记录了以下关键操作对比1.1 软件源配置差异Rocky Linux的标准源替换sed -e s|^mirrorlist|#mirrorlist|g \ -e s|^#baseurlhttp://dl.rockylinux.org/$contentdir|baseurlhttps://mirrors.aliyun.com/rockylinux|g \ -i.bak /etc/yum.repos.d/rocky*.repoopenEuler的对应操作# 备份原有repo文件 cp /etc/yum.repos.d/openEuler.repo /etc/yum.repos.d/openEuler.repo.bak # 使用华为镜像源 sed -i s|repo.openeuler.org|mirrors.huaweicloud.com/openeuler|g /etc/yum.repos.d/openEuler.repo关键发现openEuler默认不提供EPEL仓库支持必须通过openEuler.repo而非分散的仓库文件管理源华为云镜像站提供更稳定的国内下载体验1.2 基础工具链安装在Rocky Linux中安装常用工具dnf install -y vim git net-toolsopenEuler需要额外启用EulerMaker仓库# 启用EulerMaker扩展仓库 yum install -y openeuler-release yum-config-manager --enable EulerMaker # 安装基础工具 dnf install -y vim git net-tools注意openEuler默认安装的工具链版本可能与RHEL系存在差异建议在迁移前通过dnf provides命令确认关键工具的兼容性。2. 容器运行时环境适配2.1 Docker安装路径差异Rocky Linux使用标准Docker CE仓库yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/rhel/docker-ce.repoopenEuler需要从EulerMaker获取Dockerdnf install -y docker-engine --enablerepoEulerMaker版本对比表组件Rocky Linux 9 默认版本openEuler 22.03 默认版本Docker20.10.x18.09.xcontainerd1.6.x1.4.xrunc1.1.x1.0.x2.2 CRI-Dockerd配置调整由于openEuler的内核特性CRI-Dockerd需要特殊配置# 修改服务文件 vim /usr/lib/systemd/system/cri-docker.service # 关键调整项 ExecStart/usr/bin/cri-dockerd \ --pod-infra-container-imageregistry.aliyuncs.com/google_containers/pause:3.9 \ --network-plugincni \ --cni-conf-dir/etc/cni/net.d \ --cni-bin-dir/opt/cni/bin3. Kubernetes核心组件部署3.1 kubeadm初始化配置openEuler需要特别注意的kubeadm配置差异apiVersion: kubeadm.k8s.io/v1beta3 kind: InitConfiguration localAPIEndpoint: advertiseAddress: 192.168.75.144 bindPort: 6443 nodeRegistration: criSocket: unix:///var/run/cri-dockerd.sock kubeletExtraArgs: cgroup-driver: systemd feature-gates: ExecProbeTimeouttrue --- apiVersion: kubeproxy.config.k8s.io/v1alpha1 kind: KubeProxyConfiguration mode: ipvs关键参数说明必须显式声明feature-gates以启用openEuler内核特性cgroup-driver必须与Docker配置保持一致IPVS模式需要额外内核模块加载3.2 内核模块加载差异Rocky Linux标准模块加载modprobe br_netfilteropenEuler需要额外步骤# 加载必要模块 modprobe br_netfilter modprobe overlay modprobe nf_conntrack # 持久化配置 echo br_netfilter /etc/modules-load.d/k8s.conf echo overlay /etc/modules-load.d/k8s.conf echo nf_conntrack /etc/modules-load.d/k8s.conf4. 网络与安全策略调整4.1 防火墙策略对比Rocky Linux通常直接关闭防火墙systemctl disable --now firewalldopenEuler建议保持firewalld开启但放行必要端口firewall-cmd --permanent --add-port6443/tcp firewall-cmd --permanent --add-port10250/tcp firewall-cmd --permanent --add-port8472/udp firewall-cmd --reload4.2 SELinux策略差异Rocky Linux的典型做法setenforce 0 sed -i s/^SELINUXenforcing/SELINUXpermissive/ /etc/selinux/configopenEuler的推荐配置# 安装必要策略工具 dnf install -y selinux-policy-targeted # 创建自定义K8s策略模块 audit2allow -M k8s_module /var/log/audit/audit.log semodule -i k8s_module.pp5. 性能调优实战记录5.1 内核参数优化对比Rocky Linux标准优化cat /etc/sysctl.d/k8s.conf EOF net.bridge.bridge-nf-call-ip6tables 1 net.bridge.bridge-nf-call-iptables 1 vm.swappiness 0 EOFopenEuler额外需要# 增加连接跟踪表大小 echo net.netfilter.nf_conntrack_max1000000 /etc/sysctl.d/k8s.conf # 调整虚拟内存参数 echo vm.overcommit_ratio95 /etc/sysctl.d/k8s.conf echo vm.overcommit_memory1 /etc/sysctl.d/k8s.conf5.2 存储性能优化在openEuler上部署Longhorn存储时发现的特别配置# 调整IO调度器 echo mq-deadline /sys/block/sda/queue/scheduler # 优化磁盘预读 blockdev --setra 4096 /dev/sda6. 迁移后的稳定性观察经过两周的生产环境运行记录到以下关键指标对比指标项Rocky Linux集群openEuler集群API平均响应时间128ms142msPod启动延迟2.3s2.8s节点内存开销1.2GB0.9GB内核崩溃次数00经验总结openEuler的内存管理表现出色特别适合内存受限环境网络栈性能需要额外调优建议启用bbr拥塞控制部分K8s特性需要明确启用feature-gates参数
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2490680.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!