NDB Operator 8.4 手冊  /  ...  /  從 Kubernetes 外部存取

4.1.2 從 Kubernetes 外部存取

在 Kubernetes 叢集外部執行的 NDB 管理和 SQL 應用程式,可以使用先前描述的管理伺服器和 SQL 節點服務來存取在內部執行的 NDB Cluster;這些服務的類型為 LoadBalancer。Kubernetes 叢集供應商(例如 minikube)會為這些服務配置負載平衡器。如果您正在執行 minikube,則要將服務公開到 Kubernetes 叢集外部,請執行此處顯示的命令

> minikube tunnel

使用 kubectl get service,並傳遞服務名稱或標籤,您可以檢索應用程式連線到 NDB Cluster 所需的 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 Cluster 管理伺服器,並執行管理任務。

同樣地,您可以使用以下任一 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 Cluster SQL 節點並執行 SQL 語句。