银河麒麟系统部署K3s需预检并禁用SELinux、firewalld、Swap,规范主机名;推荐使用Rancher中国镜像源安装;可选Docker替代containerd;离线环境需提前准备二进制与pause镜像;多节点加入时须统一TLS SAN及hosts解析。

如果您在银河麒麟操作系统上部署K3s时遇到兼容性问题、服务启动失败或集群状态异常,则可能是由于SELinux策略、防火墙残留规则、Swap未彻底禁用或主机名不符合Kubernetes DNS规范所致。以下是针对麒麟OS环境的K3s安装与配置进阶方法:
一、系统环境预检与加固
麒麟OS(尤其是V10 SP1及后续版本)默认启用SELinux与firewalld,且部分镜像源未适配K3s依赖组件,需在安装前完成标准化清理。该步骤确保内核模块加载、证书生成及容器运行时初始化无阻塞。
1、检查并设置合规主机名:执行 hostnamectl set-hostname k3s-master-01,随后退出终端并重新登录以刷新环境变量。
2、永久禁用SELinux:执行 sed -i 's/^SELINUX=enforcing$/SELINUX=disabled/' /etc/selinux/config,并立即执行 setenforce 0 生效当前会话。
3、卸载并屏蔽firewalld:执行 yum remove -y firewalld && systemctl disable firewalld,避免iptables规则干扰K3s内置网络插件。
4、彻底关闭Swap:执行 swapoff -a,并编辑 /etc/fstab,将含 swap 的行前添加 # 注释。
二、国内镜像加速安装(推荐)
直接调用官方 https://get.k3s.io 脚本在麒麟OS下常因网络策略导致pause镜像拉取超时或k3s二进制下载中断。使用Rancher中国镜像源可绕过DNS污染与连接重置问题。
1、执行国产化适配安装命令:curl -sfL https://rancher-mirror.rancher.cn/k3s/k3s-install.sh | INSTALL_K3S_MIRROR=cn sh -
2、验证服务状态:执行 systemctl is-active k3s,返回 active 表示守护进程已就绪。
3、确认API Server监听:执行 ss -tlnp | grep ':6443',应显示 k3s-server 进程绑定于 0.0.0.0:6443。
三、容器运行时替换为Docker(可选)
麒麟OS默认未预装containerd,而K3s内置containerd可能与麒麟内核模块存在cgroup v2兼容性问题。切换至Docker可提升镜像层复用率与日志稳定性。
1、安装Docker CE:执行 yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo,随后 yum install -y docker-ce。
2、启用Docker服务:执行 systemctl enable --now docker,并验证 docker info | grep "Cgroup Driver" 输出为 cgroupfs。
3、重装K3s并指定Docker:执行 curl -sfL https://rancher-mirror.rancher.cn/k3s/k3s-install.sh | INSTALL_K3S_MIRROR=cn sh -s - --docker。
四、离线环境单节点部署
在无外网访问的麒麟OS生产环境中,需预先下载K3s二进制、pause镜像及依赖chart包,避免安装过程触发网络请求。
1、准备离线资源包:在联网机器执行 curl -sfL https://rancher-mirror.rancher.cn/k3s/k3s-install.sh > k3s-install.sh,并下载对应版本二进制至 /usr/local/bin/k3s。
2、导入pause镜像:从麒麟OS兼容镜像仓库拉取 registry.cn-hangzhou.aliyuncs.com/google_containers/pause:3.6,保存为tar包后拷贝至目标机,执行 ctr -n k8s.io images import pause.tar。
3、启用离线安装模式:执行 INSTALL_K3S_SKIP_DOWNLOAD=true /usr/local/bin/k3s server --disable-agent 启动控制平面。
五、多节点集群加入(麒麟OS混合架构)
当主节点为麒麟OS、工作节点为其他Linux发行版时,需统一TLS SAN与节点标识,防止kubelet证书校验失败。
1、提取主节点token:在麒麟OS主节点执行 cat /var/lib/rancher/k3s/server/token,获取形如 K10abc...::server:xyz 的字符串。
2、配置worker节点hosts解析:在所有工作节点的 /etc/hosts 中添加主节点IP与主机名映射,例如 192.168.10.5 k3s-master-01。
3、执行加入命令:在工作节点运行 curl -sfL https://rancher-mirror.rancher.cn/k3s/k3s-install.sh | K3S_URL=https://k3s-master-01:6443 K3S_TOKEN=K10abc... sh -。

















