统信UOS怎么安装Kubernetes_统信UOS K8s集群部署安装方法【高级】

云丽酱_4389

云丽酱_4389

2026-03-28

764人浏览

原创

统信uos部署kubernetes需系统级调优、内核参数配置、容器运行时适配、离线镜像支持及网络插件定制:一、禁用firewalld/ufw、swap、selinux,调高文件描述符;二、启用bridge-nf-call-iptables、ip转发及br_netfilter、ipvs模块;三、推荐docker二进制或containerd;四、使用uos官方apt源或离线导入镜像;五、kubeadm init指定cgroup驱动与国内镜像仓库,部署flannel/calico;六、统一主机名与hosts解析。

统信uos怎么安装kubernetes_统信uos k8s集群部署安装方法【高级】

如果您在统信UOS系统上尝试部署Kubernetes集群,但遭遇初始化失败、组件无法拉取或网络插件不生效等问题,则很可能是由于基础环境未按K8s硬性要求调优所致。以下是针对UOS平台的高级部署方法,覆盖多源适配、离线支持与内核级兼容性处理:

一、系统级强制调优:关闭干扰服务与资源限制

UOS默认启用的防火墙(firewalld或ufw)、Swap分区及SELinux策略会直接导致kubelet启动异常或Pod调度失败,必须彻底禁用并持久化。

1、执行命令停用并禁用防火墙服务:
systemctl disable --now firewalld
若系统使用ufw,则运行:ufw disable

2、临时关闭Swap并注释其挂载项:
swapoff -a
sed -i '/ swap / s/^\(.*\)$/#\1/g' /etc/fstab

3、永久禁用SELinux(适用于UOS Server版):
setenforce 0
sed -i 's/^SELINUX=.*/SELINUX=disabled/' /etc/selinux/config

4、配置系统资源上限,避免节点因文件描述符不足拒绝Pod调度:
cat > /etc/security/limits.conf
* soft nofile 655360
* hard nofile 131072
* soft nproc 655350
* hard nproc 655350
* soft memlock unlimited
* hard memlock unlimited
EOF

二、内核参数与模块加载:满足K8s网络与调度底层依赖

Kubernetes依赖bridge-nf-call-iptables、IP转发及IPVS内核模块实现Service流量转发与负载均衡,UOS默认未启用这些功能,需手动加载并持久化。

1、创建内核参数配置文件:
cat > /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
net.ipv4.ip_forward = 1
EOF

2、应用配置并验证:
sudo sysctl --system
sysctl net.bridge.bridge-nf-call-iptables

3、若提示cannot stat /proc/sys/net/bridge/bridge-nf-call-iptables,则加载br_netfilter模块:
modprobe br_netfilter
echo "br_netfilter" >> /etc/modules-load.d/k8s.conf

4、为支持IPVS模式,预加载必要内核模块:
cat > /etc/modules-load.d/ipvs.conf
ip_vs
ip_vs_rr
ip_vs_wrr
ip_vs_sh
nf_conntrack
EOF
systemctl enable --now systemd-modules-load.service

三、容器运行时部署:Docker二进制安装与Containerd双轨方案

UOS官方源中Docker版本陈旧且缺乏对cgroup v2的完整支持,推荐采用高稳定性的Docker二进制安装;同时提供Containerd作为替代方案,适配kubeadm 1.27+对CRI的强制要求。

