Skip to content

Latest commit

 

History

History
284 lines (253 loc) · 17.6 KB

shardingsphere-operator.md

File metadata and controls

284 lines (253 loc) · 17.6 KB

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-operator-cluster/values.yaml run

Source Code Install

kubectl create ns  shardingsphere
cd charts/shardingsphere-operator-cluster
helm dependency build
cd ../
helm install  shardingsphere-operator-cluster shardingsphere-operator-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-operator-cluster shardingspherecloud/shardingsphere-operator-cluster -n shardingsphere

Parameters

ShardingSphere Operator Parameters

Name Description Value
replicaCount operator replica count 2
image.repository operator image name sahrdingsphere-operator
image.pullPolicy image pull policy IfNotPresent
image.tag image tag 0.0.1
imagePullSecrets image pull secret of private repository []
resources operator Resources required by the operator {}
webhook.port operator webhook boot port 9443
health.healthProbePort operator health check port 8081

ShardingSphere-Proxy Cluster Parameters

Name Description Value
replicaCount ShardingSphere-Proxy cluster starts the number of replicas, Note: After you enable automaticScaling, this parameter will no longer take effect 3
proxyVersion ShardingSphere-Proxy cluster version 5.2.0
automaticScaling.enable ShardingSphere-Proxy Whether the ShardingSphere-Proxy cluster has auto-scaling enabled false
automaticScaling.scaleUpWindows ShardingSphere-Proxy automatically scales the stable window 30
automaticScaling.scaleDownWindows ShardingSphere-Proxy automatically shrinks the stabilized window 30
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 20
automaticScaling.maxInstance ShardingSphere-Proxy maximum number of scaled-out replicas 4
automaticScaling.minInstance ShardingSphere-Proxy has a minimum number of boot replicas, and the shrinkage will not be less than this number of replicas 1
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 {}
service.type ShardingSphere-Proxy external exposure mode ClusterIP
service.port ShardingSphere-Proxy exposes port 3307
startPort ShardingSphere-Proxy boot port 3307
mySQLDriver.version ShardingSphere-Proxy The ShardingSphere-Proxy mysql driver version will not be downloaded if it is empty 5.1.47

Compute-Node ShardingSphere-Proxy ServerConfiguration Authority Parameters

Name Description Value
serverConfig.authority.privilege.type authority provider for storage node, the default value is ALL_PERMITTED ALL_PRIVILEGES_PERMITTED
serverConfig.authority.users[0].password Password for compute node. root
serverConfig.authority.users[0].user Username,authorized host for compute node. Format: @ hostname is % or empty string means do not care about authorized host root@%

Compute-Node ShardingSphere-Proxy ServerConfiguration Mode Configuration Parameters

Name Description Value
serverConfig.mode.type Type of mode configuration. Now only support Cluster mode Cluster
serverConfig.mode.repository.props.namespace Namespace of registry center governance_ds
serverConfig.mode.repository.props.server-lists Server lists of registry center {{ printf "%s-zookeeper.%s:2181" .Release.Name .Release.Namespace }}
serverConfig.mode.repository.props.maxRetries Max retries of client connection 3
serverConfig.mode.repository.props.operationTimeoutMilliseconds Milliseconds of operation timeout 5000
serverConfig.mode.repository.props.retryIntervalMilliseconds Milliseconds of retry interval 500
serverConfig.mode.repository.props.timeToLiveSeconds Seconds of ephemeral data live 600
serverConfig.mode.repository.type Type of persist repository. Now only support ZooKeeper ZooKeeper
serverConfig.mode.overwrite Whether overwrite persistent configuration with local configuration true
serverConfig.props.proxy-frontend-database-protocol-type Default startup protocol MySQL

ZooKeeper Chart Parameters

Name Description Value
zookeeper.enabled Switch to enable or disable the ZooKeeper helm chart true
zookeeper.replicaCount Number of ZooKeeper nodes 1
zookeeper.persistence.enabled Enable persistence on ZooKeeper using PVC(s) false
zookeeper.persistence.storageClass Persistent Volume storage class ""
zookeeper.persistence.accessModes Persistent Volume access modes ["ReadWriteOnce"]
zookeeper.persistence.size Persistent Volume size 8Gi

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-operator-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-operator-cluster -n shardingsphere
helm uninstall shardingsphere-operator -n shardingsphere-operator
kubectl delete crd shardingsphereproxies.shardingsphere.apache.org shardingsphereproxyserverconfigs.shardingsphere.apache.org