《Kubernetes网络权威指南》读书笔记 - 从集群外访问服务

书籍来源:《Kubernetes网络权威指南:基础、原理与实践》

一边学习一边整理读书笔记,并与大家分享,侵权即删,谢谢支持!

附上汇总贴:《Kubernetes网络权威指南》读书笔记 | 汇总_COCOgsta的博客-CSDN博客


在Kubernets中,L7的转发功能、集群外访问Service,都是专门交给Ingress的。

Ingress可能是暴露服务的最强大方式,也是最复杂的。Kubernetes Ingress提供了负载平衡器的典型特性:HTTP路由、黏性会话、SSL终止、SSL直通、TCP和UDP负载平衡等。

3.6.1KubernetesIngress

Kubernetes的Ingress资源对象是指授权入站连接到达集群内服务的规则集合。

图3-18 没有Ingress时访问集群内服务

图3-19所示为引入Ingress后访问集群内服务的状态。

图3-19 引入Ingress后访问集群内服务的状态

Ingress的作用就是在边界路由处开个口子,放外部流量进来。因此,Ingress是建立在Service之上的L7访问入口,它支持通过URL的方式将Service暴露到k8s集群外;支持自定义Service的访问策略;提供按域名访问的虚拟主机功能;支持TLS通信。Ingress的作用如图3-20所示。

图3-20 Ingress的作用

在上面这个例子中,Ingress可以基于客户端请求的URL做流量分发,转发给不同的Service后端。

我们来看Ingress资源对象的API定义:

把上面这个Ingress对象创建起来后,通过kubectl get我们可以看到:

其中,ADDRESS即Ingress的访问入口地址,ACKEND是Ingress对接的后端Kubernetes Service IP+Port,ULE是自定义的访问策略,主要基于URL的转发策略,若为空,则访问ADDRESS的所有流量都转发给BACKEND。

下面给出一个Ingress的rules不为空的例子:

这个例子和前一个的最明显区别是,rules定义了path分别为/foo和/bar的分发规则,分别转发给s1:80和s2:80:

Kubernetes只负责提供一个API定义,具体的Ingress Controller需要用户自己实现!官方提供了Nginx和GCE的Ingress Controller示例供开发者参考。

如果想要通过域名访问Ingress,则需要用户自己配置域名和Ingress IP的映射关系,例如host文件、自己的DNS(不是Kube-dns)。

展开阅读全文

页面更新:2024-02-24

标签:集群   负载   路由   流量   例子   定义   对象   策略   作用   权威   域名   指南   网络

1 2 3 4 5

上滑加载更多 ↓
推荐阅读:
友情链接:
更多:

本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828  

© CopyRight 2020-2024 All Rights Reserved. Powered By 71396.com 闽ICP备11008920号-4
闽公网安备35020302034903号

Top