如果你需要在离线环境中比较方便的安装部署与扩容多套kubernetes集群,不妨使用我接下来介绍的这款工具。
Kube-Install是一键离线安装kubernetes集群的工具,支持Web界面和定时安装,它采用二进制方式同时并发进行多套kubernetes集群的部署,无需事先在目标主机上安装任何软件,只需要纯净的裸机即可完成部署。Kube-Install同时支持Web界面和命令行等多种安装模式,此外还有定时计划、Web终端、一键扩容节点等功能。接下来,云君就来和大家一起体验一下部分功能吧。
[1] 获取软件包
1.1 兼容性说明
kube-install支持CentOS 7、CentOS 8、SUSE 15、Ubuntu20、RHEL 7和RHEL 8等主流的发行版操作系统环境。
项目 | 支持的版本 |
支持的k8s版本 | kubernetes v1.23, v1.22, v1.20, v1.19, v1.18, v1.17, v1.16, v1.15, v1.14 |
支持的操作系统 | CentOS 7 , RHEL 7 , CentOS 8 , RHEL 8 , SUSE Linux 15 , Ubuntu 20 |
1.2 下载软件包
你可以从 https://github.com/cloudnativer/kube-install/releases 这里下载kube-install-*.tgz
软件包。
举例,下载kube-install-allinone-v0.7.3.tgz
软件包进行安装:
# cd /root/
# curl -O https://github.com/cloudnativer/kube-install/releases/download/v0.7.3/kube-install-allinone-v0.7.3.tgz
# tar -zxvf kube-install-allinone-v0.7.3.tgz
# cd /root/kube-install/
注意:由于软件包在Github上,如果你本地的网络环境不是太好的话,建议你使用支持断点续传的下载软件进行软件包下载,这样可以获得更好的下载体验。
[2] 通过命令行安装K8S
Kube-install支持Web界面和命令行多种安装模式,下面云君先体验一下命令行的安装模式。
假设你现在有4台服务器,你想将k8s-master安装在三台服务器(192.168.1.11、192.168.1.12、192.168.1.13)上,将k8s-node安装在四台服务器(192.168.1.11、192.168.1.12、192.168.1.13、192.168.1.14)上。服务器的操作系统是纯净的CentOS Linux或RHEL(RedHat Enterprise Linux),具体如下表所示:
IP地址 | 想要安装的组件 | 操作系统版本 | root密码 |
192.168.1.11 | k8s-master,k8s-node,kube-install | CentOS Linux release 7 | cloudnativer |
192.168.1.12 | k8s-master,k8s-node | CentOS Linux release 7 | cloudnativer |
192.168.1.13 | k8s-master,k8s-node | CentOS Linux release 7 | cloudnativer |
192.168.1.14 | k8s-node | CentOS Linux release 7 | cloudnativer |
安装后的部署架构如下图所示:
注意:这里使用192.168.1.11作为kube-install源安装机。事实上,您可以将任何主机(包括kubernetes集群之外的任何主机)用来作为kube-install源安装机!
2.1 初始化系统环境
首先你需要使用root用户对kube-install源安装机本地环境进行初始化操作,进入解压后的软件目录执行kube-install -init命令:
# cd /root/kube-install/
# ./kube-install -init -ostype "centos7"
注意:在做初始化操作的时候,请确保-ostype
参数设置正确。
2.2 打通到目标主机的SSH通道
在你开始给目标主机安装kubernetes集群之前,请先打通kube-install源安装机本地到目标主机的SSH免密通道。你可以自己手工打通到目标主机的SSH通道,也可以通过`kube-install -exec sshcontrol`命令来打通:
# cd /root/kube-install/
# ./kube-install -exec sshcontrol -sship "192.168.1.11,192.168.1.12,192.168.1.13,192.168.1.14" -sshpass "cloudnativer"
你也可以通过kube-install的Web管理平台来打通到目标主机的SSH通道。
2.3 一键安装部署K8S集群
在kube-install源安装机上使用root用户执行下面这台命令即可:
# cd /root/kube-install/
# ./kube-install -exec install -master "192.168.1.11,192.168.1.12,192.168.1.13" -node "192.168.1.11,192.168.1.12,192.168.1.13,192.168.1.14" -k8sver "1.22" -ostype "centos7" -label "192168001011"
另外,如果你需要自定义制定Kubernetes集群安装在目标主机上的目录路径的话,可以带上-softdir
参数来设置。
2.4 登录kube-dashboard界面
kube-install默认会自动部署好kube-dashboard,部署完毕之后,你就可以使用kube-dashboard的登录地址和密钥来登录了:
现在你就可以使用内置的kube-dashboard来管理kubernetes集群了。kubernetes集群已经搭建好了,当然你也可以在搭建好的kubernetes集群上安装更多的其他工具来进行管理。
[3] 通过Web界面安装K8S
你除了可以使用上面的命令行来一键安装kubernetes集群外,还可以通过kube-install的Web管理平台来安装kubernetes集群。
kube-install的Web管理平台具备SSH打通、定时安装部署、Node扩容、Master修复、集群卸载等更多强大的功能,你可以在Web管理平台上获得更好的安装体验。
3.1 初始化系统环境
首先你需要使用root用户对kube-install源安装机本地环境进行初始化操作,进入解压后的软件目录执行“kube-install -init”命令:
# cd /root/kube-install/
# ./kube-install -init -ostype "centos7"
注意:在做初始化操作的时候,请确保-ostype
参数设置正确。
3.2 运行kube-install的Web管理服务
然后,执行“systemctl start kube-install”命令来运行kube-install的Web管理平台服务。
# cd /root/kube-install/
# ./kube-install -init -ostype "centos7"
#
# systemctl start kube-install.service
#
# systemctl status kube-install.service
● kube-install.service - kube-install One click fast installation of highly available kubernetes cluster.
Loaded: loaded (/etc/systemd/system/kube-install.service; disabled; vendor preset: disabled)
Active: active (running) since Fri 2021-08-20 14:30:55 CST; 21min ago
Docs: https://cloudnativer.github.io/
Main PID: 2768 (kube-install)
CGroup: /system.slice/kube-install.service
└─2768 /go/src/kube-install/kube-install -daemon
...
此时,你就可以使用网页浏览器打开“http://kube-install源安装机IP:9080”,访问kube-install的Web管理平台了。
注意:kube-install的Web管理平台服务默认监听TCP 9080
。如果你想修改这个监听地址的话,可以通过修改/etc/systemd/system/kube-install.service
文件中的“kube-install -daemon -listen ip:port
”参数来进行设置。
3.3 在Web界面上安装K8S
然后,点击Web界面右上角的的Install Kubernetes
按钮开始kubernetes集群的安装。
在弹出的安装表单窗口中填写好安装所需的参数信息:
选择好你的操作系统环境和你需要安装的kubernetes版本。
如果不设置定时安装的话,默认为立即开始安装。你如果想进行定时安装,也可以在下方的选择定时安装的日期与时间。如果你设置了定时安装的话,你还可以在工具菜单中通过日程工具查看定时安装日历:
注意:在你开始给目标主机安装kubernetes集群之前,请先打通kube-install源安装机本地到目标主机的SSH免密通道。你可以自己手工打通到目标主机的SSH通道,也可以点击右上角的“Open SSH Channel of Host
”按钮来进行打通。
安装中的Kubernetes集群会显示为“Installing”状态,你可以通过点击右边的“Install Log”来查看安装的过程日志信息。
安装成功之后,kubernetes集群后面对应的安装状态会显示为"OK"状态,在右侧会自动出现这个kubernetes集群所对应的“kube-dashboard”、“Node Management”等按钮,你可以通过这些功能来管理对应的kubernetes集群。
另外,你还可以通过kube-install的首页查看到各kubernetes集群的一些安装部署概要统计信息:
[4] 扩容与销毁节点
4.1 一键扩容K8S节点
Kube-install不仅可以很方便的安装单机和高可用的kubernetes集群,还可以支持k8s-node的扩容与销毁、k8s-master的销毁与修复、kubernetes集群的卸载等。
举例,现在需要给第[2]章节中安装好的kubernetets集群,增加2个k8s-node节点(192.168.1.15 and 192.168.1.16),相关信息如下:
IP地址 | 想要安装的组件 | 操作系统版本 | root密码 |
192.168.1.11 | k8s-master,k8s-node,kube-install | CentOS Linux release 7 | cloudnativer |
192.168.1.12 | k8s-master,k8s-node | CentOS Linux release 7 | cloudnativer |
192.168.1.13 | k8s-master,k8s-node | CentOS Linux release 7 | cloudnativer |
192.168.1.14 | k8s-node | CentOS Linux release 7 | cloudnativer |
192.168.1.15 | k8s-node | CentOS Linux release 7 | cloudnativer |
192.168.1.16 | k8s-node | CentOS Linux release 7 | cloudnativer |
在kube-install源主机上使用root用户执行如下命令:
# kube-install -exec addnode -node "192.168.1.15,192.168.1.16" -k8sver "1.22" -ostype "centos7" -label "192168001011"
另外,如果你需要自定义制定Kubernetes集群安装在目标主机上的目录路径的话,可以带上“-softdir”参数来设置。
除了使用“kube-install -exec addnode”命令进行k8s-node节点扩容外,你也可以在kube-install的Web管理平台上,点击web界面上的“Add Node”按钮来对k8s-node节点进行扩容。
正在添加中的k8s-node节点会显示“Installing”状态,扩容完毕之后会显示“OK”状态。本次扩容完毕之后,部署架构会变成如下图所示这样:
在运维各个K8S节点的过程中,你可以随时启用Web终端来登录到任意一台节点服务器上,进行基本的维护操作:
注意:当你不需要使用Web终端的时候,你也可以点击“Disable Terminal”来随时禁用它。
4.2 一键销毁K8S节点
如果你想销毁k8s集群中的k8s-node节点,可以使用“kube-install -exec delnode”命令。执行下面的命令,将会把Kubernetes集群中的两个k8s-node节点销毁掉(包括这两个主机上的kubelet、kube-proxy、docker等k8s-node相关软件):
# kube-install -exec delnode -node "192.168.1.13,192.168.1.15" -label "192168001011"
除了使用命令行进行销毁外,你也可以在kube-install的Web管理平台上,点击web界面上的“Delete Node”按钮来销毁k8s-node节点。
销毁完毕之后的部署架构如下图所示:
4.3 更多操作
此外,kube-install还支持销毁与修复受损的k8s-master节点,你可以访问https://github.com/cloudnativer/kube-install/blob/master/docs/operation0.7.md查看更多操作。
[5] 一键卸载K8S集群
执行下面的命令,将会卸载整个Kubernetes集群(包含集群中指定的k8s-master和k8s-node上的相关软件)
# kube-install -exec uninstall -master "192.168.1.11,192.168.1.12,192.168.1.13" -node "192.168.1.11,192.168.1.12,192.168.1.13,192.168.1.14" -label "192168001011"
注意:如果你在安装Kubernetes集群的时候带上了“-softdir
”参数来自定义安装目录路径的话,在卸载Kubernetes集群的时候也应该带上“-softdir
”参数来指定安装目录路径,否则可能导致卸载不彻底。
除了使用命令行进行Kubernetes集群卸载外,你也可以在kube-install的Web管理平台上点击每个集群后面的“Uninstall”按钮来完成Kubernetes集群的卸载操作,卸载中的Kubernetes集群会显示为“Uninstalling”状态,你可以通过点击右边的“Uninstall Log”来查看卸载的过程日志信息。
[6] kube-install命令行帮助
你可以随时使用“kube-install -help”或“kube-install -h”
命令来获取kube-install的简易使用帮助文档。
参考文档:
-
https://github.com/cloudnativer/kube-install/blob/master/README.md
-
https://github.com/cloudnativer/kube-install/blob/master/docs/operation0.7.md
-
https://github.com/cloudnativer/kube-install/blob/master/docs/parameters0.7.md
-
https://cloudnativer.github.io/kube-install.html