kubernetes - 在 Docker for Mac 上启动 Ingress 服务

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

使用:

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
现在我们有 Docker for Mac(Edge) 支持 Kubernetes,如何添加 EXTERNAL-IP ?

最佳答案

除非“Docker for Mac”发生了一些非常神奇的事情,否则 type: LoadBalancer仅适用于云环境,其中 Ingress Controller 可以 provision a cloud load balancer (即 AWS 的 ELB、GKE ......无论他们使用什么)。
也就是说,从您的输出中可以看出 kubernetes 的行为就像 type: NodePort (您的具体示例显示端口 32670 转到您服务上的端口 8080)。目前尚不清楚您是否可以按原样使用 NodePort-ish 端口,或者处于“待处理”状态的服务是否以某种方式意味着流量不会按预期路由。我想也许只是尝试一下?
或者您可以跳过伪装并合法地创建 type: NodePort 的服务。 ,然后您和 kubernetes 将在同一页面上了解正在发生的事情。
您可以选择的另一种方式是运行集群内 Ingress Controller ,例如 ingress-nginx ,并使用虚拟主机仅在一个端口上公开您的所有服务。如果您有很多服务要公开,那会方便得多,但只为其中一两个设置可能会让人头疼。

关于kubernetes - 在 Docker for Mac 上启动 Ingress 服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48244233/

相关文章:

kubernetes - 没有kubernetes Master的Kubernetes集群

kubernetes - Hyperledger Fabric Orderer CA管理员用户注册失败

kubernetes - kubectl无法识别 “dashboard/deployment.yml”

bash - kubectl:获取剪切的 pod 名称

kubernetes - 列出与 helm 部署或图表相关的所有 kubernetes 资源

python - 如何让多个 Pod 在 Kubernetes 上相互通信

kubernetes - 如何将根 CA 添加到 minikube?

spring-boot - 使用自定义上下文 url 作为环境变量在 minikube 中启动 spring boot

kubernetes - 使用相同图表版本但不同 Docker 镜像标签的 Helm 升级

azure - 如何在 velero 部署上运行 helm 升级?