【发布时间】:2019-05-03 15:34:08
【问题描述】:
我创建了两个服务。
myyml 服务
mysql-部署
myymlservice 需要 mysql-deployment 的负载均衡器的 IP 地址(所以它可以创建一个连接字符串到它)
minikube service list
|-------------|----------------------|--------------------------------|
| NAMESPACE | NAME | URL |
|-------------|----------------------|--------------------------------|
| default | kubernetes | No node port |
| default | mysql-deployment | http://192.168.99.100:30928 |
| default | myymlservice | http://192.168.99.100:32724 |
| | | http://192.168.99.100:31461 |
| kube-system | kube-dns | No node port |
| kube-system | kubernetes-dashboard | No node port |
|-------------|----------------------|--------------------------------|
..
kubectl describe service mysql-deployment
Name: mysql-deployment
Namespace: default
Labels: <none>
Annotations: kubectl.kubernetes.io/last-applied-configuration={"apiVersion":"v1","kind":"Service","metadata":{"annotations":{},"name":"mysql-deployment","namespace":"default"},"spec":{"ports":[{"port":1433,"protoc...
Selector: app=mysql
Type: LoadBalancer
IP: 10.107.53.255
Port: <unset> 1433/TCP
TargetPort: 1433/TCP
NodePort: <unset> 30928/TCP
Endpoints: 172.17.0.7:1433
Session Affinity: None
External Traffic Policy: Cluster
Events: <none>
一项服务(或支持该服务的容器)如何(使用 yml)获取 IP 地址?
我在上一个问题中的更多设置:
single service with multiple exposed ports on a pod with multiple containers
【问题讨论】:
-
如果你想建立连接字符串,你可以使用服务名称而不是 ip。例如
mysql-deployment.default.svc.cluster.local。那是因为 kubernetes 有一个“dns”built-in -
好的!港口怎么样?还是我假设我知道?
-
你知道神奇的 kubectl 查询我们获取全天的名称吗?
-
感谢 gonazalesraul。未来的读者,“技巧”是 mysql-deployment.default.svc.cluster.local 显然解析 IP 和端口。“默认”是命名空间。“mysql-deployment”是服务名称,“svc” .cluster.local”是Kubernetes voodoo.gonzalesraul,如果您添加答案,我会将其标记为答案。
标签: kubernetes kubectl kubernetes-pod