我安装了minikube以在本地使用kubernetes。我能够在本地创建pod和服务。
但是,在其上运行的pod(和容器)无法使用服务名称解析服务。
示例:我运行的redis服务是redis pod的代理。
kubectl get services
显示已创建taht redis服务。
但是,当我的Web应用程序尝试连接到redis-service
时,我会收到连接超时,因为Web应用程序(pod)无法解析redis-service
。
是否需要安装任何特殊功能才能使服务解决方案在本地运行。
这是运行kubectl get services
frontend 10.0.0.250 80/TCP 3h
kubernetes 10.0.0.1 <none> 443/TCP 3h
redis-service 10.0.0.156 <none> 6379/TCP 3h
rethinkdb-service 10.0.0.89 <none> 28015/TCP 3h
kubectl describe services --namespace=kube-system
Name: kube-dns
Namespace: kube-system
Labels: k8s-app=kube-dns,kubernetes.io/name=KubeDNS
Selector: <none>
Type: ClusterIP
IP: 10.0.0.10
Port: dns 53/UDP
Endpoints: 10.0.2.15:53
Port: dns-tcp 53/TCP
Endpoints: 10.0.2.15:53
Session Affinity: None
No events.
Name: kubernetes-dashboard
Namespace: kube-system
Labels: app=kubernetes-dashboard,kubernetes.io/cluster-service=true
Selector: app=kubernetes-dashboard
Type: NodePort
IP: 10.0.0.156
Port: <unset> 80/TCP
NodePort: <unset> 30000/TCP
Endpoints: 172.17.0.2:9090
Session Affinity: None
No events.
答案 0 :(得分:3)
您需要在minikube中将您的服务公开为type: NodePort
,而不是ClusterIP
然后,您可以使用minikube service <servicename>
(或者您可以找到他们使用kubectl get services
手动映射到哪个端口)