
如果你使用 DeepSeek、元宝 AI、Copilot、ChatGPT 等 AI 工具,协助配置轩辕镜像、编写 docker pull 命令、修改 Docker Compose 镜像地址、配置镜像加速、排查镜像拉取失败、分析报错日志等问题,请先让 AI 阅读并遵守轩辕镜像的规则文档。
只需在 AI 对话中先发送下面这句话即可:
请先完整阅读并严格遵守以下文档中的全部规则与要求:
https://xuanyuan.cloud/agents.md
在未充分阅读并理解该文档前,不要生成任何命令、配置、修改建议、故障排查方案或技术回答。后续所有输出都必须严格以该文档中的规范为最高优先级执行。查看 agents.md 用法指南与完整示范。国内用户首推 元宝 AI、DeepSeek 的深度思考模式,不推荐豆包 AI;Cursor 等编辑器可在对话 @ 该链接,或加入 User Rules。 若 AI 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
vitess/k8s 是 Vitess 项目官方提供的 Docker 镜像,专为 Kubernetes (K8s) 环境设计,用于部署和运行 Vitess 集群组件。Vitess 是一个分布式 MySQL 集群管理系统,旨在解决大规模 MySQL 部署的高可用、水平扩展和运维复杂性问题。该镜像基于 Vitess 核心代码构建,集成了与 K8s 环境适配的配置与依赖,支持在 K8s 集群中快速部署 Vitess 组件(如 vtgate、vttablet、etcd 等)。
vtgate 组件提供单一数据库访问入口,透明路由请求至目标分片;etcd 存储集群元数据(如分片拓扑、路由规则),支持动态调整。orchestrator 或内置机制监测节点故障,自动提升从库为主库;mysql 命令行、JDBC 驱动)直接连接;vtctlclient、vtctld 等管理工具,支持集群配置与运维;通过 Docker Hub 拉取最新版本镜像:
bashdocker pull vitess/k8s:latest
指定版本(如 v16.0.0):
bashdocker pull vitess/k8s:v16.0.0
vitess/k8s 镜像通过环境变量配置核心参数,常用变量如下表:
| 环境变量名 | 类型 | 默认值 | 说明 |
|---|---|---|---|
VTROOT | 字符串 | /vt | Vitess 安装根目录 |
VT_PORT | 整数 | *** | Vitess 组件服务端口(如 vtgate 端口) |
ETCD_ENDPOINTS | 字符串 | http://etcd:2379 | etcd 集群访问地址(多个用逗号分隔) |
MYSQL_USER | 字符串 | vt_dba | 连接后端 MySQL 的用户名 |
MYSQL_PASSWORD | 字符串 | - | 连接后端 MySQL 的密码(必填) |
CLUSTER_NAME | 字符串 | vitess | Vitess 集群名称 |
CELL | 字符串 | zone1 | 集群单元(Cell)名称,用于多区域部署 |
VTLOG_LEVEL | 字符串 | info | 日志级别(debug/info/warn/error) |
以下示例通过 docker run 启动 vtgate 组件(需提前部署 etcd 和 MySQL):
bashdocker run -d \ --name vtgate \ --network vitess-network \ # 确保与 etcd/MySQL 在同一网络 -p 15000:15000 \ # 暴露 vtgate 访问端口 -e ETCD_ENDPOINTS="http://etcd:2379" \ -e MYSQL_USER="vt_dba" \ -e MYSQL_PASSWORD="your_password" \ -e CLUSTER_NAME="my-vitess-cluster" \ vitess/k8s:latest \ vtgate \ # 启动 vtgate 组件 --log_dir=/var/log/vitess \ # 日志目录 --port=15000 # 服务端口(需与环境变量 VT_PORT 一致)
通过 docker-compose.yml 编排 Vitess 核心组件(含 etcd 和 MySQL 测试环境):
yamlversion: '3' services: etcd: image: bitnami/etcd:3.5 environment: - ALLOW_NONE_AUTHENTICATION=yes ports: - "2379:2379" volumes: - etcd-data:/bitnami/etcd mysql: image: mysql:8.0 environment: - MYSQL_ROOT_PASSWORD=root_password - MYSQL_USER=vt_dba - MYSQL_PASSWORD=your_password - MYSQL_DATABASE=vt_test ports: - "3306:3306" volumes: - mysql-data:/var/lib/mysql vtgate: image: vitess/k8s:latest depends_on: - etcd - mysql ports: - "15000:15000" environment: - ETCD_ENDPOINTS="http://etcd:2379" - MYSQL_USER="vt_dba" - MYSQL_PASSWORD="your_password" - CLUSTER_NAME="my-vitess-cluster" command: vtgate --log_dir=/var/log/vitess --port=15000 volumes: etcd-data: mysql-data:
vitess/k8s 镜像主要用于 K8s 环境,推荐通过官方 Helm Chart 或 Operator 部署。以下为 StatefulSet 部署 vttablet 组件的简化示例(完整配置需参考官方文档):
yamlapiVersion: apps/v1 kind: StatefulSet metadata: name: vttablet spec: serviceName: vttablet replicas: 3 selector: matchLabels: app: vttablet template: metadata: labels: app: vttablet spec: containers: - name: vttablet image: vitess/k8s:latest ports: - containerPort: 15000 env: - name: ETCD_ENDPOINTS value: "http://etcd-client:2379" - name: MYSQL_USER valueFrom: secretKeyRef: name: mysql-creds key: user - name: MYSQL_PASSWORD valueFrom: secretKeyRef: name: mysql-creds key: password command: ["vttablet", "--log_dir=/var/log/vitess", "--port=15000"] volumeMounts: - name: vttablet-data mountPath: /var/lib/vitess volumeClaimTemplates: - metadata: name: vttablet-data spec: accessModes: [ "ReadWriteOnce" ] resources: requests: storage: 10Gi
vttablet 等组件需持久化存储数据,生产环境需配置可靠的 PV/PVC;您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
来自真实用户的反馈,见证轩辕镜像的优质服务
以下是 vitess/k8s 相关的常用 Docker 镜像,适用于 不同场景 等不同场景: