[英]Cannot connect to external mysql database using openshift node.js
[英]Connect openshift pod to external mysql database
我正在嘗試在 OpenShift 4 上設置一個通用 pod,它可以連接到在 OpenShift 集群外部的單獨 VM 上運行的 mysql 服務器(使用本地 openshift crc 進行測試)。 但是,在創建部署時,我無法從 pod 內部連接到 mysql 服務器(用於測試目的)。
以下是我使用的部署:
kind: "Service"
apiVersion: "v1"
metadata:
name: "mysql"
spec:
ports:
- name: "mysql"
protocol: "TCP"
port: 3306
targetPort: 3306
nodePort: 0
selector: {}
---
kind: "Endpoints"
apiVersion: "v1"
metadata:
name: "mysql"
subsets:
- addresses:
- ip: "***ip of host with mysql database on it***"
ports:
- port: 3306
name: "mysql"
---
apiVersion: v1
kind: DeploymentConfig
metadata:
name: "deployment"
spec:
template:
metadata:
labels:
name: "mysql"
spec:
containers:
- name: "test-mysql"
image: "***image repo with docker image that has mysql package installed***"
ports:
- containerPort: 3306
protocol: "TCP"
env:
- name: "MYSQL_USER"
value: "user"
- name: "MYSQL_PASSWORD"
value: "******"
- name: "MYSQL_DATABASE"
value: "mysql_db"
- name: "MYSQL_HOST"
value: "***ip of host with mysql database on it***"
- name: "MYSQL_PORT"
value: "3306"
我只是使用安裝了標准軟件包(net-tools、openjdk 等)的通用映像進行測試
我正在通過以下命令進入部署的 pod 進行測試:
$ oc rsh {{ deployed pod name }}
但是,當我嘗試運行以下命令時,我無法連接到運行 mysql-server 的服務器
$ mysql --host **hostname** --port 3306 -u user -p
我收到此錯誤:
ERROR 2003 (HY000): Can't connect to MySQL server on '**hostname**:3306' (111)
我還嘗試從服務創建一條路由並將其指向為“fqdn”替代方案,但仍然沒有運氣。
如果我嘗試 ping 主機(在 pod 內),我也無法訪問它。 但是我可以從 pod 外部訪問主機,並且從 pod 內部,我可以 ping 諸如 google.com 或 github.com 之類的站點
作為參考,正在使用的圖像本質上是以下 dockerfile
FROM ubi:8.0
RUN dnf install -y python3 \
wget \
java-1.8.0-openjdk \
https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm \
postgresql-devel
WORKDIR /tmp
RUN wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm && \
rpm -ivh mysql-community-release-el7-5.noarch.rpm && \
dnf update -y && \
dnf install mysql -y && \
wget https://dev.mysql.com/get/Downloads/Connector-J/mysql-connector-java-5.1.48.tar.gz && \
tar zxvf mysql-connector-java-5.1.48.tar.gz && \
mkdir -p /usr/share/java/ && \
cp mysql-connector-java-5.1.48/mysql-connector-java-5.1.48-bin.jar /usr/share/java/mysql-connector-java.jar
RUN dnf install -y tcping \
iputils \
net-tools
我想我從根本上對從 OpenShift 內部連接到外部數據庫有一些誤解,和/或我的部署配置需要在某處進行一些調整。 任何幫助將不勝感激。
正如帖子的對話中所提到的,這似乎是一個防火牆問題。 我已經使用相同的配置再次測試,但不是外部 mysql db,而是通過在 openshift 中部署 mysql 進行測試,並且 pod 可以連接。 由於我無法控制組織中的防火牆,並且配置在兩個部署之間沒有更改,因此我將其標記為已解決,因為我無法對其進行測試
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.