Nir*_*rav 10 mysql database-connection kubernetes minikube
我正在 minikube 中运行一些服务并尝试连接到 3306 端口上在 localhost(127.0.0.1) 上运行的 mysql。
我读了这个并尝试创建service
和Endpoints
. 但是,当我指定127.0.0.1
为 IP 时,它会引发如下错误:
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)
我的部署如下:
---
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
Run Code Online (Sandbox Code Playgroud)
请帮助我了解如何mysql
从minikube
.
我也试过用127.0.0.1
我电脑的公共 IP替换(虽然不知道为什么)并且连接超时。
对正确方向的任何帮助或指导表示赞赏。
VAS*_*VAS 14
由于vm-driver
没有提到操作系统和 minikube ,我认为这是--vm-driver=virtualbox
因为这可能是最常见的情况。如果您使用不同的东西,则需要根据您的配置调整此解决方案。
127.0.0.1
是localhost
( lo0
) 接口 IP 地址。节点、主机和 Pod 有自己的 localhost 接口,它们之间没有连接。
您mysql-server
正在主机上运行,并且无法使用localhost
minikube 集群 pod 内部或 minikube vm 内部的(或其 IP 范围)访问。
您应该在 minikube VM 和主机之间建立网络。Virtualbox 中的默认 NAT 网络对此不利,因此最好创建另一个仅限主机的网络。让我们在 Virtualbox UI 中使用名称和 IP 范围创建额外的仅主机网络。您不需要为该网络启用 DHCP。vmnet2
192.168.77.1/24
您必须配置 mysql 以侦听192.168.77.1
默认情况下用于主机的接口 vmnet2 或 ip 。检查它是否可以从主机访问:
mysql -h 192.168.77.1 -u root -p
Run Code Online (Sandbox Code Playgroud)
要将此网络附加到 minikube VM 上,应使用 --host-only-cidr 密钥。vm-driver
为此,不同类型使用不同的 cli 选项。检查minikube start --help
输出。因此,virtualbox
它将如下所示:
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
Run Code Online (Sandbox Code Playgroud)
为了方便起见,我编写了其他最常见的 cli 选项。
MinikubeVM会得到下面的IP地址:192.168.77.100
(。至少在第一时间)您可以使用检查minikube ssh
,然后ifconfig
命令。
最后一部分 - 我们需要在minikube
集群内为它创建一个服务和端点:
kubectl apply -f mysql-service.yaml
Run Code Online (Sandbox Code Playgroud)
这是mysql-service.yaml
文件的内容:
---
apiVersion: v1
kind: Service
metadata:
name: mysql-service
spec:
type: ClusterIP
ports:
- protocol: TCP
port: 3306
targetPort: 3306
---
apiVersion: v1
kind: Endpoints
metadata:
name: mysql-service
subsets:
- addresses:
- ip: 192.168.77.1
ports:
- port: 3306
Run Code Online (Sandbox Code Playgroud)
mysql-service
名称和端口3306
作为目标点。Cha*_*ong 10
\xe2\x80\x83 根据minikube\ 的文档,如果你的host.minikube.internal
版本高于. 您可以使用它来确认连接。localhost
minikube\'s
v1.10
minikube ssh
归档时间: |
|
查看次数: |
8829 次 |
最近记录: |