TiDB Upgrade Failure on Kubernetes Deployment

Note:
This topic has been translated from a Chinese forum by GPT and might contain errors.

Original topic: 部署在k8s上的TiDB升级失败

| username: 数据小黑

[Test Environment] TiDB
[TiDB Version] V7.0.0
[Reproduction Path] Upgrade from 6.5.0 to V7.0.0
[Encountered Issue: Symptoms and Impact]
PD upgrade failed, log error: Fatal glibc error: CPU does not support x86-64-v2
[Resource Configuration] 16C32G * 3
[Attachments: Screenshots/Logs/Monitoring] None

I couldn’t find new hardware requirements in the official documentation. The compilation environment requirements are the same for both 6.5 and 7.0. Does the new version of PD have higher hardware requirements?
image

| username: xfworld | Original post link

Maybe you downloaded the wrong version…

| username: 数据小黑 | Original post link

I haven’t really paid attention to it. I always thought it was because the machine was old. I’ll take a look at it right away.

| username: 数据小黑 | Original post link

The image seems fine, it’s just that the CPU is too old. I searched online and found many similar interpretations:

| username: tidb狂热爱好者 | Original post link

This is the image that has been changed.

| username: 数据小黑 | Original post link

Is this because the underlying requirements were higher and the image was changed, or was the image changed without considering compatibility issues? The effect of this is that version 7.0 will exclude a batch of machines, although I’m not sure about the proportion. I always feel that this matter needs to be carefully considered.

| username: xfworld | Original post link

You can create the image yourself. To confirm if this is the issue, you can try creating an image yourself, but it is quite time-consuming. :upside_down_face:

| username: 数据小黑 | Original post link

It’s definitely worth taking the time to try it out. Time is like a sponge; if you squeeze it, you’ll always find some. :smiley:

| username: Billmay表妹 | Original post link

Does the documentation specify it?

| username: liuis | Original post link

Change the image.

| username: 数据小黑 | Original post link

Not specified

| username: 数据小黑 | Original post link

Which image should I switch to? Is there a special version of the image? I’m a bit confused.

| username: Billmay表妹 | Original post link

Since version 6.6, we indeed have higher requirements, needing the x86_64_v2 instruction set, which means versions after the Core series. Rocky Linux has CPU requirements; it must support the x86-64-v2 instruction set. The relevant standard is set by Red Hat, and Red Hat 9 also has this requirement. According to Wikipedia’s description, CPUs released after 2009 started to support it, meaning that CPUs from the Core series onwards are supported.

| username: 数据小黑 | Original post link

Could you please specify in the relevant documentation that at least version 6.5.0 is compatible with older machines?

| username: Billmay表妹 | Original post link

Yes, the documentation team will add it.

| username: Billmay表妹 | Original post link

After reading the internal documentation, TiDB ARM version base image is migrated to Rocky Linux.
Using a multi-architecture Rocky Linux 9 image as the base image for replacement.
https://hub.docker.com/_/rockylinux
I saw in the internal documentation:
The original TiDB ARM version base image had some security vulnerabilities, and the official CentOS image is no longer maintained, with no suitable upgrade version for vulnerability fixes.

| username: ShawnYan | Original post link

Which Linux command can confirm whether the current system supports x86_64_v2?

| username: 数据小黑 | Original post link

This topic was automatically closed 60 days after the last reply. New replies are no longer allowed.