使用:

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

最佳答案

除非“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),并使用虚拟主机在一个端口上公开所有服务。如果您要公开很多服务,那可能会更加方便,但是仅为其中一个或两个设置服务可能会让人头疼。

10-08 17:54