跳到主要内容

Kubernetes 集群版部署指南

说明

K8s 集群版只适用于微搭私有化企业版以上的套餐

1. 资源准备

1.1 部署要求

说明

须具备 K8s 集群运维能力,K8s 底层相关运维不做维保

硬件要求:

软件要求:

1.2 网络放通

需要放通以下地址访问:

  • weda-private.tencentcloudcr.com:443(镜像仓库访问)
  • https://license.tcloudbasegateway.com(证书激活/获取最新版本)
  • https://weda-private.tencentcloudcr.com(镜像拉取)
  • https://tcr-9r3x9jec-1302110647.cos.ap-guangzhou.myqcloud.com(镜像拉取)

2. 获取部署包并填写配置信息

部署流程图

2.1 下载部署脚本

根据服务器架构选择对应的下载命令:

x86_64 架构:

mkdir -p k8s_weda && cd k8s_weda
wget -L -O wedaCli https://software-1302110647.cos.ap-guangzhou.myqcloud.com/rc/k8s/x86_64/lastest/wedaCli && chmod +x wedaCli

aarch64 架构:

mkdir -p k8s_weda && cd k8s_weda
wget -L -O wedaCli https://software-1302110647.cos.ap-guangzhou.myqcloud.com/rc/k8s/arm64/lastest/wedaCli && chmod +x wedaCli

下载完成后,在 k8s_weda 目录下执行初始化命令:

./wedaCli init

2.2 配置文件说明

编辑 config.yml 文件,用于生成 Helm values.yaml。下面是配置字段说明:

字段含义
weda.ns部署微搭集群在 k8s 中的命名空间【执行 kubectl create ns weda-software 创建,见 2.1 章节】
weda.ingressClass获取 k8s 集群中 ingressClass 的名字,使用kubectl get ingressClass获取
weda.nodeSelectorweda baas 服务 pod 的节点选择器,需要事先在 k8s 节点上设置,不设置的话,将根据资源情况,自行选择合适节点部署
weda.replicaCountweda baas 服务的副本数,默认为:1
weda.disableRollingUpdate是否禁用滚动更新,false 为滚动更新(默认),true 禁用【为停服更新】,一般用于资源紧张时使用
weda.domain用于为微搭服务设置的域名,不需要携带 http 或者 https 协议
weda.domainProtocol这里填写 http 或者 https 协议名
weda.tlsSecretName选填项:需要先使用证书与密钥来创建 tls secret,只有当需要使用 https 访问微搭服务且将 tls 证书挂载到 ingress 时,进行填写,具体见 3.4.2 节
weda.license微搭许可证书
middleware.mysql.host自建 MySQL 数据库的主机名域名或 IP 地址
middleware.mysql.port自建 MySQL 数据库的端口号
middleware.mysql.username自建 MySQL 数据库的用户名
middleware.mysql.password自建 MySQL 数据库的密码
middleware.mysql.dbname填写自建 MySQL 数据库的名称(存储设计态数据), 一般可以命名为:lowcode, 创建数据库的语句为:CREATE DATABASE `lowcode` DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci
middleware.mysql.dbRuntimeName填写自建 MySQL 数据库的名称(存储运行态数据), 一般可以命名为:lcruntime, 创建数据库的语句为: CREATE DATABASE `lcruntime` DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci
middleware.s3.endpoint自建 S3 对象存储服务的连接 ip 或域名, 不需要携带 http 或者 https 协议
middleware.s3.port自建 S3 对象存储服务的端口号号
middleware.s3.scheme自建 S3 对象存储服务的协议, 在这里填写 http 或者 https 协议
middleware.s3.accessKey自建 S3 对象存储服务的访问密钥
middleware.s3.secretKey自建 S3 对象存储服务的秘密密钥
middleware.s3.insecureSkipVerify是否跳过 自建 S3 对象存储服务的证书验证,默认为 false
middleware.s3.defaultBucket自建 S3 对象存储服务中创建桶名,并确保该桶的访问权限设置为 公有读私有写
middleware.s3.cloudStorageBucket自建 S3 对象存储服务中创建桶名, 访问权限为私有读私有写
middleware.s3.ciSource自建 S3 对象存储服务中创建桶名, 访问权限为私有读私有写
middleware.s3.region需要自建 S3 所在 region
middleware.s3.pathStyle需要自建 S3 是否支持 pathStyle: 是,填写 true, 否则填写 false 写
middleware.build.enabled开启外部构建cicd服务(需要先部署好,cicd服务)
middleware.build.wedaInternalHost果没有dns,则需要配置hosts, 配置格式为"weda_web_ip weda_domain",例如:"6.55.46.15 software.test.com"
middleware.build.gitness.hostgitness访问地址。
middleware.build.gitness.proxy微搭访问域名,该域名需要在当前机器可访问,如果没有 DNS 解析,需要配置内网解析 Host。
middleware.internalBuild.enabled开启内置的cicd服务, 如果middleware.build.enabledmiddleware.internalBuild.enabled都为true时,则只自动部署和使用内置cicd服务;【详见内置cicd部署服务说明】
middleware.internalBuild.hostPath在节点上创建的cicd服务的数据存放目录;【详见内置cicd部署服务说明】
middleware.internalBuild.nodeSelector节点标签值,cicd服务 pod 的节点选择器,需要事先在 k8s 节点上设置,不设置的话,将根据资源情况,自行选择合适节点部署;【详见内置cicd部署服务说明】
注意

