【问题标题】:Service resolution doesn't work in minikube服务解析在 minikube 中不起作用
【发布时间】:2016-10-19 06:35:28
【问题描述】:

我安装了 minikube 以在本地使用 kubernetes。我能够在本地创建 pod 和服务。

但是,在其上运行的 pod(和容器)无法使用服务名称解析服务。

示例:我正在运行 redis 服务,它充当 redis pod 的代理。

kubectl get services 显示 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.

【问题讨论】:

  • kubectl describe services --namespace=kube-system 的输出是什么样的?是否有健康的kube-dns 服务正在运行?
  • 名称:kube-dns 命名空间:kube-system 标签:k8s-app=kube-dns,kubernetes.io/name=KubeDNS 选择器: 类型:ClusterIP IP:10.0.0.10 端口: dns 53/UDP 端点:10.0.2.15:53 端口:dns-tcp 53/TCP 端点:10.0.2.15:53 会话亲和性:无 无事件。
  • 是的,有一个 kube-dns 正在运行
  • 如果你从 pod 内部运行“nslookup redis-service”,输出是什么?
  • 同样的问题。 kubectl describe services --namespace=kube-system 显示 kube-dns 正在运行。我做minikube ssh 并得到这个:` docker@boot2docker:~$ nslookup atalanta-service 服务器:192.168.64.1 地址 1:192.168.64.1 nslookup:无法解析 'atalanta-service' `

标签: kubernetes


【解决方案1】:

您需要在 minikube 中将您的服务公开为 type: NodePort 而不是 ClusterIP

然后您可以使用minikube service &lt;servicename&gt; 访问它们

(或者您可以使用kubectl get services 找出它们被手动映射到的端口)

【讨论】:

    猜你喜欢
    • 2018-07-02
    • 2022-07-15
    • 1970-01-01
    • 2016-08-22
    • 2020-04-21
    • 2016-02-02
    • 2017-02-20
    • 1970-01-01
    • 2018-07-19
    相关资源
    最近更新 更多