incloud开发文档 5.1.0 Help

基于Kubesphere 3.3

本章节介绍基于Kubesphere的离线安装和部署。

准备工作

  1. 下载kubekye,当前使用版本2.2.1 ,下载地址为:

    内网下载地址

    公网下载备用地址

  2. 下载管理集群离线安装配置config-sample.yaml,下载地址为:

    内网下载地址

    公网下载备用地址

  3. 下载业务集群离线安装配置kubernetes-cluster-config.yaml,下载地址为:

    内网下载地址

    公网下载备用地址

  4. 下载Harbar配置脚本,下载地址为:

    内网下载地址

    公网下载备用地址

  5. 下载kubesphere离线安装包(11G多) 公司服务器下载地址为:

    内网下载地址

    公网下载备用地址

安装前提

节点要求

  • 所有节点必须都能通过 SSH 访问。

  • 所有节点时间同步,时间为东八区标准时间。

  • 所有节点都应使用 sudo/curl/openssl/tar。

  • /var/lib/docker 路径主要用于存储容器数据,在使用和操作过程中数据量会逐渐增加。因此,在生产环境中,建议为 /var/lib/docker 单独挂载一个硬盘。

  • CPU 必须为 x86_64,暂时不支持 Arm 架构的 CPU。

节点配置

根据kubesphere建议,生产环境中需要配置管理集群和业务集群,管理集群用于管理业务集群,业务集群用于部署业务应用。 实际情况下,根据自己的业务情况,可以只配置业务集群。配置节点,一般推荐一主三从,再加harbor节点,共5个节点。

管理集群建议配置

节点/配置

CPU

内存

磁盘

master

4核

8G

300G

worker

8核

16G

500G

harbor

4核

8G

1000G

业务集群建议配置

节点/配置

CPU

内存

磁盘

master

4核

8G

300G

worker

8核

32G

500G

harbor

4核

8G

1000G

网络要求

  • 请确保 /etc/resolv.conf 中的 DNS 地址可用,否则,可能会导致集群中的 DNS 出现问题。

  • 如果您的网络配置使用防火墙规则或安全组,请务必确保基础设施组件可以通过特定端口相互通信。建议您关闭防火墙。有关更多信息,请参见端口要求。

  • 支持的 CNI 插件:Calico 和 Flannel。

端口要求

KubeSphere 需要某些端口用于服务之间的通信。如果您的网络配置有防火墙规则,则需要确保基础设施组件可以通过特定端口相互通信。这些端口用作某些进程或服务的通信端点。

服务

协议

行为

起始端口

结束端口

备注

ssh

TCP

allow

22

etcd

TCP

allow

2379

2380

apiserver

TCP

allow

6443

calico

TCP

allow

9099

9100

bgp

TCP

allow

179

nodeport

TCP

allow

30000

32767

master

TCP

allow

10250

10258

dns

TCP

allow

53

dns

UDP

allow

53

local-registry

TCP

allow

5000

离线环境需要

local-apt

TCP

allow

5080

离线环境需要

rpcbind

TCP

allow

111

使用 NFS 时需要

ipip

IPENCAP / IPIP

allow

Calico 需要使用 IPIP 协议

metrics-server

TCP

allow

8443

安装服务器注意点

  • 所有下载脚本及安装包,放在master主节点/root根目录下;要保证/ 目录磁盘空间至少30G;

  • work节点保证/var目录有足够空间,因为安装资源全都是docker形式;

  • harbor服务器保证/opt目录有足够空间;

  • nfs或其他存储需要先配置好,比如:nfs,需要先配置server端,其他work节点可挂载,也可不挂载;

安装kubekey

rpm -ivh kubekey-v2.2.1-linux-64bit.rpm

安装管理集群

安装Harbor

修改config-sample.yaml

config-sample.yaml文件中以下内容:

... spec: hosts: - {name: master, address: 192.168.0.66, internalAddress: 192.168.0.66, user: root, password: "服务器密码"} - {name: ks-node1, address: 192.168.0.67, internalAddress: 192.168.0.67, user: root, password: "服务器密码"} - {name: ks-harbor, address: 192.168.0.168, internalAddress: 192.168.0.168, user: root, password: "服务器密码"} roleGroups: etcd: - master control-plane: - master worker: - ks-node1 registry: - ks-harbor ...

把auths相关参数先注释掉,privateRegistry置为空,namespaceOverride置为空!

registry: type: harbor # 如使用 kk 部署的 harbor 或其他需要登录的仓库,可设置对应仓库的auths. # 注意:如使用 kk 部署 harbor,该参数请于 harbor 启动后设置。 #auths: # "dockerhub.kubekey.local": # username: admin # password: Harbor12345 # 设置集群部署时使用的私有仓库 privateRegistry: "" namespaceOverride: "" registryMirrors: [] insecureRegistries: []

安装镜像仓库

