Chr*_* G. 5 kubernetes docker-for-mac minikube kubernetes-helm
更新:使用:
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
Run Code Online (Sandbox Code Playgroud)
在Docker支持Kubernetes之前,我可以使用MiniKube和Helm:
helm install stable/jenkins
kubectl get services // To get the service name
minikube service original-llama-jenkins // << The service name
Run Code Online (Sandbox Code Playgroud)
现在我们有支持Kubernetes的Docker for Mac(Edge),你如何添加EXTERNAL-IP
?
谢谢
cit*_*ich 16
两种类型的LoadBalancer和NodePort都可以在Docker for Mac Kubernetes上运行.实际上,这是一个可爱的魔法.只需点击localhost:[port].对于NodePort,除非在服务定义中指定,否则将自动分配端口.对于类型LoadBalancer,它也在服务定义中指定.请注意,在使用LoadBalancer时,状态from kubectl
将显示<pending>
为EXTERNAL-IP,但它确实有效.
这个家伙注意到它是通过vpnkit公开的,虽然我认为另一个来源会有所帮助:
https://github.com/jnewland/local-dev-with-docker-for-mac-kubernetes
编辑:更新,因为Kubernetes现在可用于稳定版本的DfM.
mda*_*iel -5
除非“Docker for Mac”发生了一些非常神奇的事情,否则它type: LoadBalancer
只是为云环境而设计的,其中 Ingress 控制器可以配置云负载均衡器(即 AWS 的 ELB、GKE ......无论他们使用什么)。
也就是说,从您的输出中可以看出,kubernetes 的行为就像它一样type: NodePort
(您的具体示例显示该端口32670
转到8080
您的服务上的端口)。目前尚不清楚您是否可以按原样使用 NodePort-ish 端口,或者处于“待处理”状态的服务是否意味着流量不会按预期路由。我想也许只是尝试一下?
或者您可以跳过伪装并合法地创建服务type: NodePort
,然后您和 kubernetes 将就正在发生的事情达成一致。
您可以选择的另一种方法是运行集群内 Ingress 控制器,例如ingress-nginx,并使用虚拟托管在一个端口上公开所有服务。如果您有很多服务要公开,这可能会方便得多,但只为其中一两个服务进行设置可能会很麻烦。
归档时间: |
|
查看次数: |
4850 次 |
最近记录: |