高级安装

English | 简体中文

用户可在已有的 Kubernetes 集群上通过CLI快速部署 KDP。

资源规划

  • 必需:已有一个 Kubernetes 集群 >=1.26(公有云或自建),建议配置为:
    • 控制平面:8vCPUs 16GB RAM * 3台(控制平面高可用)
    • 工作节点:8vCPUs 16GB RAM >= 4台,如 K8s 存储卷使用节点本地盘可挂载到/var/lib/openebs目录(/var/lib/openebs为 KDP 默认的存储卷目录)
  • 可选:已有公网解析域名及TLS证书,用于 KDP 服务暴露及外部访问(如不具备公网解析域名及TLS证书,可参考快速启动中“域名解析”章节在访问端及集群 CoreDNS 配置自定义域名解析)

前提条件

  • 执行部署 KDP 的节点已准备好位于$HOME/.kube/config路径的kubeconfig,kubeconfig具备集群管理员权限
  • 执行部署 KDP 的节点已安装 KDP CLI(以下安装方式二选一)
    • Release Page 安装二进制
    • 编译安装 (本地需要安装 Go 1.21+): 克隆项目到本地, 在项目根目录执行 go install

安装 KDP 基础设施层

使用默认配置安装

命令行一键安装:

# > 指定 "--debug" 可开启debug日志
kdp install

支持的运行时参数

安装或更新时支持通过"--set k1=v1 --set k2=v2 ..."的方式指定运行时参数;支持的运行时参数如下(所有参数均为可选参数):

参数 描述 默认值 是否支持更新 说明
namespace KDP基础设施层服务安装的命名空间 kdp-system 安装后强制更新会导致服务重新部署到新的命名空间,存储卷会重新申领从而导致数据丢失
imagePullSecret 镜像拉取密钥名 cr-secret
storageConfig.storageClassMapping.localDisk KDP 存储卷申请使用的存储类名称 openebs - 如需使用已有存储类(例如公有云 K8s 产品提供的动态云盘存储类等),安装时可指定该参数
- 强制更新会导致存储卷重新申领从而导致数据丢失
kong.enabled 是否安装 Kong Ingress true 如需使用 K8s 集群上已有的 Ingress Controller,可设置为false,同时将ingress.class设置为已有的 IngressClass 名称
kong.replicas Kong Ingress 的副本数 4
ingress.class KDP Ingress 使用的 IngressClass kong
ingress.domain KDP Ingress 使用的根域名 kdp-e2e.io 如启用自定义域名,可设置该参数
ingress.tlsSecretName KDP Ingress 使用的 TLS secret "" 如启用自定义域名及 TLS ,可设置该参数
prometheusCRD.enabled 是否安装 Prometheus Operator CRD true 如需使用 K8s 集群上已有的 kube-prometheus-stack ,可关闭
prometheus.enabled 是否安装 Prometheus Operator/Prometheus/Alertmanager/Grafana true 如需使用 K8s 集群上已有的 kube-prometheus-stack ,可关闭
prometheus.externalUrl KDP 可观测性功能使用的 Prometheus 服务地址 "" 仅当使用外部 Prometheus 服务时设置
loki.enabled 是否安装 Loki true 如需使用 K8s 集群上已有的 Loki 服务,可关闭
loki.externalUrl KDP 可观测性功能使用的 Loki 服务地址 "" 仅当使用外部 Loki 服务时设置
grafana.externalUrl KDP 可观测性功能使用的 Grafana 服务地址 "" 仅当使用外部 Grafana 服务时设置
mysqlArch KDP 内置 MySQL 使用的架构 standalone - 使用主从复制架构可指定为replication
- 强制更新会导致 MySQL 存储卷重新申领从而导致数据丢失
mysqlDiskSize KDP 内置 MySQL 使用的存储卷大小 10Gi 安装后强制更新不会生效,K8s StatefulSets 类型工作负载不支持动态更新存储卷大小
xtrabackup.enabled 是否安装 MySQL XtraBackup 工具 false 通过在 MySQL Pod 上开启 XtraBackup 容器进行数据备份
xtrabackup.diskSize MySQL XtraBackup 挂载的备份存储卷大小 10Gi 安装后强制更新不会生效,K8s StatefulSets 类型工作负载不支持动态更新存储卷大小
systemMysql.debug KDP 内置 MySQL 开启调试日志 false
systemMysql.host KDP 基础服务使用的 MySQL 服务地址 mysql - 如使用 KDP 内置 MySQL 时不需要设置
- 如使用外部 MySQL,可指定为外部 MySQL 服务的地址
systemMysql.port KDP 基础服务使用的 MySQL 服务端口 3306 - 如使用 KDP 内置 MySQL 时不需要设置
- 如使用外部 MySQL,可指定为外部 MySQL 服务的端口
systemMysql.users.root.user KDP 内置 MySQL root 用户名 root - 仅使用 KDP 内置 MySQL 时生效
- 安装后强制更新会导致 KDP 内置 MySQL 工作负载运行异常
systemMysql.users.root.password KDP 内置 MySQL root 用户密码(base64编码) a2RwUm9vdDEyMyo= - 仅使用 KDP 内置 MySQL 时生效
- 安装后强制更新会导致 KDP 内置 MySQL 工作负载运行异常
systemMysql.users.kdpAdmin.user KDP 基础服务使用的 MySQL 用户名 kdpAdmin - 如使用 KDP 内置 MySQL 会自动创建用户
- 如使用外部 MySQL,可指定为对应的用户名
systemMysql.users.kdpAdmin.password KDP 基础服务使用的 MySQL 用户密码(base64编码) a2RwQWRtaW4xMjMq - 如使用 KDP 内置 MySQL 会自动设置用户密码
- 如使用外部 MySQL,可指定为对应的用户密码
dnsService.name KDP 日志网关自动发现所使用的 DNS service 名称 coredns 配合dnsService.namespace参数使用,仅当 K8s 集群的 DNS 服务不使用 CoreDNS 时指定
dnsService.namespace KDP 日志网关自动发现所使用的 DNS service 命名空间 kube-system

访问 KDP UX

安装完成后可访问 KDP UX,以下两种情况二选一(如指定了"--set ingress.tlsSecretName=<YOUR_TLS_SECERT>",则使用 HTTPS 协议访问):

更新 KDP 基础设施层

命令行一键更新:

# > 指定 "--debug" 可开启debug日志
# > 指定 "--src-upgrade" 更新 KDP 基础设施层最新配置清单
# > 指定 "--vela-upgrade" 更新 KDP Vela 服务
# > 指定 "--set k1=v1 --set k2=v2 ..." 更新 KDP 基础设施层运行时参数
kdp upgrade --set k1=v1 --set k2=v2 ...

安装 KDP 大数据应用层

当 KDP 基础设施层安装完成后,用户可通过访问 KDP UX 以界面化的方式安装 KDP 大数据应用层组件;

KDP 内置支持的应用目录可参考:应用目录概览