Kubernetes的一些功能特性也与公有云提供商密切相关,例如:负载均衡服务、弹性公网IP、存储服务等,具体实现也需要与API Server通信,也属于运行商内部重点保障的安全区域。
此外,公有云提供商提供kubernetes服务时,考虑到安全问题,会要求以API Server为核心的Master节点的网络与承载客户应用的Node节点的网络实现某种程度的“安全隔离”。为此,API Server 增加了SSH 安全通道的相关代码,让公有云提供商可以通过这个SSH安全通道实现API Server相关的服务器接口调用,这个使得API Server变得臃肿,带来升级、部署以及演进的额外负担。之后,Kubernetes设计给出了API Server Network Proxy特性的设计思路。
在Master节点的网络里部署konnectivity Server,同时在Node节点的网络里部署konnectivity Agent,两者之前建立安全连接,对通信协议可以采用HTTP或者gRPC,此时设计允许Node节点网络被划分为多个独立的分配,这些分片都通过konnectivity Server/Agent 建立安全连接与API Server实现点对点的连通。
引入API Server Network Proxy机制以实现Master网络与Node网络的安全隔离的做法,优势:
- Connectivity proxy(Konnectivity Server/Agent) 可以独立扩展,不会影响到API Server发展,集群管理员可以部署适合自己的各种Connectivity proxy的实现,具有更好的自主性和灵活性。
- 通过自定义的Connectivity proxy,也可以实现VPN网络的穿透等高级网络代理特性,同时访问API Server的所有请求都方便的被Connectivity proxy记录被审计分析,这样提高了系统的安全性
- 这种网络代理分离设计将Master 网络和Node网络之前的连通性问题从API Server中剥离出来,提升了API Server代码的内聚性,降低了API Server代码的复杂性。同时Connectivity proxy崩溃也不影响API Sever的正常运行,API Server仍然可以提供主要服务能力,即资源对象的CRUD服务。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)