我正在为一个学校项目构建一个 K8 集群。它是裸机并使用 metallb 作为负载平衡器。每个服务都在一个单独的 pod 中工作:
- Nginx
- WordPress
- phpmyadmin
- mysql (mariadb)
在 phpmyadmin 文件中,我需要将我的 mysql 服务器与以下内容链接:
$cfg['Servers'][$i]['host'] = "mysql-server-name";
我尝试使用节点的 IP:
kubectl get node -o=custom-columns='DATA:status.addresses[0].address' | sed -n 2p
添加端口:3306,但我意识到使用此方法无法通过浏览器访问我的任何服务。例如,节点的 Ip:5050 应该将我重定向到我的 wordpress,但它没有。有什么方法可以让我使用一个 IP 来让我的 pod 在它们之间进行通信?我必须补充一点,当我使用 svc IP 而不是节点时,每个服务都可以正常工作。
这是我用于 metallb 的配置图:
kind: ConfigMap
metadata:
namespace: metallb-system
name: config
data:
config: |
address-pools:
- name: default
protocol: layer2
addresses:
- 192.168.99.100-192.168.99.200