vitess/vtctldvitess/vtctld是Vitess分布式数据库集群系统的核心控制平面组件,负责协调和管理整个Vitess集群的生命周期。作为集群的"大脑",它通过与拓扑服务(如etcd、ZooKeeper)交互,提供集群配置管理、拓扑结构维护、状态监控及故障转移等关键功能,支持通过命令行工具(vtctlclient)和Web界面进行操作。
适用于大规模Vitess集群的日常运维,包括节点监控、配置调整和故障处理。
用于搭建本地或测试环境的Vitess集群,验证集群配置与功能正确性。
支持Vitess版本升级过程中的拓扑协调,以及跨环境的集群数据迁移。
bashdocker run -d \ --name vtctld \ -p ***:*** \ vitess/vtctld:latest \ --topo_etcd_global "etcd-host:2379" \ --port *** \ --web_dir /vt/web/vtctld
| 参数 | 说明 | 默认值 |
|---|---|---|
--topo_etcd_global | etcd全局拓扑服务地址 | 无(必填) |
--topo_zookeeper_global | ZooKeeper全局拓扑服务地址 | 无 |
--port | Web服务监听端口 | *** |
--web_dir | Web界面静态资源目录 | /vt/web/vtctld |
--alsologtostderr | 将日志同时输出到标准错误流 | false |
--log_dir | 日志文件存储目录 | /var/log/vitess |
| 环境变量 | 说明 | 示例值 |
|---|---|---|
TOPOLOGY_FLAGS | 拓扑服务通用参数(如认证配置) | "--tls_ca=/certs/ca.pem" |
VTCTLD_PORT | 覆盖默认Web服务端口 | *** |
LOG_LEVEL | 日志级别(debug/info/warn/error) | info |
yamlversion: '3' services: vtctld: image: vitess/vtctld:latest ports: - "***:***" volumes: - ./certs:/certs:ro - vtctld_logs:/var/log/vitess command: > --topo_etcd_global "etcd:2379" --port *** --alsologtostderr --log_dir /var/log/vitess --tls_ca /certs/ca.pem --tls_cert /certs/server-cert.pem --tls_key /certs/server-key.pem depends_on: - etcd etcd: image: bitnami/etcd:3.5 environment: - ALLOW_NONE_AUTHENTICATION=yes ports: - "2379:2379" volumes: vtctld_logs:
Web界面访问
启动后通过 http://<容器IP>:*** 访问管理界面,可查看集群拓扑、节点状态及配置信息。
命令行操作
通过 vtctlclient 工具连接vtctld进行集群管理:
bash# 查看集群关键空间列表 vtctlclient --server=vtctld:*** GetKeyspaces # 初始化新的Keyspace vtctlclient --server=vtctld:*** CreateKeyspace --sharding_column=id user_db
--topo_etcd_global)为必填参数,需确保容器可访问指定的etcd/ZooKeeper服务vtctld_logs卷)manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务