- 本文以 CentOS 7.8_x86 64位操作系统 为例进行讲解。
- 执行本教程中命令的用户为 root。
-
下载所需离线包
curl -LO https://oss.choerodon.com.cn/kubeadm-ha/kubeadm-ha-1.21.4-amd64.tar curl -LO https://oss.choerodon.com.cn/kubeadm-ha/docker-ce-20.10.7-amd64.tar.gz
-
点击这里查看所有离线包
ip | hostname | OS | role |
---|---|---|---|
192.168.56.11 | node1 | CentOS 7.8 | master etcd worker |
192.168.56.12 | node2 | CentOS 7.8 | master etcd worker |
192.168.56.13 | node3 | CentOS 7.8 | master etcd worker |
192.168.56.14 | node4 | CentOS 7.8 | worker |
192.168.56.15 | deploy | CentOS 7.8 | kubeadm-ha(ansible) |
注意: 以下操作未特殊说明都在 192.168.56.15
deploy 节点执行。
-
上传准备好的 2 个缓存文件至搭建 kubeadm-ha(ansible) 环境的服务器上,目录为
/root
。 -
准备 kubeadm-ha(ansible) 环境
# 解压 docker-ce-20.10.7-amd64.tar.gz mkdir docker-ce tar -xzvf docker-ce-20.10.7-amd64.tar.gz -C docker-ce # 添加本地源 cat <<EOF | tee /etc/yum.repos.d/docker-ce.repo [docker-ce-stable] name=Docker CE Stable - \$basearch baseurl=file:///root/docker-ce/ enabled=1 gpgcheck=0 repo_gpgcheck=0 EOF # 安装 docker yum install -y --disablerepo=\* --enablerepo=docker-ce-stable \ lvm2 \ device-mapper-persistent-data yum install -y --disablerepo=\* --enablerepo=docker-ce-stable \ docker-ce-20.10.7 \ docker-ce-cli-20.10.7 \ containerd.io-1.4.6 # 自定义 hosts 记录,方便后期调整 IP;IP 配置为运行 kubeadm-ha 镜像服务器的 IP # 本例中 192.168.56.15 就是运行 kubeadm-ha 镜像的服务器 echo '192.168.56.15 registry.custom.local' >> /etc/hosts # 配置 docker mkdir -p /etc/docker # data-root 为 docker 存储目录,可修改为其他非共享存储目录。 cat <<EOF | tee /etc/docker/daemon.json { "insecure-registries": ["registry.custom.local:12480"], "exec-opts": ["native.cgroupdriver=systemd"], "log-driver": "json-file", "log-opts": { "max-size": "100m" }, "data-root": "/var/lib/docker", "storage-driver": "overlay2", "storage-opts": [ "overlay2.override_kernel_check=true" ] } EOF # 启动 docker systemctl enable docker systemctl start docker # 加载 kubeadm-ha 镜像 docker load -i kubeadm-ha-1.21.4-amd64.tar
-
运行 kubeadm-ha 镜像
docker run -d --restart=always --name kubeadm-ha \ -p 12480:80 \ -v $PWD/my-cluster:/etc/ansible/my-cluster \ -v $PWD/cluster-backup:/etc/ansible/cluster-backup \ setzero/kubeadm-ha:1.21.4-amd64
-
推送镜像到已有镜像库(可选项,可跳过)
- 如果你不知道这一步可以干什么,请立即跳过
# 命令格式:sync-images 镜像库地址 镜像库用户名 镜像库用户密码 # 实例 docker exec -it kubeadm-ha \ sync-images harbor.custom.io/kubeadm-ha admin Harbor12345
- 如果你不知道这一步可以干什么,请立即跳过
-
编辑变量文件
./my-cluster/variables.yaml
,内容如下# 自定义 hosts 记录,方便后期调整 IP;IP 配置为 kubeadm-ha 镜像运行的服务器的 IP custom_hosts: "192.168.56.15": - "yum.custom.local" - "registry.custom.local" # 注意地址末尾 / 必须加上 base_yum_repo: http://yum.custom.local:12480/yum/ epel_yum_repo: http://yum.custom.local:12480/yum/ docker_yum_repo: http://yum.custom.local:12480/yum/ kubernetes_yum_repo: http://yum.custom.local:12480/yum/ # 设置信任镜像库 docker_insecure_registries: - "registry.custom.local:12480" containerd_registries: "registry.custom.local:12480": "http://registry.custom.local:12480" # 配置镜像地址 kube_image_repository: registry.custom.local:12480/kubeadm-ha
-
升级内核配置(可选项,可跳过;arm 架构暂不支持)
- 编辑
./my-cluster/variables.yaml
追加以下字段# 若需升级内核添加一下变量,不升级则不添加 kernel_centos: - http://yum.custom.local:12480/yum/kernel-lt-5.4.92-1.el7.elrepo.x86_64.rpm - http://yum.custom.local:12480/yum/kernel-lt-devel-5.4.92-1.el7.elrepo.x86_64.rpm
- 编辑
-
参考 01-集群安装 编写 ansible inventory 文件
./my-cluster/inventory.ini
。 -
执行安装
-
升级内核(可选项,可跳过;arm 架构暂不支持)
docker exec -it kubeadm-ha \ ansible-playbook -i my-cluster/inventory.ini -e @my-cluster/variables.yaml 00-kernel.yml
-
安装集群
docker exec -it kubeadm-ha \ ansible-playbook -i my-cluster/inventory.ini -e @my-cluster/variables.yaml 90-init-cluster.yml
-
注意: 以下操作未特殊说明都在 192.168.56.11
第一台 master 节点执行。
-
下载helm客户端
curl -sO http://yum.custom.local:12480/helm-v3.5.4-linux-amd64.tar.gz
-
解压压缩包(以linux-amd64为例)
tar -zxvf helm-v3.5.4-linux-amd64.tar.gz
-
将文件移动到PATH目录中(以linux-amd64为例)
sudo mv linux-amd64/helm /usr/bin/helm
-
执行命令,出现以下信息即部署成功。
$ helm version version.BuildInfo{Version:"v3.5.4", GitCommit:"1b5edb69df3d3a08df77c9902dc17af864ff05d1", GitTreeState:"dirty", GoVersion:"go1.16.3"}