ShardingSphere-Operator Concise User Manual

Install ShardingSphere-Operator

Configuration below configuration content, configuration file location shardingsphere-operator/values.yaml run

Source Code Install

kubectl create ns  shardingsphere-operator
cd charts/shardingsphere-operator/
helm dependency build
cd ../
helm install shardingsphere-operator shardingsphere-operator -n shardingsphere-operator

Install ShardingSphere-Proxy cluster

Configuration below configuration content, configuration file location shardingsphere-cluster/values.yaml run

Source Code Install

kubectl create ns  shardingsphere
cd charts/shardingsphere-cluster
helm dependency build
cd ../
helm install  shardingsphere-cluster shardingsphere-cluster -n shardingsphere

Online Install ShardingSphere-Proxy cluster && ShardingSphere-Operator (temporarily unavailable)

helm repo add shardingspherecloud https://sphereex.github.io/shardingsphere-on-cloud/
kubectl create ns  shardingsphere-operator
helm install shardingsphere-operator shardingspherecloud/shardingsphere-operator -n shardingsphere-operator
kubectl create ns  shardingsphere
helm install  shardingsphere-cluster shardingspherecloud/shardingsphere-cluster -n shardingsphere

Parameters

ShardingSphere Operator Parameters

NameDescriptionValue
replicaCountoperator replica count2
image.repositoryoperator image namesahrdingsphere-operator
image.pullPolicyimage pull policyIfNotPresent
image.tagimage tag0.0.1
imagePullSecretsimage pull secret of private repository[]
resourcesoperator Resources required by the operator{}
webhook.portoperator webhook boot port9443
health.healthProbePortoperator health check port8081

ShardingSphere-Proxy Cluster Parameters

NameDescriptionValue
replicaCountShardingSphere-Proxy cluster starts the number of replicas, Note: After you enable automaticScaling, this parameter will no longer take effect3
proxyVersionShardingSphere-Proxy cluster version5.2.0
automaticScaling.enableShardingSphere-Proxy Whether the ShardingSphere-Proxy cluster has auto-scaling enabledfalse
automaticScaling.scaleUpWindowsShardingSphere-Proxy automatically scales the stable window30
automaticScaling.scaleDownWindowsShardingSphere-Proxy automatically shrinks the stabilized window30
automaticScaling.targetShardingSphere-Proxy auto-scaling threshold, the value is a percentage, note: at this stage, only cpu is supported as a metric for scaling20
automaticScaling.maxInstanceShardingSphere-Proxy maximum number of scaled-out replicas4
automaticScaling.minInstanceShardingSphere-Proxy has a minimum number of boot replicas, and the shrinkage will not be less than this number of replicas1
resourcesShardingSphere-Proxy starts the requirement resource, and after opening automaticScaling, the resource of the request multiplied by the percentage of target is used to trigger the scaling action{}
service.typeShardingSphere-Proxy external exposure modeClusterIP
service.portShardingSphere-Proxy exposes port3307
startPortShardingSphere-Proxy boot port3307
mySQLDriver.versionShardingSphere-Proxy The ShardingSphere-Proxy mysql driver version will not be downloaded if it is empty5.1.47

Compute-Node ShardingSphere-Proxy ServerConfiguration Authority Parameters

NameDescriptionValue
serverConfig.authority.privilege.typeauthority provider for storage node, the default value is ALL_PERMITTEDALL_PRIVILEGES_PERMITTED
serverConfig.authority.users[0].passwordPassword for compute node.root
serverConfig.authority.users[0].userUsername,authorized host for compute node. Format: @ hostname is % or empty string means do not care about authorized hostroot@%

Compute-Node ShardingSphere-Proxy ServerConfiguration Mode Configuration Parameters

