《Kubernetes网络权威指南》读书笔记 | 找到你并不容易:从集群外访问服务
Posted COCOgsta
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了《Kubernetes网络权威指南》读书笔记 | 找到你并不容易:从集群外访问服务相关的知识,希望对你有一定的参考价值。
书籍来源:《Kubernetes网络权威指南:基础、原理与实践》
一边学习一边整理读书笔记,并与大家分享,侵权即删,谢谢支持!
附上汇总贴:《Kubernetes网络权威指南》读书笔记 | 汇总_COCOgsta的博客-CSDN博客
在Kubernets中,L7的转发功能、集群外访问Service,都是专门交给Ingress的。
Ingress可能是暴露服务的最强大方式,也是最复杂的。Kubernetes Ingress提供了负载平衡器的典型特性:HTTP路由、黏性会话、SSL终止、SSL直通、TCP和UDP负载平衡等。
3.6.1 Kubernetes Ingress
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)。
以上是关于《Kubernetes网络权威指南》读书笔记 | 找到你并不容易:从集群外访问服务的主要内容,如果未能解决你的问题,请参考以下文章
《Kubernetes网络权威指南》读书笔记 | iptables
《Kubernetes网络权威指南》读书笔记 | 打通CNI与Kubernetes:Kubernetes网络驱动
《Kubernetes网络权威指南》读书笔记 | Kubernetes网络策略:为你的应用保驾护航
《Kubernetes网络权威指南》读书笔记 | 最常用的Docker网络技巧