当前位置:网站首页>Grayscale upgrade tidb operator
Grayscale upgrade tidb operator
2022-07-06 08:02:00 【Tianxiang shop】
If you want to upgrade TiDB Operator To the latest version , At the same time, I hope to control the impact of the upgrade , Avoid damage to the whole Kubernetes All in the cluster TiDB Clusters have unpredictable effects , It can be upgraded by grayscale upgrading TiDB Operator. After using grayscale upgrade , You can confirm in the grayscale deployment cluster TiDB Operator The impact of the upgrade , Upon confirmation of TiDB Operator After the new version works stably , Again Normal upgrade TiDB Operator.
TiDB Operator Currently, only some components can be grayed out , namely tidb-controller-manager and tidb-scheduler, No support for Enhanced StatefulSet controller and Access controller Grayscale upgrade .
In the use of TiDB Operator when ,tidb-scheduler
It's not necessary to use . You can refer to tidb-scheduler And default-scheduler, Confirm whether to deploy tidb-scheduler
.
The first 1 Step : For the current TiDB Operator To configure selector And perform the upgrade
At present TiDB Operator Of values.yaml
in , Add the following selector To configure :
controllerManager: selector: - version!=canary
Reference resources Online upgrade or Offline upgrade , For the current TiDB Operator Perform the upgrade steps :
helm upgrade tidb-operator pingcap/tidb-operator --version=${chart_version} -f ${HOME}/tidb-operator/values-tidb-operator.yaml
The first 2 Step : Deploy grayscale TiDB Operator
Reference resources Online deployment TiDB Operator Of the 1 And the first step 2 Step , Get the grayscale version you want to deploy TiDB Operator Of
values.yaml
file , And invalues.yaml
Add the following configuration .controllerManager: selector: - version=canary appendReleaseSuffix: true #scheduler: # create: false # If you don't need to `tidb-scheduler`, Set this value to false advancedStatefulset: create: false admissionWebhook: create: false
appendReleaseSuffix
I need to set totrue
.If you don't need grayscale upgrade tidb-scheduler, You can set
scheduler.create: false
. If you need a grayscale upgrade tidb-scheduler, To configurescheduler.create: true
, Will create a file named{ { .scheduler.schedulerName }}-{ {.Release.Name}}
Of scheduler. If you want to deploy in grayscale TiDB Operator Use this scheduler, Need configuration TidbCluster CR Mediumspec.schedulerName
For this scheduler Name .Because grayscale upgrade does not support enhanced StatefulSet Controller and access controller , You have to configure
advancedStatefulset.create: false
andadmissionWebhook.create: false
.For more information about the parameters related to gray-scale deployment , May refer to Use multiple sets TiDB Operator Manage different TiDB colony - Related parameters .
stay Different namespace in ( for example
tidb-admin-canary
), Use Different Helm Release Name( for examplehelm install tidb-operator-canary ...
) Deploy grayscale TiDB Operator:helm install tidb-operator-canary pingcap/tidb-operator --namespace=tidb-admin-canary --version=${operator_version} -f ${HOME}/tidb-operator/${operator_version}/values-tidb-operator.yaml
take
${operator_version}
Replace with the one you need to upgrade to TiDB Operator Version number .
The first 3 Step : Test grayscale TiDB Operator ( Optional )
Upgrade normally TiDB Operator front , Gray scale deployment can be tested TiDB Operator Whether it works stably . The components that support testing are tidb-controller-manager and tidb-scheduler.
If you need to test grayscale deployment tidb-controller-manager, This can be done by the following command , For a TiDB Cluster settings label:
kubectl -n ${namespace} label tc ${cluster_name} version=canary
By viewing the two deployed tidb-controller-manager Log , You can confirm this setting label Of TiDB Clusters have been deployed by grayscale TiDB Operator management . The steps to view the log are as follows :
View the current TiDB Operator Of tidb-controller-manager Log :
kubectl -n tidb-admin logs tidb-controller-manager-55b887bdc9-lzdwv
The expected output is as follows :
I0305 07:52:04.558973 1 tidb_cluster_controller.go:148] TidbCluster has been deleted tidb-cluster-1/basic1
View grayscale deployment TiDB Operator Of tidb-controller-manager Log :
kubectl -n tidb-admin-canary logs tidb-controller-manager-canary-6dcb9bdd95-qf4qr
The expected output is as follows :
I0113 03:38:43.859387 1 tidbcluster_control.go:69] TidbCluster: [tidb-cluster-1/basic1] updated successfully
If you need to test grayscale deployment tidb-scheduler, This can be done by the following command , For a TiDB Cluster modification
spec.schedulerName
bytidb-scheduler-canary
:kubectl -n ${namespace} edit tc ${cluster_name}
After modification , Components in the cluster will be upgraded in a rolling manner , By viewing the grayscale deployment TiDB Operator Of
tidb-scheduler
Log , You can confirm that the cluster has used grayscaletidb-scheduler
:kubectl -n tidb-admin-canary logs tidb-scheduler-canary-7f7b6c7c6-j5p2j -c tidb-scheduler
After the test is completed , You can undo the changes in the previous two steps , Reuse the current TiDB Operator To manage TiDB colony .
kubectl -n ${namespace} label tc ${cluster_name} version-
kubectl -n ${namespace} edit tc ${cluster_name}
The first 4 Step : Normal upgrade TiDB Operator
Confirm the grayscale deployment TiDB Operator After normal operation , It can be upgraded normally TiDB Operator.
Delete grayscale deployment TiDB Operator:
helm -n tidb-admin-canary uninstall ${release_name}
normal upgrade TiDB Operator.
边栏推荐
- Redis list detailed explanation of character types yyds dry goods inventory
- [research materials] 2022 China yuancosmos white paper - Download attached
- 从 CSV 文件迁移数据到 TiDB
- PHP - Common magic method (nanny level teaching)
- flask返回文件下载
- 使用 BR 恢复 S3 兼容存储上的备份数据
- How to prevent Association in cross-border e-commerce multi account operations?
- [Yugong series] February 2022 U3D full stack class 010 prefabricated parts
- Linked list interview questions (Graphic explanation)
- Leetcode question brushing record | 203_ Remove linked list elements
猜你喜欢
ESP系列引脚说明图汇总
Golang DNS 随便写写
ROS learning (IX): referencing custom message types in header files
Epoll and IO multiplexing of redis
Asia Pacific Financial Media | designer universe | Guangdong responds to the opinions of the national development and Reform Commission. Primary school students incarnate as small community designers
数据治理:主数据的3特征、4超越和3二八原则
It's hard to find a job when the industry is in recession
【Redis】NoSQL数据库和redis简介
ESP系列引脚說明圖匯總
Machine learning - decision tree
随机推荐
软件开发的一点随记
【云原生】手把手教你搭建ferry开源工单系统
WebRTC系列-H.264预估码率计算
"Designer universe": "benefit dimension" APEC public welfare + 2022 the latest slogan and the new platform will be launched soon | Asia Pacific Financial Media
Make learning pointer easier (3)
[Yugong series] creation of 009 unity object of U3D full stack class in February 2022
Analysis of Top1 accuracy and top5 accuracy examples
07- [istio] istio destinationrule (purpose rule)
Pangolin Library: control panel, control components, shortcut key settings
ROS learning (IX): referencing custom message types in header files
Uibehavior, a comprehensive exploration of ugui source code
(lightoj - 1410) consistent verbs (thinking)
wincc7.5下载安装教程(Win10系统)
好用的TCP-UDP_debug工具下载和使用
在 uniapp 中使用阿里图标
Hcip day 16
Epoll and IO multiplexing of redis
Data governance: Data Governance under microservice architecture
Machine learning - decision tree
灰度升级 TiDB Operator