4.1.1 Access From Within Kubernetes

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)