在Kubernetes集群中,可以通过service的名称来访问MySQL实例。使用以下命令获取MySQL service的名称:
kubectl get services <mysql-service-name> -n <namespace>
其中,<mysql-service-name>是MySQL Service的名称,<namespace>是MySQL所在的命名空间。如果MySQL Service和客户端在同一命名空间中,则无需指定-n参数。
例如,如果MySQL service的名称为mysql-service,命名空间为my-namespace,则可以使用以下命令获取MySQL服务的IP地址:
$ kubectl get services mysql-service -n my-namespace
输出类似于:
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
mysql-service ClusterIP 10.109.111.91 <none> 3306/TCP 2d
这里可以看到,MySQL Service的IP地址是10.109.111.91,端口是3306。
然后就可以在应用程序或者其他容器中使用该IP地址和端口来访问MySQL数据库。例如,在Node.js应用程序中,可以使用以下代码连接MySQL数据库:
const mysql = require('mysql');
const connection = mysql.createConnection({
host: 'mysql-service',
port: '3306',
user: 'root',
password: 'password',
database: 'my_database'
});
connection.connect((err) => {
if (err) throw err;
console.log('Connected to MySQL server');
});
在这里,mysql-service是MySQL服务的名称,因为在Kubernetes集群中,Service名称就相当于DNS名称。MySQL数据库的端口是3306,用户名和密码与实际情况相同。




