【问题标题】:Starting an Ingress service on Docker for Mac在 Docker for Mac 上启动 Ingress 服务
【发布时间】:2018-06-22 23:26:36
【问题描述】:

使用:

kubectl expose deployment <Name-Of-Servce> --name=loadbalancer --port=8080 --target-port=8080 --type=LoadBalancer

kubectl get services 显示待处理:

loadbalancer                 LoadBalancer   <x.x.x.x>   <pending>     8080:32670/TCP   2m

在 Docker 支持 Kubernetes 之前,我可以使用 MiniKube 和 Helm:

helm install stable/jenkins
kubectl get services // To get the service name
minikube service original-llama-jenkins // << The service name

现在我们有了支持 Kubernetes 的 Docker for Mac(Edge),如何添加 EXTERNAL-IP

【问题讨论】:

    标签: kubernetes minikube kubernetes-helm docker-for-mac


    【解决方案1】:

    LoadBalancer 和 NodePort 类型都适用于 Docker for Mac Kubernetes。实际上,这是一个可爱的魔法。只需点击本地主机:[端口]。对于 NodePort,除非在服务定义中指定,否则会自动分配端口。对于 LoadBalancer 类型,它也在服务定义中指定。请注意,在使用 LoadBalancer 时,来自kubectl 的状态对于 EXTERNAL-IP 将显示为 &lt;pending&gt;,但它确实有效。

    这个人指出它是通过 vpnkit 暴露的,尽管我认为另一个来源会有所帮助:

    https://github.com/jnewland/local-dev-with-docker-for-mac-kubernetes

    编辑:已更新,因为 Kubernetes 现在可以在 DfM 的稳定版本中使用。

    【讨论】:

    • 听起来不错,您使用的是那个版本的 Docker for Mac?
    • 已编辑以澄清用于 DFM 的 k8s 目前需要边缘版本。
    【解决方案2】:

    除非“Docker for Mac”发生了非常神奇的事情,否则type: LoadBalancer 仅设计用于云环境,其中 Ingress 控制器可以provision a cloud load balancer(即 AWS 的 ELB、GKE 的......无论他们使用什么) .

    也就是说,从您的输出中可以看出,kubernetes 的行为就像是type: NodePort(您的具体示例显示端口32670 转到您服务上的端口8080)。目前尚不清楚您是否可以按原样使用该 NodePort-ish 端口,或者处于“待处理”状态的服务是否意味着流量不会按预期路由。我想也许只是尝试一下?

    或者您可以跳过伪装并合法地创建 type: NodePort 的服务,然后您和 kubernetes 将在同一页面上了解正在发生的事情。

    您可以选择的另一种方式是运行集群内的 Ingress 控制器,例如 ingress-nginx,并使用虚拟主机在一个端口上公开您的所有服务。如果您有很多服务要公开,那会方便得多,但如果只为其中一两个服务设置可能会让人头疼。

    【讨论】:

    • 如下所述,Docker for Mac Kubernetes确实支持 LoadBalancer,所以这个答案不应该被接受。
    • 嘿@Matthew L Daniel,我在 docker for mac 上使用 kubernetes,我创建了一个服务并安装了 nginx 控制器,但现在我无法像我需要添加的 IP 那样访问 nginx 控制器在我的主机文件中,以便请求将到达 nginx,它将重定向到相应的服务,你能帮我吗
    • 请不要通过破坏您的帖子为他人增加工作量。通过在 Stack Exchange 网络上发帖,您已在 CC BY-SA license (2.5/3.0/4.0) 下授予 Stack Exchange 分发该内容的不可撤销的权利(即无论您未来的选择如何)。根据 Stack Exchange 政策,帖子的非破坏版本是分发的版本。因此,任何破坏行为都将被撤销。如果您想了解更多关于删除帖子的信息,请参阅:How does deleting work?
    猜你喜欢
    • 2015-03-30
    • 1970-01-01
    • 2016-12-17
    • 2018-06-27
    • 1970-01-01
    • 2018-08-23
    • 1970-01-01
    • 2019-02-08
    • 1970-01-01
    相关资源
    最近更新 更多