离线部署 Kubernetes 集群指南
第一步:安装 Docker
一、Docker 离线安装
1. 下载离线包
2. 安装 Docker
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35
|
tar xvf docker-20.10.9.tgz ls -l docker cp docker/* /usr/bin rm -rf docker docker-20.10.9.tgz
cat > /etc/systemd/system/docker.service <<EOF [Unit] Description=Docker Application Container Engine Documentation=https://docs.docker.com After=network-online.target firewalld.service Wants=network-online.target
[Service] Type=notify ExecStart=/usr/bin/dockerd ExecReload=/bin/kill -s HUP \$MAINPID LimitNOFILE=infinity LimitNPROC=infinity TimeoutStartSec=0 Delegate=yes KillMode=process Restart=on-failure StartLimitBurst=3 StartLimitInterval=60s
[Install] WantedBy=multi-user.target EOF
chmod +x /etc/systemd/system/docker.service systemctl daemon-reload
|
3. Docker 命令
1 2 3 4 5 6 7 8 9 10 11
| systemctl enable docker.service
systemctl start docker
systemctl status docker
systemctl restart docker
|
二、Docker-compose 离线安装
1. 下载离线包
2. 安装 Docker-compose
1 2 3 4 5
| cp -f ./docker-compose-linux-x86_64 /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
|
四、Docker 与 Docker-compose 整理
一键安装脚本 (install.sh)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35
| #!/bin/sh echo 'docker开始安装...' echo '解压tar包...' tar -xvf ./docker-20.10.9.tgz echo '将docker目录移到/usr/bin目录下...' cp -f ./docker/* /usr/bin rm -rf docker echo '将docker.service 移到/etc/systemd/system/ 目录...' cp -f ./docker.service /etc/systemd/system echo '添加文件权限...' chmod +x /etc/systemd/system/docker.service
echo '重新加载配置文件...' systemctl daemon-reload echo '启动docker...' systemctl start docker echo '设置开机自启...' systemctl enable docker.service
if ! docker -v; then echo "docker 安装失败..." exit -1 fi echo 'docker安装成功...'
echo '安装docker-compose...' cp -f ./docker-compose-linux-x86_64 /usr/local/bin/docker-compose echo '添加文件执行权限...' chmod +x /usr/local/bin/docker-compose
if ! docker-compose -v; then echo "docker-compose 安装失败..." exit -1 fi echo 'docker-compose 安装成功...'
|
一键卸载脚本 (uninstall.sh)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| #!/bin/sh echo "停止所有容器服务" docker stop $(docker ps -a -q) echo "删除所有容器" docker rm $(docker ps -a -q) echo "删除docker所有镜像" docker rmi -f $(docker images -q) echo "停止docker服务" systemctl stop docker echo "删除docker.service..." rm -rf /etc/systemd/system/docker.service echo "删除docker文件..." rm -rf /usr/bin/docker* echo "重新加载配置文件" systemctl daemon-reload echo "卸载成功..."
echo "删除docker-compose" rm -rf /usr/local/bin/docker-compose echo "卸载成功"
|
第二步:安装 Kubernetes
一、安装环境说明
| 主机 |
IP地址 |
角色 |
| master |
192.168.192.140 |
Master |
| node1 |
192.168.192.141 |
Node |
| node2 |
192.168.192.142 |
Node |
二、下载安装包
三、上传安装包到所有节点
1
| scp k8sOfflineSetup.tar.gz root@192.168.1.30:/root
|
四、解压安装包
1 2
| mkdir /root/k8sOfflineSetup tar -xzvf k8sOfflineSetup.tar.gz -C /root/k8sOfflineSetup
|
五、Master节点设置参数
1 2 3 4 5 6 7 8 9 10 11
| export HOSTNAME=master
export APISERVER_NAME=apiserver.k8s.com
export MASTER_IP=192.168.192.140
export POD_SUBNET=10.11.10.0/16
|
六、授权脚本执行权限
1
| chmod +x /root/k8sOfflineSetup/scripts/*
|
七、执行Master节点安装
1 2 3 4
| cd /root/k8sOfflineSetup ./setup_master.sh
sh setup_master.sh
|
八、验证安装
九、创建加入集群的token
1
| kubeadm token create --print-join-command
|
记录输出结果(token和cert),这两个参数在2小时内有效。
十、Node节点安装(以node1为例)
1. 设置Node节点参数
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| export HOSTNAME=node1
export APISERVER_NAME=apiserver.k8s.com
export MASTER_IP=192.168.192.140
export TOKEN=uejhnn.d24zdxunim9dnm4c
export CERT=sha256:a8352417fba987353f1764c069f5d8ba647064b315d63bfca8a0ce05a625f246
|
2. 授权脚本执行权限
1
| chmod +x /root/k8sOfflineSetup/scripts/*
|
3. 执行Node节点安装
1 2
| cd /root/k8sOfflineSetup sh setup_worker.sh
|
十五、验证集群状态
在Master节点上执行:
访问Kubernetes Dashboard
- 在浏览器输入:
http://任意节点IP:32567/
- 获取token:
1
| kubectl -n kube-system get secret $(kubectl -n kube-system get secret | grep kuboard-user | awk '{print $1}') -o go-template='{{.data.token}}' | base64 -d
|
该文中的 Image-5 为 Joplin 内部图片资源(:/57335a86292b44238572214abbe772bb),当前仓库未同步该资源,暂不展示。