执行以下命令,安装Harbor

kk init registry -f config-sample.yaml -a kubesphere.tar.gz

创建 Harbor项目

执行以下命令下载指定脚本初始化 Harbor 仓库

chmod +x create_project_harbor.sh ./create_project_harbor.sh

再次修改config-sample.yaml

配置相关harbor的参数, 请注意下面格式和缩进

... registry: type: harbor auths: "dockerhub.kubekey.local": username: admin password: Harbor12345 privateRegistry: "dockerhub.kubekey.local" namespaceOverride: "kubesphereio" registryMirrors: [] insecureRegistries: [] addons: [] ...

安装完成

完成后,重启harbor服务器

修改docker外部镜像配置

可选的,如果有证书,理论上这个不需要,如果上面的registryMirrors和insecureRegistries配置了,也不需要理论上

vi /etc/docker/daemon.json

增加或修改: insecure-registries 、insecure-registries为外部镜像的加速地址,如果没有且不需要访问外部镜像下载, 可以删除掉这一项,如果需要可以配置,如:阿里云的加速地址。

{ "log-opts": { "max-size": "5m", "max-file":"3" }, "registry-mirrors": [""], "exec-opts": ["native.cgroupdriver=systemd"], "insecure-registries": ["dockerhub.kubekey.local"] }

执行:

systemctl daemon-reload && systemctl reload docker

安装Kubesphere集群

安装集群

kk create cluster -f config-sample.yaml -a kubesphere.tar.gz --with-packages

如果出现509错误,这个非常坑,我研究了好久,官网上也没有写怎么处理; 进入harbor服务器,进入/etc/docker/daemon.json,把上面的docker配置执行一遍,并在命令行执行一次 harbor服务器自己也要配;

docker login dockerhub.kubekey.local

如果还不行,执行下面的试试

进入~/kubekey目录下,找到ks-harbor (这个是根据configmap中配置的)目录,进入后,找到daemon.json文件,如果没有配置相应的insecure-registries等信息,就配置上;

查看集群状态

kubectl logs -n kubesphere-system $(kubectl get pod -n kubesphere-system -l 'app in (ks-install, ks-installer)' -o jsonpath='{.items[0].metadata.name}') -f

安装完成

安装完成后,您会看到以下内容:

************************************************** ##################################################### ### Welcome to KubeSphere! ### ##################################################### Console: http://192.168.0.3: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. 1. Please change the default password after login. ##################################################### https://kubesphere.io 2022-02-28 23:30:06 #####################################################

通过 http://:30880 使用默认帐户和密码 admin/P@88w0rd 访问 KubeSphere 的 Web 控制台。

安装业务集群

修改config-sample.yaml

config-sample.yaml文件中以下内容:

... spec: hosts: - {name: biz-master, address: 192.168.0.70, internalAddress: 192.168.0.70, user: root, password: "服务器密码"} - {name: biz-node1, address: 192.168.0.71, internalAddress: 192.168.0.71, user: root, password: "服务器密码"} - {name: biz-node2, address: 192.168.0.72, internalAddress: 192.168.0.72, user: root, password: "服务器密码"} - {name: ks-harbor, address: 192.168.0.168, internalAddress: 192.168.0.168, user: root, password: "服务器密码"} roleGroups: etcd: - biz-master control-plane: - biz-master worker: - biz-node1 - biz-node2 registry: - ks-harbor ...

配置Harbor证书

复制证书

从管理集群中复制harbor证书到docker配置中 进入业务集群的各节点中,执行以下命令:

#创建docker配置目录 mkdir -p /etc/docker

进入管理集群的master节点中,执行以下命令:

#把certs证书目录打包 tar -cvf certs.tar certs.d/ #复制证书到所有业务节点中 scp certs.tar root@192.168.0.70:/etc/docker/ #删除压缩包文件 rm -rf certs.tar

进入业务集群的各节点中,执行以下命令:

#进入docker配置目录 cd /etc/docker #解压证书 tar -xvf certs.tar #删除证书压缩包 rm -rf certs.tar

安装业务集群

执行以下命令安装集群:

kk create cluster -f kubernetes-cluster-config.yaml -a kubesphere.tar.gz --with-packages

执行以下命令查看集群状态:

kubectl logs -n kubesphere-system $(kubectl get pod -n kubesphere-system -l 'app in (ks-install, ks-installer)' -o jsonpath='{.items[0].metadata.name}') -f

安装完成后,您会看到以下内容:

************************************************** ##################################################### ### Welcome to KubeSphere! ### ##################################################### Console: http://192.168.0.3: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. 1. Please change the default password after login. ##################################################### https://kubesphere.io 2022-02-28 23:30:06 #####################################################

通过 http://:30880 使用默认帐户和密码 admin/P@88w0rd 访问 KubeSphere 的 Web 控制台。

Last modified: 20 一月 2025