Ingress
在講Envoy之前,先介紹一下Kubernetes中Service的表現形式為IP:Port,及工作在Ingress:TCP/IP層。而對於基於HTTP的服務來說,不同的URL地址經常對應到不同的
后端服務或者虛擬服務器,這些應用層的轉發機制僅通過Kubernetes的Service機制是無法實現的。Kubernetes v1.1中新增的Ingress將不同的URL訪問請求轉發到后端
不同的Service,實現HTTP層的業務路由機制。在Kubernetes集群中,Ingress的實現需要通過Ingress的定義與Ingress Controller的定義結合起來,才能實現完整的
HTTP負載分發功能。
Envoy(摘自http://mp.weixin.qq.com/s/D5epVotNIEVlRT74aPmIMA)
Craig McLuckie曾任Kubernetes的產品經理,去年從Google離職后,作為聯合創始人創立容器公司Heptio。日前Craig McLuckie代表Heptio公司發表Blog:“Making it
easy to use Envoy as a Kubernetes load balancer”,眾所周知,Lyft公司開源的Envoy是目前大熱的Service Mesh項目Istio的內置組件,Heptio將Envoy作為Kubernetes的
Ingress Controller實現,為大家提供了一條新的Kubernetes外部負載均衡實現思路。
Heptio Contour是一個Apache 2.0許可的開源項目,提供Envoy作為Kubernetes項目的Ingress Controller,實現簡單且簡約的集成。 Heptio Contour可以為用戶提供以下好處:
Heptio Contour – An ENVOY powered ingress controller(以下內容翻譯自https://github.com/heptio/contour/blob/master/design/roadmap.md)
Contour Roadmap
Support for the v2 GRPC API
Contour 現在通過輪詢Envoy的機制獲取v1 REST API的值。把輪詢的時間設置的過長(30s或者更多),意味着