An application running inside the Kubernetes Cluster can use these extracted information and can access the data in MySQL Cluster without any additional setup.
NDB Cluster tools such as ndb_mgm can use the
management node service name as a connection string to connect
to the management servers. MySQL clients such as
mysql can use the
mysqld-ext
service and the password stored in
rootPasswordSecretName
to connect to the SQL
nodes.
It is first necessary to log in to an NDB Cluster pod using
kubectl
, like this:
Press CTRL+C to copy> kubectl exec -it example-ndb-mysqld-599bcfbd45-hq8ll
Now you can execute ndb_mgm to start the NDB management client, using the mnagement node service name as the connection string:
Press CTRL+C to copy> ndb_mgm -c example-ndb-mgmd-ext
From within ndb_mgm you can issue all of the usual management client commands, as shown here:
Press CTRL+C to copy-- NDB Cluster -- Management Client -- ndb_mgm> SHOW Connected to Management Server at: example-ndb-mgmd-ext:1186 Cluster Configuration --------------------- [ndbd(NDB)] 2 node(s) id=3 @172.17.0.6 (mysql-8.0.36 ndb-8.0.36, Nodegroup: 0, *) id=4 @172.17.0.7 (mysql-8.0.36 ndb-8.0.36, Nodegroup: 0) [ndb_mgmd(MGM)] 2 node(s) id=1 @172.17.0.5 (mysql-8.0.36 ndb-8.0.36) id=2 @172.17.0.8 (mysql-8.0.36 ndb-8.0.36) [mysqld(API)] 5 node(s) id=145 @172.17.0.10 (mysql-8.0.36 ndb-8.0.36) id=146 @172.17.0.9 (mysql-8.0.36 ndb-8.0.36) id=147 (not connected, accepting connect from any host) id=148 (not connected, accepting connect from any host) id=149 (not connected, accepting connect from any host) ndb_mgm> ALL STATUS Node 5: started (mysql-8.0.36 ndb-8.0.36) Node 6: started (mysql-8.0.36 ndb-8.0.36) ndb_mgm> EXIT
To connect to MySQL with the mysql client,
use the service name example-ndb-mysqld-ext
for the host name, like this:
Press CTRL+C to copy> mysql -h example-ndb-mysqld-ext -uroot -p Enter password: ******** Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 500 Server version: 8.0.36-cluster MySQL Cluster Community Server - GPL Copyright (c) 2000, 2022, Oracle and/or its affiliates. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. mysql> SELECT * FROM INFORMATION_SCHEMA.ENGINES > WHERE ENGINE LIKE "ndb%"\G *************************** 1. row *************************** ENGINE: ndbinfo SUPPORT: YES COMMENT: MySQL Cluster system information storage engine TRANSACTIONS: NO XA: NO SAVEPOINTS: NO *************************** 2. row *************************** ENGINE: ndbcluster SUPPORT: YES COMMENT: Clustered, fault-tolerant tables TRANSACTIONS: YES XA: NO SAVEPOINTS: NO 2 rows in set (0.00 sec)