裸金属上的庚烷轮廓外部ip

nha*_*nha 2 kubernetes envoyproxy heptio-contour

我已经使用kubespray设置了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
Run Code Online (Sandbox Code Playgroud)

EXTERNAL-IP由于我在裸机上(而不是AWS / GKE等),因此似乎正在等待

为了在那里显示外部IP,我需要做什么?

d0b*_*bry 5

Kubernetes提供了三种公开服务的方式:

1)L4 LoadBalancer:仅在云提供商(例如GCE和AWS)上可用

2)通过NodePort进行公开服务:NodePort指令在每个工作节点上分配一个端口,该端口将流量代理到相应的Pod。

3)L7入口:入口是专用的负载平衡器(例如nginx,HAProxy,traefik,vulcand),可将传入的HTTP / HTTPS流量重定向到相应的端点

Kubernetes不提供针对裸机集群的网络负载均衡器(类型为LoadBalancer的服务)的实现。

如果您不在受支持的IaaS平台(GCP,AWS,Azure等)上运行Kubernetes集群,则无论其创建时间如何,LoadBalancers都将保持“待处理”状态。

原因是外部世界和Kubernetes之间缺乏对IP路由的支持;没有默认的实现方式来传输Ingress用来分配通信到集群内部的dns区域。

有一些外部项目即使在联合群集模式下也可以提供裸机,成为独立解决方案或混合解决方案的一部分。

它取决于您的项目的规模和成熟度,因此应从选择合适的负载平衡器或VIP提供者开始:

https://github.com/google/metallb

https://docs.traefik.io/

https://github.com/kubernetes/contrib/tree/master/keepalived-vip

http://vulcand.github.io/

并已弃用:

http://www.linuxvirtualserver.org/software/ipvs.html

请注意,在联合身份验证群集(一个以上的裸机Kubernetes群集)中,需要将每台物理计算机的IP地址导出到中央API提供程序,而我提供给您的链接可能没有涵盖该地址。