NDB Operator 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 陳述式。