Kubespray 国内安装k8s集群
|> [!attention]
部署节点建议使用 k8s 集群完的节点
| 主机名 | IP | 配置信息 | 系统 | 内核 |
|---|---|---|---|---|
| console | 192.168.10.100 | CPU: 4C 内存: 8GB 磁盘: 500GB | AlmaLinux 9.6 | 6.1.147 |
| test-master-101 | 192.168.10.101 | CPU: 4C 内存: 8GB 磁盘: 500GB | AlmaLinux 9.6 | 6.1.147 |
| test-worker-102 | 192.168.10.102 | CPU: 16 C 内存: 64 GB 磁盘: 500GB | AlmaLinux 9.6 | 6.1.147 |
| test-worker-103 | 192.168.10.103 | CPU: 16 C 内存: 64 GB 磁盘: 500 GB | AlmaLinux 9.6 | 6.1.147 |
| test-worker-104 | 192.168.10.104 | CPU: 16 C 内存: 64 GB 磁盘: 500 GB | AlmaLinux 9.6 | 6.1.147 |
1 准备环境
1.1 节点
1 | # cat <<EOF > /etc/sysctl.d/k8s.conf |
1 | mkdir -p /data/server/kubespray |
1.2 获取离线资源
1 | docker-compose up -d |
1.2.1 二进制包
Info
Wget -x 会根据远程文件的 URL 路径,在本地创建完整的目录结构。
这里使用 dufs 当做 webdav 服务, 数据目录存放在 /data/server/dufs/data
1 | # 执行以下命令将依赖的静态文件全部下载到 temp/kubespray 目录下 |
1.2.2 容器镜像
Info
${image#*/},Shell 参数扩展语法,移除镜像名称中第一个/及其之前的所有字符
1 | cd /data/server/kubespray/kubespray-2.28.0/temp |
2 配置 Kubespray
2.1 节点配置
1 | cd /data/server/kubespray/kubespray-2.28.0 |
2.2 k8s 配置
此文件修改以下内容
1 | cat group_vars/k8s_cluster/k8s-cluster.yml |
2.3 Containerd 配置
Attention
当前部署脚本使用的 containerd 2.x, 导致以前的私有库配置不生效
参考: Issue #12296
需要每个节点手动添加 /root/.docker/config.json,pull镜像使用的nerdctl, 提前 login
手动批量登录
ansible -i k8s host-all -m command -a "nerdctl login --insecure-registry hjq-registry.bluethink.cn: 80 -u ccops -p 1123 "
手动批量替换
ansible -i k8s redis -m command -a “sed -i ‘s/registry.bluethink.cn:80/registry.bluethink.cn/g’ /root/.docker/config.json”
1 |
|
2.3.1 配置私有库
1 | cat group_vars/all/containerd.yml |
2.3.2 Calico 配置
1 | cat group_vars/k8s_cluster/k8s-net-calico.yml |
2.4 配置离线安装
1 | cat group_vars/all/offline.yml |
3 部署集群
1 | # ansible-playbook -i inventory/test_cluster/inventory.ini reset.yml -b # 重置k8s集群 |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 OpsCC!








