本篇文档描述kubesphere的离线部署过程,kubesphere的版本为3.1.1,kubernetes的版本为1.20.6,其他版本可能过程略有出入。
系统 |
最低要求(每个节点) |
---|---|
Ubuntu 16.04, 18.04 | CPU: 2 核,内存:4 G,硬盘:100 G |
Debian Buster, Stretch | CPU: 2 核,内存:4 G,硬盘:100 G |
CentOS 7.x | CPU: 2 核,内存:4 G,硬盘:100 G |
Red Hat Enterprise Linux 7 | CPU: 2 核,内存:4 G,硬盘:100 G |
SUSE Linux Enterprise Server 15/openSUSE Leap 15.2 | CPU: 2 核,内存:4 G,硬盘:100 G |
SSH
访问。sudo
/curl
/openssl
。根据要安装的 Kubernetes 版本,需要安装的依赖项可能会不同。您可以参考下方列表,查看是否需要提前在您的节点上安装相关依赖项。
依赖项 |
Kubernetes 版本 ≥ 1.18 |
Kubernetes 版本 < 1.18 |
---|---|---|
socat |
必须 | 可选但建议 |
conntrack |
必须 | 可选但建议 |
ebtables |
可选但建议 | 可选但建议 |
ipset |
可选但建议 | 可选但建议 |
您的集群必须有一个可用的容器运行时。在离线环境中创建集群之前,您必须手动安装 Docker 或其他容器运行时。
支持的容器运行时 |
版本 |
---|---|
Docker | 19.3.8+ |
containerd(试验版,未经充分测试) | 最新版 |
CRI-O(试验版,未经充分测试) | 最新版 |
iSula(试验版,未经充分测试) | 最新版 |
本次部署的配置: centos 7.7 4C8G 3台,docker 19.3.9 (以上系统要求和docker的安装均不在以下内容中提及,请先手工操作以满足要求)
主机:
172.16.xx.xx k8s-master
172.16.xx.xx k8s-node1
172.16.xx.xx k8s-node2
生成自签名证书
mkdir -p /opt/docker/registry/certs
openssl req -newkey rsa:4096 -nodes -sha256 -keyout /opt/docker/registry/certs/domain.key -x509 -days 365 -out /opt/docker/registry/certs/domain.crt
执行这个命令的时候,提示Common Name的时候需要输入私有仓库的域名,这里输入registry.xxxxxx.com
2. 拉取镜像
docker pull registry:2
启动带有TLS认证的registry容器
docker run -d --name registry2 -p 7667:5000 -v /opt/docker/registry/certs:/certs -e REGISTRY_HTTP_TLS_CERTIFICATE=/certs/domain.crt -e REGISTRY_HTTP_TLS_KEY=/certs/domain.key registry:2
3. 客户端配置
在每个客户端配置/etc/hosts, 以便客户端宿主机可以解析域名registry.xxxxxx.com
# vi /etc/hosts
172.16.x.x registry.xxxxxx.com
将证书domain.crt复制到每个客户端宿主机/etc/docker/certs.d/registry.xxxxxx.com:7667的目录下(目录需要创建)
scp /opt/docker/registry/certs/domain.crt [email protected]:/etc/docker/certs.d/registry.xxxxxx.com\:7667/ca.crt
4. 列出仓库的镜像
curl https://registry.xxxxxx.com:7667/v2/_catalog -k
离线的安装包下载地址: 172.16.xx.xx:/root/k8s/kubesphere_offline_package.tar.gz
离线方式下,所有镜像已经提前下载好,并打包到kubesphere-images目录下,先把镜像推送到私有镜像仓库里(在离线环境下,这个registry已经存在仓库上面,这一步可以省略;如果没有registry或者想用专用的,可以自行创建,参见上节”私用镜像仓库“)
./offline-installation-tool.sh -l images-list.txt -d ./kubesphere-images -r registry.xxxxxx.com:7667
创建配置文件
./kk create config --with-kubernetes --with-kubesphere -f config-sample.yaml (在离线安装包里面,已经存在config-sample.yaml文件,所以这一步可以省略)
编辑配置文件
务必添加registry.privateRegistry字段: privateRegistry: registry.xxxxxx.com:7667
其他根据host的具体情况来配置
创建集群
./kk create cluster --with-kubernetes v1.20.6 --with-kubesphere -f config-sample.yaml
安装成功,你会看到如下内容:
#####################################################
### Welcome to KubeSphere! ###
#####################################################
Console: http://192.168.0.2:30880
Account: admin
Password: P@88w0rd
NOTES:
1. After you log into the console, please check the
monitoring status of service components in
the "Cluster Management". If any service is not
ready, please wait patiently until all components
are up and running.
2. Please change the default password after login.
#####################################################
https://kubesphere.io 20xx-xx-xx xx:xx:xx
#####################################################
现在,就可以访问kubesphere了
参考URL:
在 Linux 上以 All-in-One 模式安装 KubeSphere
离线安装
最后,如果想一起入门学习K8S的小伙伴,欢迎点赞转发加关注,下次学习不迷路!
最后挂个公众号二维码,公众号的文章是最新的,CSDN的会有些滞后,想追更的朋友欢迎大家关注公众号,谢谢大家支持。
公众号地址: