OpenShift Vitualization - 通过服务名访问 VM 中的服务(附视频)

《OpenShift / RHEL / DevSecOps 汇总目录》
说明:本文已经在支持 OpenShift 4.12 的 OpenShift 环境中验证

文章目录

  • 安装 MySQL Server
  • 从集群内部访问 MySQL
  • 从集群外部访问 MySQL
  • 视频
  • 参考

安装 MySQL Server

  1. 先在 OpenShift 中创建一个可用密码登录的 Fedora VM(过程可参见《OpenShift 4 - 通过 SSH 远程访问 OpenShift Virtualization 的虚拟机》),名称例如为 fedora-mysql。
  2. 进入该 VM。
$ virtctl ssh fedora@fedora-mysql
  1. 执行命令,在 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
  1. 获取 MySQL 的 root 用户的初始密码。
$ sudo grep 'temporary password' /var/log/mysqld.log
  1. 执行命令,除了重置 root 密码外,其他可根据需要设置。
$ sudo mysql_secure_installation
  1. 修改 /etc/my.cnf 文件,打开 “default-authentication-plugin=mysql_native_password” 一行的注释,然后保存文件。
$ sudo vi /etc/my.cnf
  1. 重启 MySQL 服务后登录 MySQL。
$ sudo systemctl restart mysqld
$ mysql -u root --password=P@ssw0rd
  1. 执行命令在 MySQL 中创建测试用户,然后退出 MySQL。
mysql> CREATE USER 'user1'@'%' IDENTIFIED BY 'P@ssw0rd';
mysql> create schema test;
mysql> quit;
  1. 然后用新创建的 user1 用户登录 MySQL。
$ mysql -u root --password=P@ssw0rd

从集群内部访问 MySQL

  1. 执行命令,为 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
  1. 在集群内部的另外一个 VM 中安装 MySQL 客户端。
$ sudo yum install -y mysql
  1. 使用 VM 的服务名或 IP 地址访问 MySQL。
$ mysql -u user1 --password=P@ssw0rd --host=fedora-mysql-3306.vmexamples.svc.cluster.local --port=3306

从集群外部访问 MySQL

  1. 执行命令,为 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
  1. 在集群外部环境中安装 MySQL 客户端。
$ sudo yum install -y mysql
  1. 获得 OpenShift 的子域名。
SUBDOMAIN=$(oc get ingresscontroller default -n openshift-ingress-operator -o json | jq -r '.status.domain')
  1. 从外部访问 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/

你可能感兴趣的:(openshift,虚拟化,VM,kubernetes)