服务访问
1 概述
当应用在容器服务部署后,需要在容器集群内部或者外部被访问时,需要用到服务访问功能。
服务访问通过负载均衡、TCP端口访问,域名访问等方式,将部署在容器集群上的服务暴露给集群内或集群外访问。
2 内部访问
内部访问是对K8S中的Service资源对象的抽象,提供了k8s集群内部访问的域名解析和负载均衡。由于实例IP随着飘移可能会变化,而服务访问名称是固定的,且名称可表意,使配置更具备可阅读性、可维护性,所以集群内部的容器间交互,应该通过服务访问名称,而不是实例IP或内部访问IP。
2.1 名词解释
内部访问名称:内部访问的名称,在集群内会被自动解析内部访问地址,并将请求转发到成已关联的ready状态的实例的IP端口。
内部访问地址:为内部访问分配的IP地址。
访问端口:内部访问提供服务的端口,用于映射容器端口,在集群部署,通过[内部访问名称:访问端口]的地址形式访问,一般来说访问端口与容器端口一致。
容器端口:容器内应用程序监听的端口。
2.2 添加内部访问
在添加服务时,需要在服务内部访问步骤中,需要添加端口映射,创建服务后,同时会创建一个与服务同名的内部访问,这样我们就可以在集群内部用服务名称进行访问(实际上是通过内部服务访问名称访问)。所以,一般情况下,我们不需要直接在【服务访问】→【内部访问】页面直接添加内部访问。
如果需要添加,我们可以点击“添加内部访问”功能按钮进行添加。需要填写访问名称,选择转发的应用和服务,以及容器的端口。
3 外部访问
外部访问为集群外部对象请求集群内部服务提供了流量入口。容器服务的外部访问分为提供四层代理服务的端口访问(NodePort/Ingress)和提供七层代理服务的域名访问(Ingress)。
3.1 名词解释
NodePort:一种k8s对外暴露端口的方式,将主机的固定端口的流量转发给内部服务。
Ingress:一种k8s的对象,描述四层/七层代理到内部访问的转发配置。
四层代理:四层网络(传输层)的代理,一般用于转发TCP/UDP协议。
七层代理:七层网络(应用层)的代理,一般用于转发http/https协议,支持解析http/https协议并据此提供路径转发指定服务功能。
3.2 端口访问
端口访问可以通过node节点IP和访问端口进行访问。
类型:默认使用NodePort方式。
内部访问:必须事先存在一个内部访问,绑定内部访问后,外部请求将被转发到此内部访问。
端口配置:绑定内部访问的端口固定,外部访问的端口可选择自动分配或手动指定端口,指定端口的范围在30000-32767。
4 域名访问
域名访问可以为在容器服务上部署的服务指定域名进行访问。
协议:可选http/https,当选择https时,需要选择证书。
证书:tls证书,在“配置-证书”中配置的证书记录,在外部访问列表页面也有按钮“域名证书管理”可以跳转到证书页。
类型:自定义域名,在域名输入框里,输入要访问的域名;服务子域名,需要在集群里设置public_domain泛域名,可参考集群维护-网络设置章节。
域名:ingress可以根据请求的域名进行转发,也可以填写*代表转发全部域名的请求。只有对拥有所有权的k8s集群才能配置*。在https协议中,这个域名应该和证书绑定的域名吻合。
这里设置的域名,都需要在DNS中进行解析,可以将域名解析到node节点IP或者设置的负载均衡IP(转发到后端node节点IP)。
转发配置:转发给内部访问的配置。
Path路径:依据请求URL不同的路径,可以转发给不同的内部服务。
服务访问
本文2024-09-23 01:11:02发表“云苍穹知识”栏目。
本文链接:https://wenku.my7c.com/article/kingdee-cangqiong-144307.html