1、下载并解压Docker静态二进制包:
wget https://mirrors.aliyun.com/docker-ce/linux/static/stable/x86_64/docker-20.10.9.tgz
tar xf docker-20.10.9.tgz
cp docker/* /usr/bin/

2、创建Docker systemd服务单元:
cat > /usr/lib/systemd/system/docker.service
[Unit]
Description=Docker Application Container Engine
After=network-online.target
[Service]
Type=notify
ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock
ExecReload=/bin/kill -s HUP \$MAINPID
LimitNOFILE=infinity
LimitNPROC=infinity
[Install]
WantedBy=multi-user.target
EOF

3、启用Docker服务:
systemctl daemon-reload
systemctl enable --now docker

4、若选用Containerd(推荐用于K8s 1.27+):
apt install -y containerd runc cri-tools containernetworking-plugins
mkdir -p /etc/containerd
containerd config default > /etc/containerd/config.toml
sed -i 's/SystemdCgroup = false/SystemdCgroup = true/' /etc/containerd/config.toml
systemctl enable --now containerd

四、Kubernetes组件安装:APT源+离线镜像双路径保障

国内网络环境下,直接访问kubernetes.io APT源常超时或证书校验失败,需切换至UOS官方Kubernetes仓库或使用离线镜像包,确保kubeadm、kubelet等核心组件可稳定获取。

1、启用UOS官方Kubernetes仓库:
apt-add-repository "deb [arch=amd64] https://mirrors.uniontech.com/k8s/ uos-server main"

2、安装核心组件并锁定版本防止意外升级:
apt update
apt install -y kubelet kubeadm kubectl
apt-mark hold kubelet kubeadm kubectl

3、若网络不可达,使用离线镜像包部署:
ctr -n k8s.io images import /usr/share/k8s-container-images/kube-apiserver.tar
ctr -n k8s.io images import /usr/share/k8s-container-images/kube-controller-manager.tar
ctr -n k8s.io images import /usr/share/k8s-container-images/kube-scheduler.tar
ctr -n k8s.io images import /usr/share/k8s-container-images/kube-proxy.tar
ctr -n k8s.io images import /usr/share/k8s-container-images/coredns.tar
ctr -n k8s.io images import /usr/share/k8s-container-images/pause.tar
ctr -n k8s.io images import /usr/share/k8s-container-images/etcd.tar

五、集群初始化与网络插件注入:支持Flannel与Calico双栈选择

kubeadm init默认无法自动识别UOS内核特性,需显式指定cgroup驱动与Pod CIDR,并在初始化后立即注入CNI插件,否则节点将长期处于NotReady状态。

1、配置kubelet使用systemd cgroup驱动:
echo "KUBELET_EXTRA_ARGS=--cgroup-driver=systemd" > /etc/default/kubelet
systemctl daemon-reload
systemctl restart kubelet

2、执行带CIDR与镜像仓库前缀的初始化:
kubeadm init \
  --pod-network-cidr=10.244.0.0/16 \
  --image-repository registry.uniontech.com/k8s
若使用社区镜像,替换为:--image-repository registry.k8s.io

3、配置kubectl访问权限:
mkdir -p $HOME/.kube
cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
chown $(id -u):$(id -g) $HOME/.kube/config

4、部署Flannel网络插件(轻量级,适配UOS内核):
curl -sSL https://raw.githubusercontent.com/flannel-io/flannel/master/Documentation/kube-flannel.yml | sed 's/quay.io\/flannel/registry.uniontech.com\/flannel/g' | kubectl apply -f -

5、或部署Calico(需先启用IPVS模块):
curl -sSL https://raw.githubusercontent.com/projectcalico/calico/v3.26/manifests/calico.yaml | sed 's/image: quay.io\/calico/image: registry.uniontech.com\/calico/g' | kubectl apply -f -

六、节点加入与主机名一致性校验:规避DNS与证书绑定故障

UOS节点若未正确配置hostname与/etc/hosts映射,会导致kubeadm join阶段证书校验失败或API Server连接超时,必须在所有节点执行统一命名与静态解析。

1、设置唯一主机名(主节点设为control,工作节点设为node1、node2等):
hostnamectl set-hostname control

2、编辑全局hosts文件,确保所有节点能互相解析:
cat > /etc/hosts
192.168.15.58 control
192.168.15.59 node1
192.168.15.60 node2
EOF

3、重启network服务或执行systemctl restart systemd-hostnamed确保生效

4、在工作节点执行join命令前,确认已同步上述全部基础配置(含内核参数、swap关闭、模块加载)

PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

相关标签:

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
curl_exec
curl_exec

curl_exec函数是PHP cURL函数列表中的一种,它的功能是执行一个cURL会话。给大家总结了一下php curl_exec函数的一些用法实例,这个函数应该在初始化一个cURL会话并且全部的选项都被设置后被调用。他的返回值成功时返回TRUE, 或者在失败时返回FALSE。

2023.06.14

3603

6

linux常见下载安装工具
linux常见下载安装工具

linux常见下载安装工具有APT、YUM、DNF、Snapcraft、Flatpak、AppImage、Wget、Curl等。想了解更多linux常见下载安装工具相关内容,可以阅读本专题下面的文章。

2023.10.30

815

4

堆和栈的区别
堆和栈的区别

堆和栈的区别:1、内存分配方式不同;2、大小不同;3、数据访问方式不同;4、数据的生命周期。本专题为大家提供堆和栈的区别的相关的文章、下载、课程内容,供大家免费下载体验。

2023.07.18

5707

5

堆和栈区别
堆和栈区别

堆(Heap)和栈(Stack)是计算机中两种常见的内存分配机制。它们在内存管理的方式、分配方式以及使用场景上有很大的区别。本文将详细介绍堆和栈的特点、区别以及各自的使用场景。php中文网给大家带来了相关的教程以及文章欢迎大家前来学习阅读。

2023.08.10

2468

6

default gateway怎么配置
default gateway怎么配置

配置default gateway的步骤:1、了解网络环境;2、获取路由器IP地址;3、登录路由器管理界面;4、找到并配置WAN口设置;5、配置默认网关;6、保存设置并退出;7、检查网络连接是否正常。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2023.12.07

357

5

k8s和docker区别
k8s和docker区别

k8s和docker区别有抽象层次不同、管理范围不同、功能不同、应用程序生命周期管理不同、缩放能力不同、高可用性等等区别。本专题为大家提供k8s和docker区别相关的各种文章、以及下载和课程。

2023.07.24

725

4

docker进入容器的方法有哪些
docker进入容器的方法有哪些

docker进入容器的方法:1. Docker exec;2. Docker attach;3. Docker run --interactive --tty;4. Docker ps -a;5. 使用 Docker Compose。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2024.04.08

5499

6

docker容器无法访问外部网络怎么办
docker容器无法访问外部网络怎么办

docker 容器无法访问外部网络的原因和解决方法:配置 nat 端口映射以将容器端口映射到主机端口。根据主机兼容性选择正确的网络驱动(如 host 或 overlay)。允许容器端口通过主机的防火墙。配置容器的正确 dns 服务器。选择正确的容器网络模式。排除主机网络问题,如防火墙或连接问题。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2024.04.08

6517

6

docker镜像有什么用
docker镜像有什么用

docker 镜像是预构建的软件组件,用途广泛,包括:应用程序部署:简化部署,提高移植性。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2024.04.08

2513

7

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
热门推荐
/
最新课程
phpStudy极速入门视频教程
phpStudy极速入门视频教程

共6课时 | 54.7万人学习

独孤九贱(4)_PHP视频教程
独孤九贱(4)_PHP视频教程

共89课时 | 133.7万人学习