上述三个桶(defaultBucket、cloudStorageBucket、ciSource)不能同名,具体配置可参考: 自定义 S3 对象存储桶配置指南

3. 安装微搭服务

3.1 安装部署

执行安装命令:

./wedaCli install

3.2 验证部署

运行以下命令验证 Pod 是否正常运行:

kubectl -n weda-software get po

预期输出示例:

NAME                                  READY   STATUS    RESTARTS   AGE
allin-one-design-b8f855787-58zsj 1/1 Running 0 44m
allin-one-runtime-66cf7b5658-pjw8c 1/1 Running 0 43m
gateway-7c7c786495-vprl6 1/1 Running 0 48m
idaasserver-b6bf65cfc-5dvvg 1/1 Running 0 48m
lcap-service-55dcb9fd-vcpxw 1/1 Running 0 48m
lowcode-5d45ffd9cc-zckxd 1/1 Running 1 48m
proxy-7bf84f8c48-bszw7 1/1 Running 0 48m
weda-plugin-adaptor-dd67659b5-4vcn8 1/1 Running 0 48m

3.3 访问微搭 Web UI

3.3.1 暴露微搭服务

微搭集群版本采用 Ingress 将服务暴露于外部访问。根据 Ingress Controller 的暴露方式不同,外部访问的 IP 有所不同:

NodePort 方式:

  • 可以直接使用各个节点的外部 IP(集群外可访问 IP)访问微搭
  • 需要外接 LB(负载均衡器)

LoadBalancer 方式:

  • 查看 Ingress Controller 负载均衡的 EXTERNAL-IP
  • 将 EXTERNAL-IP 与外部 IP 绑定即可访问微搭

示例:

# 查看 Ingress Controller 服务
kubectl -n ingress-nginx get svc
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
ingress-nginx-controller LoadBalancer 10.0.134.188 192.168.2.40 80:30252/TCP,443:31414/TCP 52d

# 说明: ingress-nginx 为 Ingress Controller 所在命名空间

# 查看 Ingress 配置
kubectl get ing -n <微搭部署所在的命名空间>

# 示例输出:
NAME CLASS HOSTS ADDRESS PORTS AGE
proxy nginx weda-test-cloud.com 192.168.2.40 80 6d20h

DNS 配置:

将集群外可访问的 IP 与配置的域名(weda.domain)进行映射:

  1. 通过 DNS 配置解析
  2. 测试环境可在本地配置 hosts 文件进行解析

访问地址:

  • 登录地址:http://<weda.domain>/dev
  • 默认用户名/密码:admin / Weda@123456
说明

weda.domain 为 2.2 节中设置的域名

3.3.2 配置 HTTPS TLS 证书(选配)

支持在 Ingress 上配置 TLS,以实现通过 HTTPS 访问微搭服务。

操作步骤:

  1. 获取 TLS 证书文件

  2. 创建 TLS Secret

# "NAME" 为创建 Secret 时的名称,例如:weda-tls
# --cert 指定证书文件路径
# --key 指定证书私钥文件路径
kubectl create secret tls NAME --cert=path/to/cert/file --key=path/to/key/file -n weda-software
  1. 配置 config.yml 文件

将创建的 Secret 名称填写到 config.yml 文件中:

# 例如: NAME 名称为 weda-tls
tlsSecretName: weda-tls
  1. 执行安装或更新命令

参考 3.4 节执行安装或更新操作

3.4 更新服务

操作步骤:

  1. 切换到上次部署微搭的目录
  2. 根据需要修改 config.yaml 文件(不修改则跳过)
  3. 删除之前的 wedaCli 文件
  4. 下载执行脚本到部署目录下
  5. 执行更新命令:
./wedaCli install

3.5 续期服务

操作步骤:

  1. 获取新的 License
  2. 切换到上次部署微搭的目录
  3. 替换 config.yamllicense 的值
  4. 备份环境文件:
mv env env-bak
  1. 执行续期命令:
./wedaCli install

3.6 卸载服务

说明

需要使用 Helm 卸载服务

操作步骤:

  1. 查询服务:
helm list -n weda-software  # -n 后接命名空间
  1. 卸载服务:
helm delete wedabaas -n weda-software  # delete 后接服务名