从minikube访问在localhost上运行的mysql

问题描述 投票:0回答:1

我在minikube中运行一些服务,并试图连接到3306端口上运行在localhost(127.0.0.1)上的mysql。

我读了qazxsw poi并试图创造qazxsw poi和qazxsw poi。但是,当我将this指定为IP时,它会抛出错误,如下所示:

service

我的部署如下:

Endpoints

请帮助我了解如何从127.0.0.1连接到The Endpoints "mysql-service" is invalid: subsets[0].addresses[0].ip: Invalid value: "127.0.0.1": may not be in the loopback range (127.0.0.0/8) db。

我也尝试用我的计算机的公共IP替换--- apiVersion: v1 kind: Service metadata: name: mysql-service spec: ports: - protocol: TCP port: 1443 targetPort: mysql --- apiVersion: v1 kind: Endpoints metadata: name: mysql-service subsets: - addresses: - ip: 127.0.0.1 ports: - name: mysql port: 3306 (虽然不知道为什么)并且连接超时。

任何有关正确方向的帮助或指南都表示赞赏。

mysql kubernetes database-connection minikube
1个回答
0
投票

由于未提及OS和minikube mysql,我认为它是minikube,因为它可能是最常见的情况。如果您使用不同的东西,则需要根据您的配置调整此解决方案。

Explanation:

127.0.0.1是一个vm-driver--vm-driver=virtualbox)接口IP地址。节点,主机和Pod具有自己的localhost接口,并且它们彼此不连接。

您的127.0.0.1正在主机上运行,​​并且无法使用localhost(或其IP范围)从minikube群集窗格内部或从minikube vm内部访问。

Solution:

  1. 您应该在minikube VM和主机之间建立网络。 Virtualbox中的默认NAT网络不利于此,因此最好创建另一个仅限主机的网络。让lo0在Virtualbox UI中使用名为mysql-server和IP范围localhost的附加主机网络。您无需为该网络启用DHCP。
  2. 你必须配置mysql来监听接口vmnet2或ip create,它默认用于主机。检查是否可以从主机访问:
vmnet2
  1. 要将此网络连接到minikube VM,应使用--host-only-cidr密钥。不同类型的192.168.77.1/24为此目的使用不同的cli选项。检查192.168.77.1输出。因此,对于mysql -h 192.168.77.1 -u root -p ,它将如下所示: vm-driver 为方便起见,我写了其他最常见的cli选项。 MinikubeVM将获得以下IP地址:minikube start --helpvirtualbox)您可以使用minikube start --cpus 2 \ --memory 2048 \ --disk-size 20g \ --vm-driver virtualbox \ --network-plugin flannel \ --kubernetes-version v1.12.2 \ --host-only-cidr 192.168.77.1/24 然后使用192.168.77.100命令进行检查。
  2. 最后一部分 - 我们需要在at least the first time.集群中为它创建一个服务和端点:
minikube ssh

这是ifconfig文件的内容:

minikube
  1. 现在我们可以在此群集的任何pod中使用kubectl apply -f mysql-service.yaml 名称和端口mysql-service.yaml作为目标点。
© www.soinside.com 2019 - 2024. All rights reserved.