K8S以及Kubesphere离线部署方案

本篇文档描述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

节点要求

  • 建议您使用干净的操作系统(不安装任何其他软件),否则可能会有冲突。
  • 请确保每个节点的硬盘至少有 100G
  • 所有节点必须都能通过 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

私有镜像仓库

  1. 生成自签名证书

           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的会有些滞后,想追更的朋友欢迎大家关注公众号,谢谢大家支持。 

公众号地址:

你可能感兴趣的:(Kubernetes,kubernetes,云原生,k8s,入门,kubersphere)