基于阿里云 ACK 集群安装

安装前提

开始之前,请确定已经购买了以下阿里云资源,所有资源要求在同一区域:

阿里云 ACK 托管集群

  • ACK Kubernetes 版本不低于1.16
  • 集群内至少 2 节点,并配置好 kubectl 命令
  • 节点具备公网访问能力
  • 配置要求 8核CPU 32G内存
  • 磁盘空间: 根分区 200G 数据分区(docker分区)300G

SLB负载均衡

  • 具备一个 公网IP地址
  • 将 ACK 集群中的节点纳入后端服务器组
  • 配置以下端口映射:80 443 6060 7070 8443

NAS 存储服务

  • 提供一个挂载点,格式类似 123456789-var48.cn-shanghai.nas.aliyuncs.com:/
  • 关闭访问控制(黑白名单),或针对所有 ACK 节点开启访问权限

RDS 数据库服务

  • 预先生成两个数据库实例: console region
  • 生成数据库账户密码,对上述数据库赋予全部权限
  • 关闭访问控制(黑白名单),或针对所有 ACK 节点开启访问权限
  • 数据库版本选择 8.0
  • 数据库磁盘空间不少于 5 G

容器镜像服务

  • 创建好命名空间、用户名、密码

helm 版本

  • helm3 以上版本

对接ACK集群

安装 Kubectl 命令行工具

安装 Kubectl 命令行工具

获取 kubeconfig 信息

  • 在阿里云ACK集群首页,点击进入集群,点击连接信息,复制下面的 config 文件

基于阿里云 ACK 集群安装 - 图1

如上图所示, 复制 kubeconfig 文件写到 ~/.kube/config 文件里。

  1. mkdir ~/.kube/
  2. vi ~/.kube/config

安装helm

  1. wget https://pkg.goodrain.com/pkg/helm && chmod +x helm && mv helm /usr/local/bin/

创建values.yaml 文件

  • 通过自定义的形式,选择rainbond 集群的配置以及是否对接已有的阿里云RDS,NAS,镜像仓库等。
  1. $ vi values.yaml
  2. ##Rainbondcluster
  3. Cluster:
  4. ## 定义是否开启高可用,true为开,false为关,高可用下默认副本集为2
  5. enableHA: false
  6. ## 定义是否使用外部镜像镜像仓库,true为开,false为关,需要用户提供已存在的镜像仓库的 域名、空间名称、用户名以及密码
  7. imageHub:
  8. enable: false
  9. domain: fdfef-hangzhou.aliyuncs.com
  10. namespace: sefe
  11. password: grddgar
  12. username: zfefee
  13. ## 外部ETCD,对应填写IP,证书,true为开,false为关,如有阿里云ETCD直接填写IP即可
  14. etcd:
  15. enable: false
  16. endpoints:
  17. - 192.168.0.1:2379
  18. - 192.168.0.2:2379
  19. - 192.168.0.3:2379
  20. secretName: "rbd-etcd-secret"
  21. ## 外部存储,true为开,false为关,如需对接阿里云NAS存储,如需修改挂载参数,可按照格式修改mountOptions下面的参数,挂载点直接修改server地址
  22. RWX:
  23. enable: false
  24. config:
  25. csiPlugin:
  26. aliyunNas:
  27. accessKeyID: ""
  28. accessKeySecret: ""
  29. storageClassParameters:
  30. ## mountOptions:
  31. ## - "nolock,tcp,noresvport"
  32. ## - "vers=4"
  33. parameters:
  34. volumeAs: subpath
  35. archiveOnDelete: "true"
  36. server: NAS_SERVER_ADDR
  37. ## 外部存储,直接填写storageClassName,true为开,false为关
  38. RWO:
  39. enable: false
  40. storageClassName: glusterfs-simple
  41. ## region数据库,true为开,false为关,阿里云用户务必提供外接高可用的 RDS Mysql 8.0 数据库,该数据库中需要提前创建 region 数据库,需要提供内网可访问的 RDS 域名、用户名、密码
  42. regionDatabase:
  43. enable: false
  44. host: 4444f-8vbidfd.mysql.zhangbei.rds.aliyuncs.com
  45. name: region
  46. password: gr12dfe
  47. port: 3306
  48. username: admin
  49. ## ui数据库,true为开,false为关,阿里云用户务必提供外接高可用的 RDS Mysql 8.0 数据库,该数据库中需要提前创建 console 数据库,需要提供内网可访问的 RDS 域名、用户名、密码
  50. uiDatabase:
  51. enable: false
  52. host: 4444f-8vbidfd.mysql.zhangbei.rds.aliyuncs.com
  53. name: console
  54. password: gr12dfe
  55. port: 3306
  56. username: admin
  57. ## 对外网关,填写SLB公网IP
  58. gatewayIngressIPs: 121.89.194.127
  59. ## chaos对应配置,高可用环境中,至少选择 2 个节点作为集群 构建服务运行节点,name为后端服务器节点的 node名称
  60. nodesForChaos:
  61. - name: cn-zhangjiakou.10.22.197.170
  62. - name: cn-zhangjiakou.10.22.197.171
  63. ## 网关节点对应配置,高可用环境中,至少选择 2 个节点作为集群 网关节点 ,推荐将所有节点作为网关节点使用,要求节点的 80、443、6060、7070、8443、 端口没有被占用。name 填写node节点的name即可
  64. nodesForGateway:
  65. - externalIP: 10.22.197.170
  66. internalIP: 10.22.197.170
  67. name: cn-zhangjiakou.10.22.197.170
  68. - externalIP: 10.22.197.171
  69. internalIP: 10.22.197.171
  70. name: cn-zhangjiakou.10.22.197.171

使用 Helm 安装 Rainbond

  • 创建rbd-system 命名空间
  1. kubectl create namespace rbd-system
  • 添加chart仓库
  1. helm repo add rainbond https://openchart.goodrain.com/goodrain/rainbond
  • 安装rainbond
  1. helm install rainbond rainbond/rainbond-cluster -f values.yaml -n rbd-system

验证安装

  • 查看pod状态
  1. kubectl get po -n rbd-system | grep rbd-app-ui
  • 等待 rbd-app-ui pod为 Running 状态即安装成功。
  • 安装成功以后,可通过 $gatewayIngressIPs:7070 访问rainbond控制台。

安装问题排查