NameDescriptionValue
serverConfig.mode.typeType of mode configuration. Now only support Cluster modeCluster
serverConfig.mode.repository.props.namespaceNamespace of registry centergovernance_ds
serverConfig.mode.repository.props.server-listsServer lists of registry center{{ printf "%s-zookeeper.%s:2181" .Release.Name .Release.Namespace }}
serverConfig.mode.repository.props.maxRetriesMax retries of client connection3
serverConfig.mode.repository.props.operationTimeoutMillisecondsMilliseconds of operation timeout5000
serverConfig.mode.repository.props.retryIntervalMillisecondsMilliseconds of retry interval500
serverConfig.mode.repository.props.timeToLiveSecondsSeconds of ephemeral data live600
serverConfig.mode.repository.typeType of persist repository. Now only support ZooKeeperZooKeeper
serverConfig.mode.overwriteWhether overwrite persistent configuration with local configurationtrue
serverConfig.props.proxy-frontend-database-protocol-typeDefault startup protocolMySQL

ZooKeeper Chart Parameters

NameDescriptionValue
zookeeper.enabledSwitch to enable or disable the ZooKeeper helm charttrue
zookeeper.replicaCountNumber of ZooKeeper nodes1
zookeeper.persistence.enabledEnable persistence on ZooKeeper using PVC(s)false
zookeeper.persistence.storageClassPersistent Volume storage class""
zookeeper.persistence.accessModesPersistent Volume access modes["ReadWriteOnce"]
zookeeper.persistence.sizePersistent Volume size8Gi

Configuration Example

shardingsphere-operator/values.yaml

## @section ShardingSphere-Proxy operator parameters
## @param replicaCount operator  replica count
##
replicaCount: 2
image:
  ## @param image.repository operator image name
  ##
  repository: "sahrdingsphere-operator"
  ## @param image.pullPolicy image pull policy
  ##
  pullPolicy: IfNotPresent
  ## @param image.tag image tag
  ##
  tag: "0.0.1"
## @param imagePullSecrets image pull secret of private repository
## e.g:
## imagePullSecrets:
##   - name: mysecret
##
imagePullSecrets: []
## @param resources operator Resources required by the operator
## e.g:
## resources:
##   limits:
##     cpu: 2
##   limits:
##     cpu: 2
##
resources: {}
## @param webhook.port operator webhook boot port
##
webhook:
  port: 9443
## @param health.healthProbePort operator health check port
##
health:
  healthProbePort: 8081

shardingsphere-cluster/values.yaml

# @section ShardingSphere-Proxy cluster parameters
## @param replicaCount ShardingSphere-Proxy cluster starts the number of replicas, Note: After you enable automaticScaling, this parameter will no longer take effect
## @param proxyVersion ShardingSphere-Proxy cluster version
##
replicaCount: "3"
proxyVersion: "5.2.0"
## @param automaticScaling.enable ShardingSphere-Proxy Whether the ShardingSphere-Proxy cluster has auto-scaling enabled
## @param automaticScaling.scaleUpWindows ShardingSphere-Proxy automatically scales the stable window
## @param automaticScaling.scaleDownWindows ShardingSphere-Proxy automatically shrinks the stabilized window
## @param automaticScaling.target ShardingSphere-Proxy auto-scaling threshold, the value is a percentage, note: at this stage, only cpu is supported as a metric for scaling
## @param automaticScaling.maxInstance ShardingSphere-Proxy maximum number of scaled-out replicas
## @param automaticScaling.minInstance ShardingSphere-Proxy has a minimum number of boot replicas, and the shrinkage will not be less than this number of replicas
##
automaticScaling:
  enable: false
  scaleUpWindows: 30
  scaleDownWindows: 30
  target: 20
  maxInstance: 4
  minInstance: 1
## @param resources ShardingSphere-Proxy starts the requirement resource, and after opening automaticScaling, the resource of the request multiplied by the percentage of target is used to trigger the scaling action
## e.g:
## resources:
##   limits:
##     cpu: 2
##   requests:
##     cpu: 2
##
resources:
  limits:
    cpu: '2'
  requests:
    cpu: '1'
## @param service.type ShardingSphere-Proxy external exposure mode
## @param service.port ShardingSphere-Proxy exposes  port
##
service:
  type: ClusterIP
  port: 3307
## @param startPort ShardingSphere-Proxy boot port
##
startPort: 3307
## @param mySQLDriver.version ShardingSphere-Proxy The ShardingSphere-Proxy mysql driver version will not be downloaded if it is empty
##
mySQLDriver:
  version: "5.1.47"
