tidb on aks - luyomo/OhMyTiUP GitHub Wiki

Todo List

  • Separate the backend into web page / aks / gcp / k8s The reason to separate the source into three,
    • the k8s api will be deployed into different location according the customer’s option.
    • web page is the frontend
    • azure is one backend which will handle the api in the backend
    • gcp is one backend which will handle the api in the backend
  • Frontend
    • Config file update Where to get the config information of one version.
      • Todo
        • TiDB
          • Read config structure from config/config.go to get whole structure of specific version. Prepare golang script to extract config from config.go.
          • Read Default value from config/config.go (https://github.com/pingcap/tidb/blob/v7.5.1/pkg/config/config.go#L888) Prepare Default value from config/config.go(Almost same to the first one)
          • Read config value from configmap applied to TiDB Cluster Prepare golang script to read the configmap which need AKS kubeconfig
          • Run query to fetch data [select * from information_schema.cluster_config]
            Config Name Instance 01 Instance 02 Default Ref
      • Component
        • TiDB
        • TiKV
        • PD
        • TiFlash
        • DM
        • TiCDC
    • Automatic fill in the client id/secret in the login page
    • TiDB Version config into DB
    • Region option config into DB
    • VM Spec config into DB
    • Merge the Get(Get subscription/resource group) into one function
    • Fetch AKS basic from GUI direct
    • Update the State to complete regularly
    • Show customer info in the page
    • Get all tidb tags from repo GET repos:owner/:repo/git/refs/tags
    • Sort the K8S version in the creation form
    • How to use workflow to create AKS Cluster
    • Add progress of cluster creation
    • When does the private endpoint have multiple endpoints? And How to show in the private endpoint page.
    • Embend the web shell terminal(https://github.com/yudai/gotty) or (https://www.supertechcrew.com/wetty-browser-ssh-terminal/)
    • Resolve the issue of the grafana page
         app-index.js:35 Warning: findDOMNode is deprecated in StrictMode. findDOMNode was passed an instance of DomWrapper which is inside StrictMode. Instead, add a ref directly to the element you want to reference. Learn more about using refs safely here: https://reactjs.org/link/strict-mode-find-node
      at div
      at Spin (webpack-internal:///(app-pages-browser)/./node_modules/antd/es/spin/index.js:74:24)
      at eval (webpack-internal:///(app-pages-browser)/./node_modules/@rc-component/trigger/es/TriggerWrapper.js:8:24)
      at DomWrapper (webpack-internal:///(app-pages-browser)/./node_modules/rc-resize-observer/es/SingleObserver/DomWrapper.js:23:90)
              
  • Backend
    • Use tidb-operator 1.6 version
  • Azure
    • Deploy VM cluster to keep metrics
    • Add monitoring to VM load blancer
    • Collect Cluster log and sync it to supporter
    • Enable Audit Log
    • Gather operation log
    • Alert to email/line(TBD)
    • Regular backup
    • PITR backup
    • Data import with lighting
    • Data Export with dumpling
    • Scale out
    • Scale in
    • Scale UP
    • Scale Down
    • TiDB Auto Scaling
    • TiKV Auto Scaling
    • TiFlash Auto Scaling

Web APP

Private cluster

  • Deploy AKS cluster in the subscription
  • Deploy Container APP(API) in the subscription to control AKS resource
  • Web Application

Pubic cluster with IP restrict

  • Deploy AKS Cluster in the subscription
  • Add Backend IP whitelist to K8S
  • Web Application

Public cluster without restrict

  • Deploy AKS Cluster in the subscription
  • Web Application

MIND

workflow preparation

  • Create TiDB cluster task
    • Create AKS Cluster
    • Create AKS Node pool for each component
    • Deploy CRD for TiDB Cluster
    • Deploy TiDB operator
    • Deploy TiDB Cluster using operator

Deploy controller into customer account

  • Resources
    • API controller(golang)
      • cluster creation
⚠️ **GitHub.com Fallback** ⚠️