Repository: pingcap/docs-tidb-operator
Pull request #2745: zh: how to access tidb
Author: login: liubog2008
Labels: name: translation/done
description: This PR has been translated from English into Chinese and updated to pingcap/docs-cn in a PR.
name: size/L
description: Denotes a PR that changes 100-499 lines, ignoring generated files.
name: lgtm
name: approved
name: v2.0
description: This PR/issue applies to TiDB Operator v2.0.
Created: 2025-04-24T04:01:28Z | Merged: 2025-05-27T06:04:16Z

<!--Thanks for your contribution to TiDB Operator documentation. See [CONTRIBUTING](https://github.com/pingcap/docs/blob/master/CONTRIBUTING.md) before filing this pull request (PR).-->

### First-time contributors' checklist <!--Remove this section if you're not a first-time contributor.-->

- [x] I've signed [**Contributor License Agreement**](https://cla-assistant.io/pingcap/docs-tidb-operator) that's required for repo owners to accept my contribution.

### What is changed, added, or deleted? (Required)

<!--Tell us what you did and why.-->

### Which TiDB Operator version(s) do your changes apply to? (Required)

<!--Tick the checkbox(es) below to choose the TiDB Operator version(s) that your changes apply to.-->

- [ ] master (the latest development version)
- [x] v2.0 (TiDB Operator 2.0 versions)
- [ ] v1.6 (TiDB Operator 1.6 versions)
- [ ] v1.5 (TiDB Operator 1.5 versions)
- [ ] v1.4 (TiDB Operator 1.4 versions)
- [ ] v1.3 (TiDB Operator 1.3 versions)

### What is the related PR or file link(s)?

<!--Give us some reference link(s) that might help quickly review and merge your PR, for example, a file link that supports why you changed the document.-->

- This PR is translated from: <!--Give links here-->
- Other reference link(s): <!--Give links here-->



Diff:
diff --git a/zh/TOC.md b/zh/TOC.md
index 9a172d8142..2d0fbc2c90 100644
--- a/zh/TOC.md
+++ b/zh/TOC.md
@@ -5,6 +5,7 @@
 - 关于 TiDB Operator
 - 部署
     - 自托管的 Kubernetes
+    - [访问 TiDB 集群](access-tidb.md)
 - 监控与告警
 - 数据迁移
     - 从 MySQL 迁移
diff --git a/zh/access-tidb.md b/zh/access-tidb.md
index 097aeb00be..7858a6c154 100644
--- a/zh/access-tidb.md
+++ b/zh/access-tidb.md
@@ -3,4 +3,105 @@ title: 访问 Kubernetes 上的 TiDB 集群
 summary: 介绍如何访问 Kubernetes 上的 TiDB 集群。
 ---
 
-# 访问 TiDB 集群
+# 访问 Kubernetes 上的 TiDB 集群
+
+本文介绍如何通过 Kubernetes [Service](https://kubernetes.io/zh-cn/docs/concepts/services-networking/service/) 访问 TiDB 集群。根据不同的访问场景需求，你可以将 Service 配置为以下类型：
+
+- [`ClusterIP`](#clusterip)：仅限 Kubernetes 集群内部访问
+- [`NodePort`](#nodeport)：允许从集群外部访问（适用于测试环境）
+- [`LoadBalancer`](#loadbalancer)：通过云平台的 LoadBalancer 特性访问（推荐用于生产环境）
+
+## ClusterIP
+
+`ClusterIP` 类型的 Service 通过集群的内部 IP 暴露服务，仅支持在 Kubernetes 集群内部访问 TiDB 集群。
+
+你可以使用以下格式之一访问 TiDB 集群：
+
+- `basic-tidb`：仅限在同一 Namespace 内访问
+- `basic-tidb.default`：支持跨 Namespace 访问
+- `basic-tidb.default.svc`：支持跨 Namespace 访问
+
+其中，`basic-tidb` 是 Service 的名称，`default` 是 Namespace 的名称，详见 [Service 与 Pod 的 DNS](https://kubernetes.io/zh-cn/docs/concepts/services-networking/dns-pod-service/#namespaces-of-services)。
+
+每个 TiDBGroup 会自动创建一个能够访问该 TiDBGroup 所有 TiDB 的 Service。例如，TiDBGroup `tidb-0` 会创建一个内部 Service `tidb-0-tidb`。
+
+你可以直接使用默认创建的 Service 访问 TiDB，也可以根据需要自行创建 Service。
+
+以下 YAML 示例用于创建一个能够访问 Cluster `db` 下所有 TiDB 节点的 Service：
+
+```yaml
+apiVersion: v1
+kind: Service
+metadata:
+  name: tidb
+spec:
+  selector:
+    pingcap.com/managed-by: tidb-operator
+    pingcap.com/cluster: db
+    pingcap.com/component: tidb
+  ports:
+    - name: mysql
+      protocol: TCP
+      port: 4000
+      targetPort: mysql-client
+```
+
+以下 YAML 示例用于创建一个能够访问 Cluster `db` 下特定 TiDBGroup `tidb-0` 所有 TiDB 节点的 Service：
+
+```yaml
+apiVersion: v1
+kind: Service
+metadata:
+  name: tidb-0
+spec:
+  selector:
+    pingcap.com/managed-by: tidb-operator
+    pingcap.com/cluster: db
+    pingcap.com/component: tidb
+    pingcap.com/group: tidb-0
+  ports:
+    - name: mysql
+      protocol: TCP
+      port: 4000
+      targetPort: mysql-client
+```
+
+## NodePort
+
+在没有 LoadBalancer 的环境中，可以使用 `NodePort` 类型的 Service 将 TiDB 集群暴露到集群外部，允许通过节点 IP 和指定端口访问 TiDB 集群。有关详细说明，请参阅 [NodePort](https://kubernetes.io/zh-cn/docs/concepts/services-networking/service/#type-nodeport)。
+
+> **注意：**
+>
+> 不建议在生产环境中使用 NodePort 类型。对于云平台上的生产环境，推荐使用 LoadBalancer 类型。
+
+配置示例如下：
+
+```yaml
+apiVersion: v1
+kind: Service
+metadata:
+  name: tidb-0
+spec:
+  type: NodePort
+  selector:
+    pingcap.com/managed-by: tidb-operator
+    pingcap.com/cluster: db
+    pingcap.com/component: tidb
+    pingcap.com/group: tidb-0
+  ports:
+    - name: mysql
+      protocol: TCP
+      port: 4000
+      targetPort: mysql-client
+```
+
+## LoadBalancer
+
+在支持 LoadBalancer 的云平台（如 Google Cloud 或 AWS）上，建议使用云平台提供的 LoadBalancer 特性暴露 TiDB 服务，以获得更好的可用性和负载均衡能力。
+
+你可以参考以下官方文档，通过创建 LoadBalancer Service 访问 TiDB 服务：
+
+- [AWS Load Balancer Controller](https://kubernetes-sigs.github.io/aws-load-balancer-controller/latest/)
+- [Google Cloud LoadBalancer Service](https://cloud.google.com/kubernetes-engine/docs/concepts/service-load-balancer)
+
+访问 [Kubernetes Service 文档](https://kubernetes.io/zh-cn/docs/concepts/services-networking/service/)，了解更多 Service 特性以及云平台 Load Balancer 支持。


Reviews:
user: login: fgksgf
state: COMMENTED
author_association: MEMBER
submitted_at: 2025-04-24T06:24:42Z
user: login: fgksgf
body: Need to update `zh/TOC.md`
state: COMMENTED
author_association: MEMBER
submitted_at: 2025-04-24T06:25:37Z
user: login: github-actions[bot]
state: COMMENTED
author_association: NONE
submitted_at: 2025-04-24T09:05:43Z
user: login: liubog2008
state: COMMENTED
author_association: MEMBER
submitted_at: 2025-05-12T08:10:15Z
user: login: Oreoxmt
state: COMMENTED
author_association: COLLABORATOR
submitted_at: 2025-05-15T10:07:10Z
user: login: Oreoxmt
state: COMMENTED
author_association: COLLABORATOR
submitted_at: 2025-05-15T10:07:20Z
user: login: Oreoxmt
state: COMMENTED
author_association: COLLABORATOR
submitted_at: 2025-05-15T10:07:31Z
user: login: Oreoxmt
state: COMMENTED
author_association: COLLABORATOR
submitted_at: 2025-05-15T10:07:39Z
user: login: Oreoxmt
state: COMMENTED
author_association: COLLABORATOR
submitted_at: 2025-05-15T10:07:45Z
user: login: Oreoxmt
state: COMMENTED
author_association: COLLABORATOR
submitted_at: 2025-05-15T10:07:52Z
user: login: Oreoxmt
state: COMMENTED
author_association: COLLABORATOR
submitted_at: 2025-05-15T10:07:59Z
user: login: Oreoxmt
state: COMMENTED
author_association: COLLABORATOR
submitted_at: 2025-05-15T10:08:09Z
user: login: Oreoxmt
state: COMMENTED
author_association: COLLABORATOR
submitted_at: 2025-05-15T10:08:20Z
user: login: Oreoxmt
state: COMMENTED
author_association: COLLABORATOR
submitted_at: 2025-05-15T10:08:35Z
user: login: Oreoxmt
state: COMMENTED
author_association: COLLABORATOR
submitted_at: 2025-05-15T10:08:51Z
user: login: Oreoxmt
state: COMMENTED
author_association: COLLABORATOR
submitted_at: 2025-05-15T10:09:04Z
user: login: Oreoxmt
state: COMMENTED
author_association: COLLABORATOR
submitted_at: 2025-05-15T10:09:13Z
user: login: Oreoxmt
state: COMMENTED
author_association: COLLABORATOR
submitted_at: 2025-05-15T10:09:22Z
user: login: Oreoxmt
state: APPROVED
author_association: COLLABORATOR
submitted_at: 2025-05-26T07:08:44Z
user: login: hfxsd
state: APPROVED
author_association: COLLABORATOR
submitted_at: 2025-05-26T11:44:28Z
user: login: fgksgf
state: APPROVED
author_association: MEMBER
submitted_at: 2025-05-27T05:57:15Z

Review comments:
diff_hunk: @@ -0,0 +1,108 @@
+---
+title: 访问 Kubernetes 上的 TiDB 集群
+summary: 介绍如何访问 Kubernetes 上的 TiDB 集群。
+aliases: ['/docs-cn/tidb-in-kubernetes/dev/access-tidb/']
+---
+
+# 访问 TiDB 集群
+
+Service 可以根据场景配置不同的类型，比如 `ClusterIP`、`NodePort`、`LoadBalancer` 等，对于不同的类型可以有不同的访问方式。
path: zh/access-tidb.md
user: login: fgksgf
body: K8s service，链接一下 k8s 文档？
created_at: 2025-04-24T06:16:39Z
author_association: MEMBER
diff_hunk: @@ -0,0 +1,108 @@
+---
+title: 访问 Kubernetes 上的 TiDB 集群
+summary: 介绍如何访问 Kubernetes 上的 TiDB 集群。
+aliases: ['/docs-cn/tidb-in-kubernetes/dev/access-tidb/']
+---
+
+# 访问 TiDB 集群
+
+Service 可以根据场景配置不同的类型，比如 `ClusterIP`、`NodePort`、`LoadBalancer` 等，对于不同的类型可以有不同的访问方式。
+
+## ClusterIP
+
+`ClusterIP` 是通过集群的内部 IP 暴露服务，选择该类型的服务时，只能在集群内部访问
+
+可以选择跨 Namespace 访问或者在同一个 Namespace 下访问
+
+- basic-tidb (仅限同 Namespace)
+- basic-tidb.default
+- basic-tidb.default.svc
path: zh/access-tidb.md
user: login: fgksgf
body: 需要提一下 `basic-tidb` 是啥资源的名称，还有 default
created_at: 2025-04-24T06:19:42Z
author_association: MEMBER
diff_hunk: @@ -0,0 +1,108 @@
+---
+title: 访问 Kubernetes 上的 TiDB 集群
+summary: 介绍如何访问 Kubernetes 上的 TiDB 集群。
+aliases: ['/docs-cn/tidb-in-kubernetes/dev/access-tidb/']
+---
+
+# 访问 TiDB 集群
+
+Service 可以根据场景配置不同的类型，比如 `ClusterIP`、`NodePort`、`LoadBalancer` 等，对于不同的类型可以有不同的访问方式。
+
+## ClusterIP
+
+`ClusterIP` 是通过集群的内部 IP 暴露服务，选择该类型的服务时，只能在集群内部访问
+
+可以选择跨 Namespace 访问或者在同一个 Namespace 下访问
+
+- basic-tidb (仅限同 Namespace)
+- basic-tidb.default
+- basic-tidb.default.svc
+
+详见 [Kubernetes Service 的 DNS](https://kubernetes.io/docs/concepts/services-networking/dns-pod-service/#namespaces-of-services)
+
+每个 `TiDBGroup` 会默认创建一个能够访问该 TiDBGroup 所有 TiDB 的内部 Service，比如 TiDBGroup `tidb-0` 会创建一个内部 Service `tidb-0-tidb`
path: zh/access-tidb.md
user: login: fgksgf
body: ```suggestion
每个 `TiDBGroup` 会创建一个能够访问该 TiDBGroup 所有 TiDB 的 Service，默认类型为 ClusterIP。比如 TiDBGroup `tidb-0` 会创建一个 Service `tidb-0-tidb`。
```
created_at: 2025-04-24T06:24:05Z
author_association: MEMBER
diff_hunk: @@ -0,0 +1,108 @@
+---
+title: 访问 Kubernetes 上的 TiDB 集群
+summary: 介绍如何访问 Kubernetes 上的 TiDB 集群。
+aliases: ['/docs-cn/tidb-in-kubernetes/dev/access-tidb/']
+---
+
+# 访问 TiDB 集群
+
+Service 可以根据场景配置不同的类型，比如 `ClusterIP`、`NodePort`、`LoadBalancer` 等，对于不同的类型可以有不同的访问方式。
path: zh/access-tidb.md
user: login: github-actions[bot]
body: 原文描述不够清晰，建议明确说明不同 Service 类型的适用场景。

````suggestion
Service 可以根据不同访问场景配置为 `ClusterIP`、`NodePort` 或 `LoadBalancer` 类型，每种类型对应不同的访问方式。
````
created_at: 2025-04-24T09:05:41Z
author_association: NONE
diff_hunk: @@ -0,0 +1,108 @@
+---
+title: 访问 Kubernetes 上的 TiDB 集群
+summary: 介绍如何访问 Kubernetes 上的 TiDB 集群。
+aliases: ['/docs-cn/tidb-in-kubernetes/dev/access-tidb/']
+---
+
+# 访问 TiDB 集群
+
+Service 可以根据场景配置不同的类型，比如 `ClusterIP`、`NodePort`、`LoadBalancer` 等，对于不同的类型可以有不同的访问方式。
+
+## ClusterIP
+
+`ClusterIP` 是通过集群的内部 IP 暴露服务，选择该类型的服务时，只能在集群内部访问
path: zh/access-tidb.md
user: login: github-actions[bot]
body: 句子结构不完整，建议补充完整并明确说明 ClusterIP 的特点。

````suggestion
`ClusterIP` 通过集群的内部 IP 暴露服务，选择该类型的服务时，只能在集群内部访问。
````
created_at: 2025-04-24T09:05:41Z
author_association: NONE
diff_hunk: @@ -0,0 +1,108 @@
+---
+title: 访问 Kubernetes 上的 TiDB 集群
+summary: 介绍如何访问 Kubernetes 上的 TiDB 集群。
+aliases: ['/docs-cn/tidb-in-kubernetes/dev/access-tidb/']
+---
+
+# 访问 TiDB 集群
+
+Service 可以根据场景配置不同的类型，比如 `ClusterIP`、`NodePort`、`LoadBalancer` 等，对于不同的类型可以有不同的访问方式。
+
+## ClusterIP
+
+`ClusterIP` 是通过集群的内部 IP 暴露服务，选择该类型的服务时，只能在集群内部访问
+
+可以选择跨 Namespace 访问或者在同一个 Namespace 下访问
path: zh/access-tidb.md
user: login: github-actions[bot]
body: 表述不够清晰，建议明确说明访问方式的选择。

````suggestion
可以选择在同一个 Namespace 下访问（如 basic-tidb），或者跨 Namespace 访问（如 basic-tidb.default 或 basic-tidb.default.svc）。
````
created_at: 2025-04-24T09:05:42Z
author_association: NONE
diff_hunk: @@ -0,0 +1,108 @@
+---
+title: 访问 Kubernetes 上的 TiDB 集群
+summary: 介绍如何访问 Kubernetes 上的 TiDB 集群。
+aliases: ['/docs-cn/tidb-in-kubernetes/dev/access-tidb/']
+---
+
+# 访问 TiDB 集群
+
+Service 可以根据场景配置不同的类型，比如 `ClusterIP`、`NodePort`、`LoadBalancer` 等，对于不同的类型可以有不同的访问方式。
+
+## ClusterIP
+
+`ClusterIP` 是通过集群的内部 IP 暴露服务，选择该类型的服务时，只能在集群内部访问
+
+可以选择跨 Namespace 访问或者在同一个 Namespace 下访问
+
+- basic-tidb (仅限同 Namespace)
+- basic-tidb.default
+- basic-tidb.default.svc
+
+详见 [Kubernetes Service 的 DNS](https://kubernetes.io/docs/concepts/services-networking/dns-pod-service/#namespaces-of-services)
+
+每个 `TiDBGroup` 会默认创建一个能够访问该 TiDBGroup 所有 TiDB 的内部 Service，比如 TiDBGroup `tidb-0` 会创建一个内部 Service `tidb-0-tidb`
path: zh/access-tidb.md
user: login: github-actions[bot]
body: 句子过长且结构复杂，建议拆分为两个句子。

````suggestion
每个 `TiDBGroup` 会默认创建一个能够访问该 TiDBGroup 所有 TiDB 的内部 Service。例如，TiDBGroup `tidb-0` 会创建一个内部 Service `tidb-0-tidb`。
````
created_at: 2025-04-24T09:05:42Z
author_association: NONE
diff_hunk: @@ -0,0 +1,108 @@
+---
+title: 访问 Kubernetes 上的 TiDB 集群
+summary: 介绍如何访问 Kubernetes 上的 TiDB 集群。
+aliases: ['/docs-cn/tidb-in-kubernetes/dev/access-tidb/']
+---
+
+# 访问 TiDB 集群
+
+Service 可以根据场景配置不同的类型，比如 `ClusterIP`、`NodePort`、`LoadBalancer` 等，对于不同的类型可以有不同的访问方式。
+
+## ClusterIP
+
+`ClusterIP` 是通过集群的内部 IP 暴露服务，选择该类型的服务时，只能在集群内部访问
+
+可以选择跨 Namespace 访问或者在同一个 Namespace 下访问
+
+- basic-tidb (仅限同 Namespace)
+- basic-tidb.default
+- basic-tidb.default.svc
+
+详见 [Kubernetes Service 的 DNS](https://kubernetes.io/docs/concepts/services-networking/dns-pod-service/#namespaces-of-services)
+
+每个 `TiDBGroup` 会默认创建一个能够访问该 TiDBGroup 所有 TiDB 的内部 Service，比如 TiDBGroup `tidb-0` 会创建一个内部 Service `tidb-0-tidb`
+
+可以直接选择使用该 Service 访问 TiDB，也可以自行创建。
path: zh/access-tidb.md
user: login: github-actions[bot]
body: 表述不够明确，建议补充说明创建 Service 的目的。

````suggestion
可以直接使用该默认 Service 访问 TiDB，也可以根据需要自行创建 Service。
````
created_at: 2025-04-24T09:05:42Z
author_association: NONE
diff_hunk: @@ -0,0 +1,108 @@
+---
+title: 访问 Kubernetes 上的 TiDB 集群
+summary: 介绍如何访问 Kubernetes 上的 TiDB 集群。
+aliases: ['/docs-cn/tidb-in-kubernetes/dev/access-tidb/']
+---
+
+# 访问 TiDB 集群
+
+Service 可以根据场景配置不同的类型，比如 `ClusterIP`、`NodePort`、`LoadBalancer` 等，对于不同的类型可以有不同的访问方式。
+
+## ClusterIP
+
+`ClusterIP` 是通过集群的内部 IP 暴露服务，选择该类型的服务时，只能在集群内部访问
+
+可以选择跨 Namespace 访问或者在同一个 Namespace 下访问
+
+- basic-tidb (仅限同 Namespace)
+- basic-tidb.default
+- basic-tidb.default.svc
+
+详见 [Kubernetes Service 的 DNS](https://kubernetes.io/docs/concepts/services-networking/dns-pod-service/#namespaces-of-services)
+
+每个 `TiDBGroup` 会默认创建一个能够访问该 TiDBGroup 所有 TiDB 的内部 Service，比如 TiDBGroup `tidb-0` 会创建一个内部 Service `tidb-0-tidb`
+
+可以直接选择使用该 Service 访问 TiDB，也可以自行创建。
+
+以下命令用于创建一个能够访问 Cluster `db` 下所有 TiDB 的 Service
path: zh/access-tidb.md
user: login: github-actions[bot]
body: 表述不够清晰，建议明确说明命令的作用。

````suggestion
以下 YAML 示例用于创建一个能够访问 Cluster `db` 下所有 TiDB 节点的 Service。
````
created_at: 2025-04-24T09:05:42Z
author_association: NONE
diff_hunk: @@ -0,0 +1,108 @@
+---
+title: 访问 Kubernetes 上的 TiDB 集群
+summary: 介绍如何访问 Kubernetes 上的 TiDB 集群。
+aliases: ['/docs-cn/tidb-in-kubernetes/dev/access-tidb/']
+---
+
+# 访问 TiDB 集群
+
+Service 可以根据场景配置不同的类型，比如 `ClusterIP`、`NodePort`、`LoadBalancer` 等，对于不同的类型可以有不同的访问方式。
+
+## ClusterIP
+
+`ClusterIP` 是通过集群的内部 IP 暴露服务，选择该类型的服务时，只能在集群内部访问
+
+可以选择跨 Namespace 访问或者在同一个 Namespace 下访问
+
+- basic-tidb (仅限同 Namespace)
+- basic-tidb.default
+- basic-tidb.default.svc
+
+详见 [Kubernetes Service 的 DNS](https://kubernetes.io/docs/concepts/services-networking/dns-pod-service/#namespaces-of-services)
+
+每个 `TiDBGroup` 会默认创建一个能够访问该 TiDBGroup 所有 TiDB 的内部 Service，比如 TiDBGroup `tidb-0` 会创建一个内部 Service `tidb-0-tidb`
+
+可以直接选择使用该 Service 访问 TiDB，也可以自行创建。
+
+以下命令用于创建一个能够访问 Cluster `db` 下所有 TiDB 的 Service
+
+{{< copyable "" >}}
+
+```yaml
+apiVersion: v1
+kind: Service
+metadata:
+  name: tidb
+spec:
+  selector:
+    pingcap.com/managed-by: tidb-operator
+    pingcap.com/cluster: db
+    pingcap.com/component: tidb
+  ports:
+    - name: mysql
+      protocol: TCP
+      port: 4000
+      targetPort: mysql-client
+```
+
+也可以创建一个访问 Cluster `db` 下某个 TiDBGroup `tidb-0` 下所有 TiDB 的 Service
path: zh/access-tidb.md
user: login: github-actions[bot]
body: 表述不够清晰，建议明确说明命令的作用。

````suggestion
以下 YAML 示例用于创建一个能够访问 Cluster `db` 下特定 TiDBGroup `tidb-0` 所有 TiDB 节点的 Service。
````
created_at: 2025-04-24T09:05:42Z
author_association: NONE
diff_hunk: @@ -0,0 +1,108 @@
+---
+title: 访问 Kubernetes 上的 TiDB 集群
+summary: 介绍如何访问 Kubernetes 上的 TiDB 集群。
+aliases: ['/docs-cn/tidb-in-kubernetes/dev/access-tidb/']
+---
+
+# 访问 TiDB 集群
+
+Service 可以根据场景配置不同的类型，比如 `ClusterIP`、`NodePort`、`LoadBalancer` 等，对于不同的类型可以有不同的访问方式。
+
+## ClusterIP
+
+`ClusterIP` 是通过集群的内部 IP 暴露服务，选择该类型的服务时，只能在集群内部访问
+
+可以选择跨 Namespace 访问或者在同一个 Namespace 下访问
+
+- basic-tidb (仅限同 Namespace)
+- basic-tidb.default
+- basic-tidb.default.svc
+
+详见 [Kubernetes Service 的 DNS](https://kubernetes.io/docs/concepts/services-networking/dns-pod-service/#namespaces-of-services)
+
+每个 `TiDBGroup` 会默认创建一个能够访问该 TiDBGroup 所有 TiDB 的内部 Service，比如 TiDBGroup `tidb-0` 会创建一个内部 Service `tidb-0-tidb`
+
+可以直接选择使用该 Service 访问 TiDB，也可以自行创建。
+
+以下命令用于创建一个能够访问 Cluster `db` 下所有 TiDB 的 Service
+
+{{< copyable "" >}}
+
+```yaml
+apiVersion: v1
+kind: Service
+metadata:
+  name: tidb
+spec:
+  selector:
+    pingcap.com/managed-by: tidb-operator
+    pingcap.com/cluster: db
+    pingcap.com/component: tidb
+  ports:
+    - name: mysql
+      protocol: TCP
+      port: 4000
+      targetPort: mysql-client
+```
+
+也可以创建一个访问 Cluster `db` 下某个 TiDBGroup `tidb-0` 下所有 TiDB 的 Service
+
+{{< copyable "" >}}
+
+```yaml
+apiVersion: v1
+kind: Service
+metadata:
+  name: tidb-0
+spec:
+  selector:
+    pingcap.com/managed-by: tidb-operator
+    pingcap.com/cluster: db
+    pingcap.com/component: tidb
+    pingcap.com/group: tidb-0
+  ports:
+    - name: mysql
+      protocol: TCP
+      port: 4000
+      targetPort: mysql-client
+```
+
+## NodePort
+
+在没有 LoadBalancer 时，可选择通过 NodePort 将服务暴露到集群外部。
path: zh/access-tidb.md
user: login: github-actions[bot]
body: 表述不够完整，建议补充说明 NodePort 的特点。

````suggestion
在没有 LoadBalancer 的环境下，可以通过 NodePort 将服务暴露到集群外部，允许通过节点 IP 和端口访问服务。
````
created_at: 2025-04-24T09:05:42Z
author_association: NONE
diff_hunk: @@ -0,0 +1,108 @@
+---
+title: 访问 Kubernetes 上的 TiDB 集群
+summary: 介绍如何访问 Kubernetes 上的 TiDB 集群。
+aliases: ['/docs-cn/tidb-in-kubernetes/dev/access-tidb/']
+---
+
+# 访问 TiDB 集群
+
+Service 可以根据场景配置不同的类型，比如 `ClusterIP`、`NodePort`、`LoadBalancer` 等，对于不同的类型可以有不同的访问方式。
+
+## ClusterIP
+
+`ClusterIP` 是通过集群的内部 IP 暴露服务，选择该类型的服务时，只能在集群内部访问
+
+可以选择跨 Namespace 访问或者在同一个 Namespace 下访问
+
+- basic-tidb (仅限同 Namespace)
+- basic-tidb.default
+- basic-tidb.default.svc
+
+详见 [Kubernetes Service 的 DNS](https://kubernetes.io/docs/concepts/services-networking/dns-pod-service/#namespaces-of-services)
+
+每个 `TiDBGroup` 会默认创建一个能够访问该 TiDBGroup 所有 TiDB 的内部 Service，比如 TiDBGroup `tidb-0` 会创建一个内部 Service `tidb-0-tidb`
+
+可以直接选择使用该 Service 访问 TiDB，也可以自行创建。
+
+以下命令用于创建一个能够访问 Cluster `db` 下所有 TiDB 的 Service
+
+{{< copyable "" >}}
+
+```yaml
+apiVersion: v1
+kind: Service
+metadata:
+  name: tidb
+spec:
+  selector:
+    pingcap.com/managed-by: tidb-operator
+    pingcap.com/cluster: db
+    pingcap.com/component: tidb
+  ports:
+    - name: mysql
+      protocol: TCP
+      port: 4000
+      targetPort: mysql-client
+```
+
+也可以创建一个访问 Cluster `db` 下某个 TiDBGroup `tidb-0` 下所有 TiDB 的 Service
+
+{{< copyable "" >}}
+
+```yaml
+apiVersion: v1
+kind: Service
+metadata:
+  name: tidb-0
+spec:
+  selector:
+    pingcap.com/managed-by: tidb-operator
+    pingcap.com/cluster: db
+    pingcap.com/component: tidb
+    pingcap.com/group: tidb-0
+  ports:
+    - name: mysql
+      protocol: TCP
+      port: 4000
+      targetPort: mysql-client
+```
+
+## NodePort
+
+在没有 LoadBalancer 时，可选择通过 NodePort 将服务暴露到集群外部。
+
+{{< copyable "" >}}
+
+```yaml
+apiVersion: v1
+kind: Service
+metadata:
+  name: tidb-0
+spec:
+  type: NodePort
+  selector:
+    pingcap.com/managed-by: tidb-operator
+    pingcap.com/cluster: db
+    pingcap.com/component: tidb
+    pingcap.com/group: tidb-0
+  ports:
+    - name: mysql
+      protocol: TCP
+      port: 4000
+      targetPort: mysql-client
+```
+
+详见 [NodePort](https://kubernetes.io/docs/concepts/services-networking/service/#type-nodeport)
+
+> **注意：**
+>
+> NodePort 模式并不适合在生产环境下使用，生产环境下建议使用 LoadBalancer 模式暴露服务
+>
+
+## LoadBalancer
+
+若运行在有 LoadBalancer 的环境，比如 Google Cloud、AWS 平台，建议使用云平台的 LoadBalancer 特性。
path: zh/access-tidb.md
user: login: github-actions[bot]
body: 表述不够完整，建议补充说明 LoadBalancer 的优势。

````suggestion
若运行在支持 LoadBalancer 的云平台（如 Google Cloud 或 AWS），建议使用云平台提供的 LoadBalancer 特性来暴露服务，以获得更好的可用性和负载均衡能力。
````
created_at: 2025-04-24T09:05:42Z
author_association: NONE
diff_hunk: @@ -0,0 +1,108 @@
+---
+title: 访问 Kubernetes 上的 TiDB 集群
+summary: 介绍如何访问 Kubernetes 上的 TiDB 集群。
+aliases: ['/docs-cn/tidb-in-kubernetes/dev/access-tidb/']
+---
+
+# 访问 TiDB 集群
+
+Service 可以根据场景配置不同的类型，比如 `ClusterIP`、`NodePort`、`LoadBalancer` 等，对于不同的类型可以有不同的访问方式。
path: zh/access-tidb.md
user: login: liubog2008
body: done
created_at: 2025-05-12T08:10:15Z
author_association: MEMBER
diff_hunk: @@ -0,0 +1,100 @@
+---
+title: 访问 Kubernetes 上的 TiDB 集群
+summary: 介绍如何访问 Kubernetes 上的 TiDB 集群。
+---
+
+# 访问 TiDB 集群
+
+[Service](https://kubernetes.io/docs/concepts/services-networking/service/) 可以根据不同访问场景配置为 `ClusterIP`、`NodePort` 或 `LoadBalancer` 类型，每种类型对应不同的访问方式。
path: zh/access-tidb.md
user: login: Oreoxmt
body: ```suggestion
本文介绍如何通过 Kubernetes [Service](https://kubernetes.io/zh-cn/docs/concepts/services-networking/service/) 访问 TiDB 集群。根据不同的访问场景需求，你可以将 Service 配置为以下类型：

- [`ClusterIP`](#clusterip)：仅限 Kubernetes 集群内部访问
- [`NodePort`](#nodeport)：允许从集群外部访问（适用于测试环境）
- [`LoadBalancer`](#loadbalancer)：通过云平台的 LoadBalancer 特性访问（推荐用于生产环境）
```
created_at: 2025-05-15T10:07:10Z
author_association: COLLABORATOR
diff_hunk: @@ -0,0 +1,100 @@
+---
+title: 访问 Kubernetes 上的 TiDB 集群
+summary: 介绍如何访问 Kubernetes 上的 TiDB 集群。
+---
+
+# 访问 TiDB 集群
+
+[Service](https://kubernetes.io/docs/concepts/services-networking/service/) 可以根据不同访问场景配置为 `ClusterIP`、`NodePort` 或 `LoadBalancer` 类型，每种类型对应不同的访问方式。
+
+## ClusterIP
+
+`ClusterIP` 通过集群的内部 IP 暴露服务，选择该类型的服务时，只能在集群内部访问。
path: zh/access-tidb.md
user: login: Oreoxmt
body: ```suggestion
`ClusterIP` 类型的 Service 通过集群的内部 IP 暴露服务，仅支持在 Kubernetes 集群内部访问 TiDB 集群。
```
created_at: 2025-05-15T10:07:20Z
author_association: COLLABORATOR
diff_hunk: @@ -0,0 +1,100 @@
+---
+title: 访问 Kubernetes 上的 TiDB 集群
+summary: 介绍如何访问 Kubernetes 上的 TiDB 集群。
+---
+
+# 访问 TiDB 集群
+
+[Service](https://kubernetes.io/docs/concepts/services-networking/service/) 可以根据不同访问场景配置为 `ClusterIP`、`NodePort` 或 `LoadBalancer` 类型，每种类型对应不同的访问方式。
+
+## ClusterIP
+
+`ClusterIP` 通过集群的内部 IP 暴露服务，选择该类型的服务时，只能在集群内部访问。
+
+可以选择在同一个 Namespace 下访问（如 basic-tidb），或者跨 Namespace 访问（如 basic-tidb.default 或 basic-tidb.default.svc）。
+
+- basic-tidb (仅限同 Namespace)
+- basic-tidb.default
+- basic-tidb.default.svc
path: zh/access-tidb.md
user: login: Oreoxmt
body: ```suggestion
你可以使用以下格式之一访问 TiDB 集群：

- `basic-tidb`：仅限在同一 Namespace 内访问
- `basic-tidb.default`：支持跨 Namespace 访问
- `basic-tidb.default.svc`：支持跨 Namespace 访问
```
created_at: 2025-05-15T10:07:31Z
author_association: COLLABORATOR
diff_hunk: @@ -0,0 +1,100 @@
+---
+title: 访问 Kubernetes 上的 TiDB 集群
+summary: 介绍如何访问 Kubernetes 上的 TiDB 集群。
+---
+
+# 访问 TiDB 集群
+
+[Service](https://kubernetes.io/docs/concepts/services-networking/service/) 可以根据不同访问场景配置为 `ClusterIP`、`NodePort` 或 `LoadBalancer` 类型，每种类型对应不同的访问方式。
+
+## ClusterIP
+
+`ClusterIP` 通过集群的内部 IP 暴露服务，选择该类型的服务时，只能在集群内部访问。
+
+可以选择在同一个 Namespace 下访问（如 basic-tidb），或者跨 Namespace 访问（如 basic-tidb.default 或 basic-tidb.default.svc）。
+
+- basic-tidb (仅限同 Namespace)
+- basic-tidb.default
+- basic-tidb.default.svc
+
+其中，`basic-tidb` 是 `Service` 的名称，`default` 是 `Namespace` 的名称, 详见 [Kubernetes Service 的 DNS](https://kubernetes.io/docs/concepts/services-networking/dns-pod-service/#namespaces-of-services)
path: zh/access-tidb.md
user: login: Oreoxmt
body: ```suggestion
其中，`basic-tidb` 是 Service 的名称，`default` 是 Namespace 的名称，详见 [Service 与 Pod 的 DNS](https://kubernetes.io/zh-cn/docs/concepts/services-networking/dns-pod-service/#namespaces-of-services)。
```
created_at: 2025-05-15T10:07:39Z
author_association: COLLABORATOR
diff_hunk: @@ -0,0 +1,100 @@
+---
+title: 访问 Kubernetes 上的 TiDB 集群
+summary: 介绍如何访问 Kubernetes 上的 TiDB 集群。
+---
+
+# 访问 TiDB 集群
+
+[Service](https://kubernetes.io/docs/concepts/services-networking/service/) 可以根据不同访问场景配置为 `ClusterIP`、`NodePort` 或 `LoadBalancer` 类型，每种类型对应不同的访问方式。
+
+## ClusterIP
+
+`ClusterIP` 通过集群的内部 IP 暴露服务，选择该类型的服务时，只能在集群内部访问。
+
+可以选择在同一个 Namespace 下访问（如 basic-tidb），或者跨 Namespace 访问（如 basic-tidb.default 或 basic-tidb.default.svc）。
+
+- basic-tidb (仅限同 Namespace)
+- basic-tidb.default
+- basic-tidb.default.svc
+
+其中，`basic-tidb` 是 `Service` 的名称，`default` 是 `Namespace` 的名称, 详见 [Kubernetes Service 的 DNS](https://kubernetes.io/docs/concepts/services-networking/dns-pod-service/#namespaces-of-services)
+
+每个 `TiDBGroup` 会创建一个能够访问该 TiDBGroup 所有 TiDB 的 Service。例如，TiDBGroup `tidb-0` 会创建一个内部 Service `tidb-0-tidb`。
path: zh/access-tidb.md
user: login: Oreoxmt
body: ```suggestion
每个 TiDBGroup 会自动创建一个能够访问该 TiDBGroup 所有 TiDB 的 Service。例如，TiDBGroup `tidb-0` 会创建一个内部 Service `tidb-0-tidb`。
```
created_at: 2025-05-15T10:07:45Z
author_association: COLLABORATOR
diff_hunk: @@ -0,0 +1,100 @@
+---
+title: 访问 Kubernetes 上的 TiDB 集群
+summary: 介绍如何访问 Kubernetes 上的 TiDB 集群。
+---
+
+# 访问 TiDB 集群
+
+[Service](https://kubernetes.io/docs/concepts/services-networking/service/) 可以根据不同访问场景配置为 `ClusterIP`、`NodePort` 或 `LoadBalancer` 类型，每种类型对应不同的访问方式。
+
+## ClusterIP
+
+`ClusterIP` 通过集群的内部 IP 暴露服务，选择该类型的服务时，只能在集群内部访问。
+
+可以选择在同一个 Namespace 下访问（如 basic-tidb），或者跨 Namespace 访问（如 basic-tidb.default 或 basic-tidb.default.svc）。
+
+- basic-tidb (仅限同 Namespace)
+- basic-tidb.default
+- basic-tidb.default.svc
+
+其中，`basic-tidb` 是 `Service` 的名称，`default` 是 `Namespace` 的名称, 详见 [Kubernetes Service 的 DNS](https://kubernetes.io/docs/concepts/services-networking/dns-pod-service/#namespaces-of-services)
+
+每个 `TiDBGroup` 会创建一个能够访问该 TiDBGroup 所有 TiDB 的 Service。例如，TiDBGroup `tidb-0` 会创建一个内部 Service `tidb-0-tidb`。
+
+可以直接使用该默认 Service 访问 TiDB，也可以根据需要自行创建 Service。
path: zh/access-tidb.md
user: login: Oreoxmt
body: ```suggestion
你可以直接使用默认创建的 Service 访问 TiDB，也可以根据需要自行创建 Service。
```
created_at: 2025-05-15T10:07:52Z
author_association: COLLABORATOR
diff_hunk: @@ -0,0 +1,100 @@
+---
+title: 访问 Kubernetes 上的 TiDB 集群
+summary: 介绍如何访问 Kubernetes 上的 TiDB 集群。
+---
+
+# 访问 TiDB 集群
+
+[Service](https://kubernetes.io/docs/concepts/services-networking/service/) 可以根据不同访问场景配置为 `ClusterIP`、`NodePort` 或 `LoadBalancer` 类型，每种类型对应不同的访问方式。
+
+## ClusterIP
+
+`ClusterIP` 通过集群的内部 IP 暴露服务，选择该类型的服务时，只能在集群内部访问。
+
+可以选择在同一个 Namespace 下访问（如 basic-tidb），或者跨 Namespace 访问（如 basic-tidb.default 或 basic-tidb.default.svc）。
+
+- basic-tidb (仅限同 Namespace)
+- basic-tidb.default
+- basic-tidb.default.svc
+
+其中，`basic-tidb` 是 `Service` 的名称，`default` 是 `Namespace` 的名称, 详见 [Kubernetes Service 的 DNS](https://kubernetes.io/docs/concepts/services-networking/dns-pod-service/#namespaces-of-services)
+
+每个 `TiDBGroup` 会创建一个能够访问该 TiDBGroup 所有 TiDB 的 Service。例如，TiDBGroup `tidb-0` 会创建一个内部 Service `tidb-0-tidb`。
+
+可以直接使用该默认 Service 访问 TiDB，也可以根据需要自行创建 Service。
+
+以下 YAML 示例用于创建一个能够访问 Cluster `db` 下所有 TiDB 节点的 Service。
path: zh/access-tidb.md
user: login: Oreoxmt
body: ```suggestion
以下 YAML 示例用于创建一个能够访问 Cluster `db` 下所有 TiDB 节点的 Service：
```
created_at: 2025-05-15T10:07:58Z
author_association: COLLABORATOR
diff_hunk: @@ -0,0 +1,100 @@
+---
+title: 访问 Kubernetes 上的 TiDB 集群
+summary: 介绍如何访问 Kubernetes 上的 TiDB 集群。
+---
+
+# 访问 TiDB 集群
+
+[Service](https://kubernetes.io/docs/concepts/services-networking/service/) 可以根据不同访问场景配置为 `ClusterIP`、`NodePort` 或 `LoadBalancer` 类型，每种类型对应不同的访问方式。
+
+## ClusterIP
+
+`ClusterIP` 通过集群的内部 IP 暴露服务，选择该类型的服务时，只能在集群内部访问。
+
+可以选择在同一个 Namespace 下访问（如 basic-tidb），或者跨 Namespace 访问（如 basic-tidb.default 或 basic-tidb.default.svc）。
+
+- basic-tidb (仅限同 Namespace)
+- basic-tidb.default
+- basic-tidb.default.svc
+
+其中，`basic-tidb` 是 `Service` 的名称，`default` 是 `Namespace` 的名称, 详见 [Kubernetes Service 的 DNS](https://kubernetes.io/docs/concepts/services-networking/dns-pod-service/#namespaces-of-services)
+
+每个 `TiDBGroup` 会创建一个能够访问该 TiDBGroup 所有 TiDB 的 Service。例如，TiDBGroup `tidb-0` 会创建一个内部 Service `tidb-0-tidb`。
+
+可以直接使用该默认 Service 访问 TiDB，也可以根据需要自行创建 Service。
+
+以下 YAML 示例用于创建一个能够访问 Cluster `db` 下所有 TiDB 节点的 Service。
+
+```yaml
+apiVersion: v1
+kind: Service
+metadata:
+  name: tidb
+spec:
+  selector:
+    pingcap.com/managed-by: tidb-operator
+    pingcap.com/cluster: db
+    pingcap.com/component: tidb
+  ports:
+    - name: mysql
+      protocol: TCP
+      port: 4000
+      targetPort: mysql-client
+```
+
+以下 YAML 示例用于创建一个能够访问 Cluster `db` 下特定 TiDBGroup `tidb-0` 所有 TiDB 节点的 Service。
path: zh/access-tidb.md
user: login: Oreoxmt
body: ```suggestion
以下 YAML 示例用于创建一个能够访问 Cluster `db` 下特定 TiDBGroup `tidb-0` 所有 TiDB 节点的 Service：
```
created_at: 2025-05-15T10:08:09Z
author_association: COLLABORATOR
diff_hunk: @@ -0,0 +1,100 @@
+---
+title: 访问 Kubernetes 上的 TiDB 集群
+summary: 介绍如何访问 Kubernetes 上的 TiDB 集群。
+---
+
+# 访问 TiDB 集群
+
+[Service](https://kubernetes.io/docs/concepts/services-networking/service/) 可以根据不同访问场景配置为 `ClusterIP`、`NodePort` 或 `LoadBalancer` 类型，每种类型对应不同的访问方式。
+
+## ClusterIP
+
+`ClusterIP` 通过集群的内部 IP 暴露服务，选择该类型的服务时，只能在集群内部访问。
+
+可以选择在同一个 Namespace 下访问（如 basic-tidb），或者跨 Namespace 访问（如 basic-tidb.default 或 basic-tidb.default.svc）。
+
+- basic-tidb (仅限同 Namespace)
+- basic-tidb.default
+- basic-tidb.default.svc
+
+其中，`basic-tidb` 是 `Service` 的名称，`default` 是 `Namespace` 的名称, 详见 [Kubernetes Service 的 DNS](https://kubernetes.io/docs/concepts/services-networking/dns-pod-service/#namespaces-of-services)
+
+每个 `TiDBGroup` 会创建一个能够访问该 TiDBGroup 所有 TiDB 的 Service。例如，TiDBGroup `tidb-0` 会创建一个内部 Service `tidb-0-tidb`。
+
+可以直接使用该默认 Service 访问 TiDB，也可以根据需要自行创建 Service。
+
+以下 YAML 示例用于创建一个能够访问 Cluster `db` 下所有 TiDB 节点的 Service。
+
+```yaml
+apiVersion: v1
+kind: Service
+metadata:
+  name: tidb
+spec:
+  selector:
+    pingcap.com/managed-by: tidb-operator
+    pingcap.com/cluster: db
+    pingcap.com/component: tidb
+  ports:
+    - name: mysql
+      protocol: TCP
+      port: 4000
+      targetPort: mysql-client
+```
+
+以下 YAML 示例用于创建一个能够访问 Cluster `db` 下特定 TiDBGroup `tidb-0` 所有 TiDB 节点的 Service。
+
+```yaml
+apiVersion: v1
+kind: Service
+metadata:
+  name: tidb-0
+spec:
+  selector:
+    pingcap.com/managed-by: tidb-operator
+    pingcap.com/cluster: db
+    pingcap.com/component: tidb
+    pingcap.com/group: tidb-0
+  ports:
+    - name: mysql
+      protocol: TCP
+      port: 4000
+      targetPort: mysql-client
+```
+
+## NodePort
+
+在没有 LoadBalancer 的环境下，可以通过 NodePort 将服务暴露到集群外部，允许通过节点 IP 和端口访问服务。
path: zh/access-tidb.md
user: login: Oreoxmt
body: ```suggestion
在没有 LoadBalancer 的环境中，可以使用 `NodePort` 类型的 Service 将 TiDB 集群暴露到集群外部，允许通过节点 IP 和指定端口访问 TiDB 集群。有关详细说明，请参阅 [NodePort](https://kubernetes.io/zh-cn/docs/concepts/services-networking/service/#type-nodeport)。
```
created_at: 2025-05-15T10:08:20Z
author_association: COLLABORATOR
diff_hunk: @@ -0,0 +1,100 @@
+---
+title: 访问 Kubernetes 上的 TiDB 集群
+summary: 介绍如何访问 Kubernetes 上的 TiDB 集群。
+---
+
+# 访问 TiDB 集群
+
+[Service](https://kubernetes.io/docs/concepts/services-networking/service/) 可以根据不同访问场景配置为 `ClusterIP`、`NodePort` 或 `LoadBalancer` 类型，每种类型对应不同的访问方式。
+
+## ClusterIP
+
+`ClusterIP` 通过集群的内部 IP 暴露服务，选择该类型的服务时，只能在集群内部访问。
+
+可以选择在同一个 Namespace 下访问（如 basic-tidb），或者跨 Namespace 访问（如 basic-tidb.default 或 basic-tidb.default.svc）。
+
+- basic-tidb (仅限同 Namespace)
+- basic-tidb.default
+- basic-tidb.default.svc
+
+其中，`basic-tidb` 是 `Service` 的名称，`default` 是 `Namespace` 的名称, 详见 [Kubernetes Service 的 DNS](https://kubernetes.io/docs/concepts/services-networking/dns-pod-service/#namespaces-of-services)
+
+每个 `TiDBGroup` 会创建一个能够访问该 TiDBGroup 所有 TiDB 的 Service。例如，TiDBGroup `tidb-0` 会创建一个内部 Service `tidb-0-tidb`。
+
+可以直接使用该默认 Service 访问 TiDB，也可以根据需要自行创建 Service。
+
+以下 YAML 示例用于创建一个能够访问 Cluster `db` 下所有 TiDB 节点的 Service。
+
+```yaml
+apiVersion: v1
+kind: Service
+metadata:
+  name: tidb
+spec:
+  selector:
+    pingcap.com/managed-by: tidb-operator
+    pingcap.com/cluster: db
+    pingcap.com/component: tidb
+  ports:
+    - name: mysql
+      protocol: TCP
+      port: 4000
+      targetPort: mysql-client
+```
+
+以下 YAML 示例用于创建一个能够访问 Cluster `db` 下特定 TiDBGroup `tidb-0` 所有 TiDB 节点的 Service。
+
+```yaml
+apiVersion: v1
+kind: Service
+metadata:
+  name: tidb-0
+spec:
+  selector:
+    pingcap.com/managed-by: tidb-operator
+    pingcap.com/cluster: db
+    pingcap.com/component: tidb
+    pingcap.com/group: tidb-0
+  ports:
+    - name: mysql
+      protocol: TCP
+      port: 4000
+      targetPort: mysql-client
+```
+
+## NodePort
+
+在没有 LoadBalancer 的环境下，可以通过 NodePort 将服务暴露到集群外部，允许通过节点 IP 和端口访问服务。
+
path: zh/access-tidb.md
user: login: Oreoxmt
body: ```suggestion

> **注意：**
>
> 不建议在生产环境中使用 NodePort 类型。对于云平台上的生产环境，推荐使用 LoadBalancer 类型。

配置示例如下：

```
created_at: 2025-05-15T10:08:35Z
author_association: COLLABORATOR
diff_hunk: @@ -0,0 +1,100 @@
+---
+title: 访问 Kubernetes 上的 TiDB 集群
+summary: 介绍如何访问 Kubernetes 上的 TiDB 集群。
+---
+
+# 访问 TiDB 集群
+
+[Service](https://kubernetes.io/docs/concepts/services-networking/service/) 可以根据不同访问场景配置为 `ClusterIP`、`NodePort` 或 `LoadBalancer` 类型，每种类型对应不同的访问方式。
+
+## ClusterIP
+
+`ClusterIP` 通过集群的内部 IP 暴露服务，选择该类型的服务时，只能在集群内部访问。
+
+可以选择在同一个 Namespace 下访问（如 basic-tidb），或者跨 Namespace 访问（如 basic-tidb.default 或 basic-tidb.default.svc）。
+
+- basic-tidb (仅限同 Namespace)
+- basic-tidb.default
+- basic-tidb.default.svc
+
+其中，`basic-tidb` 是 `Service` 的名称，`default` 是 `Namespace` 的名称, 详见 [Kubernetes Service 的 DNS](https://kubernetes.io/docs/concepts/services-networking/dns-pod-service/#namespaces-of-services)
+
+每个 `TiDBGroup` 会创建一个能够访问该 TiDBGroup 所有 TiDB 的 Service。例如，TiDBGroup `tidb-0` 会创建一个内部 Service `tidb-0-tidb`。
+
+可以直接使用该默认 Service 访问 TiDB，也可以根据需要自行创建 Service。
+
+以下 YAML 示例用于创建一个能够访问 Cluster `db` 下所有 TiDB 节点的 Service。
+
+```yaml
+apiVersion: v1
+kind: Service
+metadata:
+  name: tidb
+spec:
+  selector:
+    pingcap.com/managed-by: tidb-operator
+    pingcap.com/cluster: db
+    pingcap.com/component: tidb
+  ports:
+    - name: mysql
+      protocol: TCP
+      port: 4000
+      targetPort: mysql-client
+```
+
+以下 YAML 示例用于创建一个能够访问 Cluster `db` 下特定 TiDBGroup `tidb-0` 所有 TiDB 节点的 Service。
+
+```yaml
+apiVersion: v1
+kind: Service
+metadata:
+  name: tidb-0
+spec:
+  selector:
+    pingcap.com/managed-by: tidb-operator
+    pingcap.com/cluster: db
+    pingcap.com/component: tidb
+    pingcap.com/group: tidb-0
+  ports:
+    - name: mysql
+      protocol: TCP
+      port: 4000
+      targetPort: mysql-client
+```
+
+## NodePort
+
+在没有 LoadBalancer 的环境下，可以通过 NodePort 将服务暴露到集群外部，允许通过节点 IP 和端口访问服务。
+
+```yaml
+apiVersion: v1
+kind: Service
+metadata:
+  name: tidb-0
+spec:
+  type: NodePort
+  selector:
+    pingcap.com/managed-by: tidb-operator
+    pingcap.com/cluster: db
+    pingcap.com/component: tidb
+    pingcap.com/group: tidb-0
+  ports:
+    - name: mysql
+      protocol: TCP
+      port: 4000
+      targetPort: mysql-client
+```
+
+详见 [NodePort](https://kubernetes.io/docs/concepts/services-networking/service/#type-nodeport)
+
+> **注意：**
+>
+> NodePort 模式并不适合在生产环境下使用，生产环境下建议使用 LoadBalancer 模式暴露服务
+
+## LoadBalancer
path: zh/access-tidb.md
user: login: Oreoxmt
body: ```suggestion
## LoadBalancer
```
created_at: 2025-05-15T10:08:51Z
author_association: COLLABORATOR
diff_hunk: @@ -0,0 +1,100 @@
+---
+title: 访问 Kubernetes 上的 TiDB 集群
+summary: 介绍如何访问 Kubernetes 上的 TiDB 集群。
+---
+
+# 访问 TiDB 集群
+
+[Service](https://kubernetes.io/docs/concepts/services-networking/service/) 可以根据不同访问场景配置为 `ClusterIP`、`NodePort` 或 `LoadBalancer` 类型，每种类型对应不同的访问方式。
+
+## ClusterIP
+
+`ClusterIP` 通过集群的内部 IP 暴露服务，选择该类型的服务时，只能在集群内部访问。
+
+可以选择在同一个 Namespace 下访问（如 basic-tidb），或者跨 Namespace 访问（如 basic-tidb.default 或 basic-tidb.default.svc）。
+
+- basic-tidb (仅限同 Namespace)
+- basic-tidb.default
+- basic-tidb.default.svc
+
+其中，`basic-tidb` 是 `Service` 的名称，`default` 是 `Namespace` 的名称, 详见 [Kubernetes Service 的 DNS](https://kubernetes.io/docs/concepts/services-networking/dns-pod-service/#namespaces-of-services)
+
+每个 `TiDBGroup` 会创建一个能够访问该 TiDBGroup 所有 TiDB 的 Service。例如，TiDBGroup `tidb-0` 会创建一个内部 Service `tidb-0-tidb`。
+
+可以直接使用该默认 Service 访问 TiDB，也可以根据需要自行创建 Service。
+
+以下 YAML 示例用于创建一个能够访问 Cluster `db` 下所有 TiDB 节点的 Service。
+
+```yaml
+apiVersion: v1
+kind: Service
+metadata:
+  name: tidb
+spec:
+  selector:
+    pingcap.com/managed-by: tidb-operator
+    pingcap.com/cluster: db
+    pingcap.com/component: tidb
+  ports:
+    - name: mysql
+      protocol: TCP
+      port: 4000
+      targetPort: mysql-client
+```
+
+以下 YAML 示例用于创建一个能够访问 Cluster `db` 下特定 TiDBGroup `tidb-0` 所有 TiDB 节点的 Service。
+
+```yaml
+apiVersion: v1
+kind: Service
+metadata:
+  name: tidb-0
+spec:
+  selector:
+    pingcap.com/managed-by: tidb-operator
+    pingcap.com/cluster: db
+    pingcap.com/component: tidb
+    pingcap.com/group: tidb-0
+  ports:
+    - name: mysql
+      protocol: TCP
+      port: 4000
+      targetPort: mysql-client
+```
+
+## NodePort
+
+在没有 LoadBalancer 的环境下，可以通过 NodePort 将服务暴露到集群外部，允许通过节点 IP 和端口访问服务。
+
+```yaml
+apiVersion: v1
+kind: Service
+metadata:
+  name: tidb-0
+spec:
+  type: NodePort
+  selector:
+    pingcap.com/managed-by: tidb-operator
+    pingcap.com/cluster: db
+    pingcap.com/component: tidb
+    pingcap.com/group: tidb-0
+  ports:
+    - name: mysql
+      protocol: TCP
+      port: 4000
+      targetPort: mysql-client
+```
+
+详见 [NodePort](https://kubernetes.io/docs/concepts/services-networking/service/#type-nodeport)
+
+> **注意：**
+>
+> NodePort 模式并不适合在生产环境下使用，生产环境下建议使用 LoadBalancer 模式暴露服务
+
+## LoadBalancer
+
+若运行在支持 LoadBalancer 的云平台（如 Google Cloud 或 AWS），建议使用云平台提供的 LoadBalancer 特性来暴露服务，以获得更好的可用性和负载均衡能力。
path: zh/access-tidb.md
user: login: Oreoxmt
body: ```suggestion
在支持 LoadBalancer 的云平台（如 Google Cloud 或 AWS）上，建议使用云平台提供的 LoadBalancer 特性暴露 TiDB 服务，以获得更好的可用性和负载均衡能力。
```
created_at: 2025-05-15T10:09:03Z
author_association: COLLABORATOR
diff_hunk: @@ -0,0 +1,100 @@
+---
+title: 访问 Kubernetes 上的 TiDB 集群
+summary: 介绍如何访问 Kubernetes 上的 TiDB 集群。
+---
+
+# 访问 TiDB 集群
+
+[Service](https://kubernetes.io/docs/concepts/services-networking/service/) 可以根据不同访问场景配置为 `ClusterIP`、`NodePort` 或 `LoadBalancer` 类型，每种类型对应不同的访问方式。
+
+## ClusterIP
+
+`ClusterIP` 通过集群的内部 IP 暴露服务，选择该类型的服务时，只能在集群内部访问。
+
+可以选择在同一个 Namespace 下访问（如 basic-tidb），或者跨 Namespace 访问（如 basic-tidb.default 或 basic-tidb.default.svc）。
+
+- basic-tidb (仅限同 Namespace)
+- basic-tidb.default
+- basic-tidb.default.svc
+
+其中，`basic-tidb` 是 `Service` 的名称，`default` 是 `Namespace` 的名称, 详见 [Kubernetes Service 的 DNS](https://kubernetes.io/docs/concepts/services-networking/dns-pod-service/#namespaces-of-services)
+
+每个 `TiDBGroup` 会创建一个能够访问该 TiDBGroup 所有 TiDB 的 Service。例如，TiDBGroup `tidb-0` 会创建一个内部 Service `tidb-0-tidb`。
+
+可以直接使用该默认 Service 访问 TiDB，也可以根据需要自行创建 Service。
+
+以下 YAML 示例用于创建一个能够访问 Cluster `db` 下所有 TiDB 节点的 Service。
+
+```yaml
+apiVersion: v1
+kind: Service
+metadata:
+  name: tidb
+spec:
+  selector:
+    pingcap.com/managed-by: tidb-operator
+    pingcap.com/cluster: db
+    pingcap.com/component: tidb
+  ports:
+    - name: mysql
+      protocol: TCP
+      port: 4000
+      targetPort: mysql-client
+```
+
+以下 YAML 示例用于创建一个能够访问 Cluster `db` 下特定 TiDBGroup `tidb-0` 所有 TiDB 节点的 Service。
+
+```yaml
+apiVersion: v1
+kind: Service
+metadata:
+  name: tidb-0
+spec:
+  selector:
+    pingcap.com/managed-by: tidb-operator
+    pingcap.com/cluster: db
+    pingcap.com/component: tidb
+    pingcap.com/group: tidb-0
+  ports:
+    - name: mysql
+      protocol: TCP
+      port: 4000
+      targetPort: mysql-client
+```
+
+## NodePort
+
+在没有 LoadBalancer 的环境下，可以通过 NodePort 将服务暴露到集群外部，允许通过节点 IP 和端口访问服务。
+
+```yaml
+apiVersion: v1
+kind: Service
+metadata:
+  name: tidb-0
+spec:
+  type: NodePort
+  selector:
+    pingcap.com/managed-by: tidb-operator
+    pingcap.com/cluster: db
+    pingcap.com/component: tidb
+    pingcap.com/group: tidb-0
+  ports:
+    - name: mysql
+      protocol: TCP
+      port: 4000
+      targetPort: mysql-client
+```
+
+详见 [NodePort](https://kubernetes.io/docs/concepts/services-networking/service/#type-nodeport)
+
+> **注意：**
+>
+> NodePort 模式并不适合在生产环境下使用，生产环境下建议使用 LoadBalancer 模式暴露服务
+
+## LoadBalancer
+
+若运行在支持 LoadBalancer 的云平台（如 Google Cloud 或 AWS），建议使用云平台提供的 LoadBalancer 特性来暴露服务，以获得更好的可用性和负载均衡能力。
+
+参考 [AWS LoadBalancer](https://kubernetes-sigs.github.io/aws-load-balancer-controller/latest/) 和 [GCP LoadBalancer](https://cloud.google.com/kubernetes-engine/docs/concepts/service-load-balancer) 文档，通过创建 LoadBalancer Service 访问 TiDB 服务。
path: zh/access-tidb.md
user: login: Oreoxmt
body: ```suggestion
你可以参考以下官方文档，通过创建 LoadBalancer Service 访问 TiDB 服务：

- [AWS Load Balancer Controller](https://kubernetes-sigs.github.io/aws-load-balancer-controller/latest/)
- [Google Cloud LoadBalancer Service](https://cloud.google.com/kubernetes-engine/docs/concepts/service-load-balancer)
```
created_at: 2025-05-15T10:09:13Z
author_association: COLLABORATOR
diff_hunk: @@ -0,0 +1,100 @@
+---
+title: 访问 Kubernetes 上的 TiDB 集群
+summary: 介绍如何访问 Kubernetes 上的 TiDB 集群。
+---
+
+# 访问 TiDB 集群
+
+[Service](https://kubernetes.io/docs/concepts/services-networking/service/) 可以根据不同访问场景配置为 `ClusterIP`、`NodePort` 或 `LoadBalancer` 类型，每种类型对应不同的访问方式。
+
+## ClusterIP
+
+`ClusterIP` 通过集群的内部 IP 暴露服务，选择该类型的服务时，只能在集群内部访问。
+
+可以选择在同一个 Namespace 下访问（如 basic-tidb），或者跨 Namespace 访问（如 basic-tidb.default 或 basic-tidb.default.svc）。
+
+- basic-tidb (仅限同 Namespace)
+- basic-tidb.default
+- basic-tidb.default.svc
+
+其中，`basic-tidb` 是 `Service` 的名称，`default` 是 `Namespace` 的名称, 详见 [Kubernetes Service 的 DNS](https://kubernetes.io/docs/concepts/services-networking/dns-pod-service/#namespaces-of-services)
+
+每个 `TiDBGroup` 会创建一个能够访问该 TiDBGroup 所有 TiDB 的 Service。例如，TiDBGroup `tidb-0` 会创建一个内部 Service `tidb-0-tidb`。
+
+可以直接使用该默认 Service 访问 TiDB，也可以根据需要自行创建 Service。
+
+以下 YAML 示例用于创建一个能够访问 Cluster `db` 下所有 TiDB 节点的 Service。
+
+```yaml
+apiVersion: v1
+kind: Service
+metadata:
+  name: tidb
+spec:
+  selector:
+    pingcap.com/managed-by: tidb-operator
+    pingcap.com/cluster: db
+    pingcap.com/component: tidb
+  ports:
+    - name: mysql
+      protocol: TCP
+      port: 4000
+      targetPort: mysql-client
+```
+
+以下 YAML 示例用于创建一个能够访问 Cluster `db` 下特定 TiDBGroup `tidb-0` 所有 TiDB 节点的 Service。
+
+```yaml
+apiVersion: v1
+kind: Service
+metadata:
+  name: tidb-0
+spec:
+  selector:
+    pingcap.com/managed-by: tidb-operator
+    pingcap.com/cluster: db
+    pingcap.com/component: tidb
+    pingcap.com/group: tidb-0
+  ports:
+    - name: mysql
+      protocol: TCP
+      port: 4000
+      targetPort: mysql-client
+```
+
+## NodePort
+
+在没有 LoadBalancer 的环境下，可以通过 NodePort 将服务暴露到集群外部，允许通过节点 IP 和端口访问服务。
+
+```yaml
+apiVersion: v1
+kind: Service
+metadata:
+  name: tidb-0
+spec:
+  type: NodePort
+  selector:
+    pingcap.com/managed-by: tidb-operator
+    pingcap.com/cluster: db
+    pingcap.com/component: tidb
+    pingcap.com/group: tidb-0
+  ports:
+    - name: mysql
+      protocol: TCP
+      port: 4000
+      targetPort: mysql-client
+```
+
+详见 [NodePort](https://kubernetes.io/docs/concepts/services-networking/service/#type-nodeport)
+
+> **注意：**
+>
+> NodePort 模式并不适合在生产环境下使用，生产环境下建议使用 LoadBalancer 模式暴露服务
+
+## LoadBalancer
+
+若运行在支持 LoadBalancer 的云平台（如 Google Cloud 或 AWS），建议使用云平台提供的 LoadBalancer 特性来暴露服务，以获得更好的可用性和负载均衡能力。
+
+参考 [AWS LoadBalancer](https://kubernetes-sigs.github.io/aws-load-balancer-controller/latest/) 和 [GCP LoadBalancer](https://cloud.google.com/kubernetes-engine/docs/concepts/service-load-balancer) 文档，通过创建 LoadBalancer Service 访问 TiDB 服务。
+
+访问 [Kubernetes Service 文档](https://kubernetes.io/docs/concepts/services-networking/service/)，了解更多 Service 特性以及云平台 Load Balancer 支持。
path: zh/access-tidb.md
user: login: Oreoxmt
body: ```suggestion
访问 [Kubernetes Service 文档](https://kubernetes.io/zh-cn/docs/concepts/services-networking/service/)，了解更多 Service 特性以及云平台 Load Balancer 支持。
```
created_at: 2025-05-15T10:09:21Z
author_association: COLLABORATOR

PR comments:
user: login: Oreoxmt
created_at: 2025-04-24T09:04:42Z
body: /bot-review
author_association: COLLABORATOR
user: login: github-actions[bot]
created_at: 2025-04-24T09:05:44Z
body: ✅ AI review completed, 9 comments generated.
author_association: NONE
user: login: ti-chi-bot[bot]
created_at: 2025-05-26T11:44:34Z
body: [LGTM Timeline notifier]
---
Timeline:

- `2025-05-26 07:15:36.600096482 +0000 UTC m=+253266.971883943`: :ballot_box_with_check: agreed by [Oreoxmt](https://github.com/Oreoxmt).
- `2025-05-26 11:44:32.77776025 +0000 UTC m=+269403.149547710`: :ballot_box_with_check: agreed by [hfxsd](https://github.com/hfxsd).
author_association: NONE
user: login: hfxsd
created_at: 2025-05-26T11:44:59Z
body: /retest
author_association: COLLABORATOR
user: login: ti-chi-bot[bot]
created_at: 2025-05-27T05:57:17Z
body: @fgksgf: adding LGTM is restricted to approvers and reviewers in OWNERS files.

<details>

In response to [this](https://github.com/pingcap/docs-tidb-operator/pull/2745#pullrequestreview-2869685676):

>


Instructions for interacting with me using PR comments are available [here](https://git.k8s.io/community/contributors/guide/pull-requests.md).  If you have questions or suggestions related to my behavior, please file an issue against the [kubernetes-sigs/prow](https://github.com/kubernetes-sigs/prow/issues/new?title=Prow%20issue:) repository.
</details>
author_association: NONE
user: login: Oreoxmt
created_at: 2025-05-27T06:00:30Z
body: /approve
author_association: COLLABORATOR
user: login: ti-chi-bot[bot]
created_at: 2025-05-27T06:00:34Z
body: [APPROVALNOTIFIER] This PR is **APPROVED**

This pull-request has been approved by: *<a href="https://github.com/pingcap/docs-tidb-operator/pull/2745#issuecomment-2911206570" title="Approved">Oreoxmt</a>*

The full list of commands accepted by this bot can be found [here](https://prow.tidb.net/command-help?repo=pingcap%2Fdocs-tidb-operator).

The pull request process is described [here](https://book.prow.tidb.net/#/workflows/pr)

<details >
Needs approval from an approver in each of these files:

- ~~[OWNERS](https://github.com/pingcap/docs-tidb-operator/blob/feature/v2/OWNERS)~~ [Oreoxmt]

Approvers can indicate their approval by writing `/approve` in a comment
Approvers can cancel approval by writing `/approve cancel` in a comment
</details>
<!-- META={"approvers":[]} -->
author_association: NONE