## @section  ShardingSphere-Proxy ServerConfiguration parameters
## NOTE: If you use the sub-charts to deploy Zookeeper, the server-lists field must be "{{ printf \"%s-zookeeper.%s:2181\" .Release.Name .Release.Namespace }}",
## otherwise please fill in the correct zookeeper address
## The server.yaml is auto-generated based on this parameter.
## If it is empty, the server.yaml is also empty.
## ref: https://shardingsphere.apache.org/document/current/en/user-manual/shardingsphere-jdbc/yaml-config/mode/
## ref: https://shardingsphere.apache.org/document/current/en/user-manual/shardingsphere-jdbc/builtin-algorithm/metadata-repository/
##
serverConfig:
  ## @section Compute-Node ShardingSphere-Proxy ServerConfiguration authority parameters
  ## NOTE: It is used to set up initial user to login compute node, and authority data of storage node.
  ## @param serverConfig.authority.privilege.type authority provider for storage node, the default value is ALL_PERMITTED
  ## @param serverConfig.authority.users[0].password Password for compute node.
  ## @param serverConfig.authority.users[0].user Username,authorized host for compute node. Format: <username>@<hostname> hostname is % or empty string means do not care about authorized host
  ##
  authority:
    privilege:
      type: ALL_PRIVILEGES_PERMITTED
    users:
      - password: root
        user: root@%
  ## @section Compute-Node ShardingSphere-Proxy ServerConfiguration mode Configuration parameters
  ## @param serverConfig.mode.type Type of mode configuration. Now only support Cluster mode
  ## @param serverConfig.mode.repository.props.namespace Namespace of registry center
  ## @param serverConfig.mode.repository.props.server-lists Server lists of registry center
  ## @param serverConfig.mode.repository.props.maxRetries Max retries of client connection
  ## @param serverConfig.mode.repository.props.operationTimeoutMilliseconds Milliseconds of operation timeout
  ## @param serverConfig.mode.repository.props.retryIntervalMilliseconds Milliseconds of retry interval
  ## @param serverConfig.mode.repository.props.timeToLiveSeconds Seconds of ephemeral data live
  ## @param serverConfig.mode.repository.type Type of persist repository. Now only support ZooKeeper
  ## @param serverConfig.mode.overwrite Whether overwrite persistent configuration with local configuration
  ##
  mode:
    overwrite: true
    repository:
      props:
        maxRetries: 3
        namespace: governance_ds
        operationTimeoutMilliseconds: 5000
        retryIntervalMilliseconds: 500
        server-lists: "{{ printf \"%s-zookeeper.%s:2181\" .Release.Name .Release.Namespace }}"
        timeToLiveSeconds: 600
      type: ZooKeeper
    type: Cluster
  props:
    proxy-frontend-database-protocol-type: MySQL
## @section ZooKeeper chart parameters

## ZooKeeper chart configuration
## https://github.com/bitnami/charts/blob/master/bitnami/zookeeper/values.yaml
##
zookeeper:
  ## @param zookeeper.enabled Switch to enable or disable the ZooKeeper helm chart
  ##
  enabled: true
  ## @param zookeeper.replicaCount Number of ZooKeeper nodes
  ##
  replicaCount: 3
  ## ZooKeeper Persistence parameters
  ## ref: https://kubernetes.io/docs/user-guide/persistent-volumes/
  ## @param zookeeper.persistence.enabled Enable persistence on ZooKeeper using PVC(s)
  ## @param zookeeper.persistence.storageClass Persistent Volume storage class
  ## @param zookeeper.persistence.accessModes Persistent Volume access modes
  ## @param zookeeper.persistence.size Persistent Volume size
  ##
  persistence:
    enabled: false
    storageClass: ""
    accessModes:
      - ReadWriteOnce
    size: 8Gi

Clean

helm uninstall shardingsphere-cluster -n shardingsphere
helm uninstall shardingsphere-operator -n shardingsphere-operator
kubectl delete crd shardingsphereproxies.shardingsphere.apache.org shardingsphereproxyserverconfigs.shardingsphere.apache.org