incloud开发文档 5.1.0 Help

基于Kubesphere 3.4

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

为什么基于离线,因为考虑到给客户部署时,会有一些网络限制,所以需要提前下载好安装包,然后离线部署。

准备工作

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

    内网下载地址

    公网下载备用地址

  2. 下载业务集群离线安装配置config-sample.yaml(这个里面集成了3.4.1版本的所有依赖,按当前ks最新版本为3.4.1版本的情况下,官网上的配置有很多问题,直接使用这个即可),下载地址为:

    内网下载地址

    公网下载备用地址

  3. 下载Harbar配置脚本,官网默认创建的脚本内容不全,以这个为准,下载地址为:

    内网下载地址

    公网下载备用地址

  4. 下载kubesphere离线安装包(13G左右),这个是制作好的制品,自己做的话会如果不能避开上面的坑,会逼人放弃的,下载地址为:

    内网下载地址

    公网下载备用地址

  5. 其他:制作离线制品的ymal,当然这个不需要下载,而且官网上给的清单版本号也不对,如果你想自己做制品(需要外网下载不少依赖),下载地址为:

    内网下载地址

    公网下载备用地址

安装前提

节点要求

  • 所有节点必须都能通过 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

# 解压kubekey tar -xvf kubekey-v3.0.13-linux-amd64.tar.gz # 将kubekey拷贝到/usr/local/bin目录下 mv kk /usr/local/bin/

安装Harbor

修改config-sample.yaml

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

... spec: hosts: - {name: dev-master, address: 192.168.0.30, internalAddress: 192.168.0.30, user: root, password: "Huawei12#$"} - {name: dev-node1, address: 192.168.0.31, internalAddress: 192.168.0.31, user: root, password: "Huawei12#$"} - {name: dev-node2, address: 192.168.0.32, internalAddress: 192.168.0.32, user: root, password: "Huawei12#$"} - {name: dev-node3, address: 192.168.0.33, internalAddress: 192.168.0.33, user: root, password: "Huawei12#$"} - {name: dev-harbor, address: 192.168.0.166, internalAddress: 192.168.0.166, user: root, password: "Huawei12#$"} roleGroups: etcd: - dev-master control-plane: - dev-master worker: - dev-node1 - dev-node2 - dev-node3 # 如需使用 kk 自动部署镜像仓库,请设置该主机组 (建议仓库与集群分离部署,减少相互影响) registry: - dev-harbor ... registry: # 如需使用 kk 部署 harbor, 可将该参数设置为 harbor,不设置该参数且需使用 kk 创建容器镜像仓库,将默认使用docker registry。 type: harbor # 如使用 kk 部署的 harbor 或其他需要登录的仓库,可设置对应仓库的auths,如使用 kk 创建的 docker registry 仓库,则无需配置该参数。 # 注意:如使用 kk 部署 harbor,该参数请于 harbor 启动后设置。 #auths: # "dockerhub.kubekey.local": # username: admin # password: Harbor12345 # 设置集群部署时使用的私有仓库 privateRegistry: "dockerhub.kubekey.local" namespaceOverride: "kubesphereio" registryMirrors: [] insecureRegistries: [] ...

注意:把auths相关参数先注释掉,privateRegistry,namespaceOverride按上面写的,不要按官网上写的!

安装镜像仓库

执行以下命令,安装Harbor

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

创建 Harbor项目

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

chmod +x create_project_harbor.sh ./create_project_harbor.sh

安装Kubesphere集群

再次修改config-sample.yaml

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

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

安装集群

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

安装完成

添加节点

增加节点信息

修改sample.yaml文件,增加节点信息,步骤略过,和上面安装类似。

执行命令添加节点

./kk add nodes -f sample.yaml -a kubesphere.tar.gz --with-packages

基于ubuntu安装

ubuntu使用 22.04 server长期支持版本。

默认安装时需要注意几点:

  • 安装时,选择安装openssh server。

  • 安装到磁盘时,不需要增加新的分区和挂载点,默认即可,但要注意修改/挂载点的大小,直接使用剩余全部磁盘即可。

  • 安装完成后,修改主机名。

下载工具

同上面准备工作一样。

系统准备工作

默认系统未设置root用户的密码,首先设置用户密码:

sudo passwd root

安装vim

sudo apt-get update sudo apt-get install -y vim

修改网络配置

sudo vim /etc/netplan/00-installer-config.yaml

修改内容参考如下:

network: ethernets: ens160: dhcp4: no addresses: - 192.168.0.40/24 routes: - to: default via: 192.168.0.1 nameservers: addresses: [114.114.114.114] version: 2

修改sudo免密

#先切换到root用户 sudo -i #修改sudo配置文件 visudo

进入后把%sudo修改下面内容(主要就是加了NOPASSWD:):

# Allow members of group sudo to execute any command %sudo ALL=(ALL:ALL) NOPASSWD:ALL

修改时区

sudo timedatectl set-timezone Asia/Shanghai

安装

安装参考上面章节。

Last modified: 20 一月 2025