我已经使用祈祷设置了一个kubernetes集群,现在我正在尝试跟踪本指南
root@node1 ~ # kubectl get -n heptio-contour service contour -o wide
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE SELECTOR
contour LoadBalancer 10.233.55.94 <pending> 80:32414/TCP,443:30149/TCP 42m app=contour看来EXTERNAL-IP正在等待,因为我在一台裸金属机器上(不是AWS/GKE等)。
我需要做什么才能在那里显示一个外部ip?
发布于 2018-05-23 15:24:06
库伯内斯提供了三种公开服务的方法:
1) L4 LoadBalancer:仅在云提供商(如GCE和AWS )上可用
2)通过NodePort公开服务:The NodePort指令在每个工作节点上分配一个端口,该端口将流量代理到相应的Pod。
3) L7信息:进攻性是一个专用的负载均衡器(例如。将传入的HTTP/HTTPS流量重定向到相应的端点的nginx、HAProxy、traefik、vulcand)。
Kubernetes不为裸金属集群提供网络负载均衡器(LoadBalancer类型的服务)的实现。
如果您没有在受支持的IaaS平台(GCP、AWS、Azure…)上运行Kubernetes集群,LoadBalancers将保持“待决”状态,而不管它们创建的时间如何。
其原因是外部世界和Kubernetes之间的IP路由缺乏支持;没有默认的实现来传输dns区域,用于将通信分配给集群内部。
甚至在联邦集群模式下,也有一些外部项目提供裸金属,作为独立或混合解决方案的一部分。
这取决于您所拥有的项目的规模和成熟度,因此应该从选择合适的负载均衡器或贵宾室提供者开始:
https://github.com/google/metallb
https://github.com/kubernetes/contrib/tree/master/keepalived-vip
http://vulcand.github.io/
并表示反对:
http://www.linuxvirtualserver.org/software/ipvs.html
请注意,在联合集群(多个裸金属Kubernetes集群)中,需要将每台物理机器的IP地址导出到中央API提供程序,并且可能没有包含在我提供给您的链接中。
https://stackoverflow.com/questions/50477005
复制相似问题