NDB 操作器 9.0 手册  /  ...  /  从 Kubernetes 外部访问

4.1.2 从 Kubernetes 外部访问

在 Kubernetes 集群外部运行的 NDB 管理和 SQL 应用程序可以使用前面描述的管理服务器和 SQL 节点服务访问在内部运行的 NDB 集群;这些服务的类型为 LoadBalancer。Kubernetes 集群提供程序(如 minikube)会为这些服务预配负载均衡器。如果您正在运行 minikube,请执行此处所示的命令以在 Kubernetes 集群外部公开服务

> minikube tunnel

使用 kubectl get service 并传递服务名称或标签,您可以检索应用程序连接到 NDB 集群所需的 IP 地址。对于示例管理节点服务,可以使用此处所示的任一命令完成此操作

# Retrieve management load balancer service IP address using service name
> kubectl get service "example-ndb-mgmd-ext" \
      -o jsonpath={.status.loadBalancer.ingress[0].ip}

# Retrieve management load balancer service IP address using service label
> kubectl get service \
      -l "mysql.oracle.com/resource-type=mgmd-service-ext" \
      -o jsonpath={.items[0].status.loadBalancer.ingress[0].ip}

使用刚刚提取的服务 IP 地址,NDB 管理客户端(如 ndb_mgm)可以通过管理节点服务连接到 NDB 集群管理服务器,并执行管理任务。

同样,您可以使用以下任一 kubectl get service 命令获取示例 SQL 节点负载均衡器服务的 IP 地址

# Retrieve SQL node load balancer service IP address using service name
> kubectl get service "example-ndb-mysqld-ext" \
      -o jsonpath={.status.loadBalancer.ingress[0].ip}

# Retrieve SQL node load balancer service IP address using service name
> kubectl get service \
      -l "mysql.oracle.com/resource-type=mysqld-service-ext" \
      -o jsonpath={.items[0].status.loadBalancer.ingress[0].ip}

使用通过这两个命令中的任何一个获得的 IP 地址,MySQL 客户端(如 mysql)可以连接到 NDB 集群 SQL 节点并执行 SQL 语句。