不用翻墙!统信UOS+k8s 1.23.1国内镜像源极速安装教程
·
统信UOS环境下Kubernetes 1.23.1国内镜像源高效部署指南
对于国内开发者而言,在统信UOS操作系统上部署Kubernetes集群常面临镜像拉取困难、依赖配置复杂等痛点。本文将详细介绍如何利用阿里云等国内镜像源,在完全本地化环境中完成kubeadm、kubelet等核心组件的安装与配置,实现高效稳定的集群部署。
1. 环境准备与系统配置
在开始Kubernetes部署前,需要确保统信UOS系统已完成基础环境调优。不同于常规Linux发行版,UOS作为国产操作系统有其特定的配置要求。
首先需要启用开发者模式并获取root权限:
sudo passwd root
su -
关键系统配置步骤:
- 关闭防火墙避免端口冲突
systemctl stop firewalld
systemctl disable firewalld
- 禁用swap分区确保kubelet正常运行
swapoff -a
sed -i '/ swap / s/^\(.*\)$/#\1/g' /etc/fstab
- 配置网络桥接参数
cat > /etc/sysctl.d/k8s.conf <<EOF
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF
sysctl --system
注意:UOS默认使用network-manager管理网络,若遇到网络异常可尝试重启服务:
systemctl restart NetworkManager
2. 容器运行时与Kubernetes组件安装
2.1 Docker安装与配置
推荐使用二进制方式安装Docker以避免兼容性问题:
wget https://download.docker.com/linux/static/stable/x86_64/docker-20.10.9.tgz
tar xf docker-20.10.9.tgz
cp docker/* /usr/bin/
配置systemd服务单元:
cat > /usr/lib/systemd/system/docker.service <<'EOF'
[Unit]
Description=Docker Application Container Engine
After=network-online.target
[Service]
Type=notify
ExecStart=/usr/bin/dockerd
ExecReload=/bin/kill -s HUP $MAINPID
LimitNOFILE=infinity
LimitNPROC=infinity
Restart=on-failure
[Install]
WantedBy=multi-user.target
EOF
配置国内镜像加速:
{
"registry-mirrors": [
"https://b9pmyelo.mirror.aliyuncs.com",
"https://docker.mirrors.ustc.edu.cn"
]
}
2.2 Kubernetes组件安装
配置阿里云Kubernetes源:
apt-get install -y apt-transport-https ca-certificates curl
curl https://mirrors.aliyun.com/kubernetes/apt/doc/apt-key.gpg | apt-key add -
echo "deb https://mirrors.aliyun.com/kubernetes/apt/ kubernetes-xenial main" > /etc/apt/sources.list.d/kubernetes.list
apt-get update
安装指定版本组件:
apt-get install -y kubelet=1.23.1-00 kubeadm=1.23.1-00 kubectl=1.23.1-00
apt-mark hold kubelet kubeadm kubectl
3. 集群初始化与镜像处理
3.1 镜像预处理方案
由于无法直接访问k8s.gcr.io,需通过阿里云镜像仓库获取所需镜像:
- 查询所需镜像列表:
kubeadm config images list --kubernetes-version v1.23.1
- 从阿里云拉取并重命名镜像:
images=(
kube-apiserver:v1.23.1
kube-controller-manager:v1.23.1
kube-scheduler:v1.23.1
kube-proxy:v1.23.1
pause:3.6
etcd:3.5.1-0
coredns:v1.8.6
)
for image in "${images[@]}"; do
docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/${image}
docker tag registry.cn-hangzhou.aliyuncs.com/google_containers/${image} k8s.gcr.io/${image}
done
3.2 集群初始化配置
创建kubeadm配置文件:
apiVersion: kubeadm.k8s.io/v1beta3
kind: InitConfiguration
localAPIEndpoint:
advertiseAddress: <MASTER_IP>
bindPort: 6443
nodeRegistration:
criSocket: /var/run/dockershim.sock
---
apiVersion: kubeadm.k8s.io/v1beta3
kind: ClusterConfiguration
kubernetesVersion: 1.23.1
imageRepository: registry.cn-hangzhou.aliyuncs.com/google_containers
networking:
podSubnet: 192.168.0.0/16
初始化主节点:
kubeadm init --config=kubeadm-config.yaml
配置kubectl:
mkdir -p $HOME/.kube
cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
chown $(id -u):$(id -g) $HOME/.kube/config
4. 网络插件部署与节点加入
4.1 Calico网络部署
使用国内镜像源安装Calico:
curl -O https://docs.projectcalico.org/v3.21/manifests/calico.yaml
sed -i 's|docker.io/calico/|registry.cn-shanghai.aliyuncs.com/calico/|g' calico.yaml
kubectl apply -f calico.yaml
4.2 工作节点加入
在工作节点执行主节点初始化后提供的join命令:
kubeadm join <MASTER_IP>:6443 --token <TOKEN> \
--discovery-token-ca-cert-hash sha256:<HASH>
验证节点状态:
kubectl get nodes -w
5. 常见问题排查与优化
镜像拉取失败处理:
- 检查Docker镜像加速配置
- 手动拉取缺失镜像并重命名
- 验证镜像tag与Kubernetes版本匹配
节点NotReady状态排查:
- 检查kubelet服务状态:
systemctl status kubelet
journalctl -xeu kubelet
- 验证网络插件日志:
kubectl logs -n kube-system <calico-pod-name>
性能优化建议:
- 调整kubelet最大pod数量:
echo "KUBELET_EXTRA_ARGS=--max-pods=100" > /etc/default/kubelet
systemctl restart kubelet
- 配置Docker日志轮转:
{
"log-driver": "json-file",
"log-opts": {
"max-size": "100m",
"max-file": "3"
}
}
更多推荐

所有评论(0)