《OpenShift / RHEL / DevSecOps 汇总目录》
说明:本文已经在支持 OpenShift 4.12 的环境中验证
安装 MySQL Server
- 先在 OpenShift 中创建一个可用密码登录的 Fedora VM(过程可参见《OpenShift 4 - 通过 SSH 远程访问 OpenShift Virtualization 的虚拟机》),名称例如为 fedora-mysql。
- 进入该 VM。
$ virtctl ssh fedora@fedora-mysql
- 执行命令,在 Fedora VM 中安装 MySQL。
sudo dnf install https://dev.mysql.com/get/mysql80-community-release-fc38-1.noarch.rpm
sudo dnf install mysql-community-server -y
sudo systemctl start mysqld
sudo systemctl enable mysqld
- 获取 MySQL 的 root 用户的初始密码。
$ sudo grep 'temporary password' /var/log/mysqld.log
- 执行命令,除了重置 root 密码外,其他可根据需要设置。
$ sudo mysql_secure_installation
- 修改 /etc/my.cnf 文件,打开 “default-authentication-plugin=mysql_native_password” 一行的注释,然后保存文件。
$ sudo vi /etc/my.cnf
- 重启 MySQL 服务后登录 MySQL。
$ sudo systemctl restart mysqld
$ mysql -u root --password=P@ssw0rd
- 执行命令在 MySQL 中创建测试用户,然后退出 MySQL。
mysql> CREATE USER 'user1'@'%' IDENTIFIED BY 'P@ssw0rd';
mysql> create schema test;
mysql> quit;
- 然后用新创建的 user1 用户登录 MySQL。
$ mysql -u root --password=P@ssw0rd
从集群内部访问 MySQL
- 执行命令,为 VM 创建对应的服务。注意:当服务类型是 ClusterIP 的时候,该服务只能从 OpenShift 集群的内部访问。
$ virtctl expose vm fedora-mysql --name=fedora-mysql-3306 --type=ClusterIP --port=3306
$ oc get svc
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
fedora-mysql-3306 ClusterIP 172.30.37.66 <none> 3306/TCP 47m
- 在集群内部的另外一个 VM 中安装 MySQL 客户端。
$ sudo yum install -y mysql
- 使用 VM 的服务名或 IP 地址访问 MySQL。
$ mysql -u user1 --password=P@ssw0rd --host=fedora-mysql-3306.vmexamples.svc.cluster.local --port=3306
从集群外部访问 MySQL
- 执行命令,为 VM 创建对应的服务。注意:当服务类型为 NodePort 的时候,该服务可从 OpenShift 集群的外部访问。
$ virtctl expose vm fedora-mysql --name=fedora-mysql-3306 --type=NodePort --port=3306 --target-port=31046
$ oc get svc
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
fedora-mysql-3306 NodePort 172.30.34.243 <none> 3306:31046/TCP 5m16s
- 在集群外部环境中安装 MySQL 客户端。
$ sudo yum install -y mysql
- 获得 OpenShift 的子域名。
$ SUBDOMAIN=$(oc get ingresscontroller default -n openshift-ingress-operator -o json | jq -r '.status.domain')
- 从外部访问 MySQL。
$ mysql -u user1 --password=P@ssw0rd --host=console-openshift-console.${SUBDOMAIN} --port=31046
视频
参考
https://docs.fedoraproject.org/en-US/quick-docs/installing-mysql-mariadb/