默认情况下集群的初始化参数根据不同的 Kubernetes 集群提供方由驱动程序自动配置,但在一些高级场景中,比如用户有自定义 HA 数据库、自定义 ETCD 配置和自定义镜像仓库等需求时,自定义初始化 Rainbond 集群参数将对您有用。

Rainbond 追求以最佳实践的参数自动化配置,减小用户门槛。在您未完全掌握初始化参数配置之前,请谨慎配置。

image-20210220134706244

如上图所示,当进入集群初始化确认页面时,可以点击红框处进行集群初始化参数配置。

配置示例如下:

  1. metadata:
  2. creationTimestamp: null
  3. name: rainbondcluster
  4. spec:
  5. enableHA: true
  6. etcdConfig:
  7. endpoints:
  8. - 192.168.3.103:2379
  9. - 192.168.3.102:2379
  10. - 192.168.3.101:2379
  11. secretName: rbd-etcd-secret
  12. gatewayIngressIPs:
  13. - 192.168.3.104
  14. nodesForGateway:
  15. - internalIP: 192.168.3.101
  16. name: 192.168.3.101
  17. - internalIP: 192.168.3.102
  18. name: 192.168.3.102
  19. - internalIP: 192.168.3.103
  20. name: 192.168.3.103
  21. imageHub:
  22. domain: image.xxxxx.com
  23. namespace: test
  24. password: xxxxx!
  25. username: root
  26. rainbondVolumeSpecRWO:
  27. csiPlugin: {}
  28. imageRepository: ""
  29. storageClassParameters: {}
  30. rainbondVolumeSpecRWX:
  31. storageClassName: glusterfs-simple
  32. csiPlugin:
  33. aliyunNas: {}
  34. storageClassParameters:
  35. parameters:
  36. volumeAs: subpath
  37. server: xxx.nas.server.dddd.com
  38. archiveOnDelete: true
  39. regionDatabase:
  40. host: 172.20.251.91
  41. name: rbdregion
  42. password: password
  43. port: 3306
  44. username: root
  45. suffixHTTPHost: 5-3-0.goodrain.org

参数仅需要设置需要自定义的部分即可,无需全量设置。

配置参数说明如下:

参数二级参数说明
etcdConfig (struct)endpoints(array)ETCD 的实例列表
secretName (string)ETCD 的 SSL 证书 secret name,secret如何生成参考下方”生成ETCD证书的secret”
enableHA (bool)是否高可用部署,true/false,默认false
suffixHTTPHost(string)集群 HTTP 默认域名后缀,留空则自动分配
gatewayIngressIPs (array)网关外网 IP 地址,一般是指 SLB 或 VIP
nodesForGateway (array)name(string)节点名称(以 kubernetes 节点信息为准)
internalIP(string)节点内网 IP(以 kubernetes 节点信息为准)
externalIP(string)节点外围 IP(以 kubernetes 节点信息为准)
nodesForChaos (array)与 nodesForGateway 一致
imageHub(struct)domain (string)镜像仓库域名,需要可正常访问
namespace(string)镜像仓库命名空间
username(string)用户名
password(string)密码
regionDatabase(struct)host(string)集群数据库 IP 地址
port(int)集群数据库端口
username(string)集群账号
password(string)集群密码
name(string)集群数据库名称
rainbondVolumeSpecRWX共享存储配置,详细参考用例。留空则使用默认存储
storageClassName(string)集群中存在的storageclass名称,非必填
storageClassParameters(struct)
csiPlugin(struct)
storageRequest(int)
rainbondVolumeSpecRWO与rainbondVolumeSpecRWX一致。单读单写存储,一般是指块存储设备。如果提供则有状态服务默认将使用。

生成Etcd证书的secret

RKE:

  • CA证书:/etc/kubernetes/ssl/kube-ca.pem
  • 客户端证书:/etc/etcd/ssl/kube-node.pem
  • 客户端密钥:/etc/etcd/ssl/kube-node-key.pem
  1. kubectl create secret generic rbd-etcd-secret -n rbd-system \
  2. --from-file=ca-file=/etc/kubernetes/ssl/kube-ca.pem \
  3. --from-file=cert-file=/etc/kubernetes/ssl/kube-node.pem \
  4. --from-file=key-file=/etc/kubernetes/ssl/kube-node-key.pem

kubeasz:

  • CA证书:/etc/kubernetes/ssl/ca.pem
  • 客户端证书:/etc/etcd/ssl/etcd.pem
  • 客户端密钥:/etc/etcd/ssl/etcd-key.pem
  1. kubectl create secret generic rbd-etcd-secret -n rbd-system \
  2. --from-file=ca-file=/etc/kubernetes/ssl/ca.pem \
  3. --from-file=cert-file=/etc/kubernetes/ssl/etcd.pem \
  4. --from-file=key-file=/etc/kubernetes/ssl/etcd-key.pem