网络管理概述
# Service基本概念
Kubernetes中每一个工作负载会有一个或多个实例(Pod),每个实例(Pod)的IP地址由网络插件动态随机分配(Pod重启后IP地址会改变)。为屏蔽这些后端实例的动态变化和对多实例的负载均衡,引入了Service这个资源对象。
Service网络支持以下多种模式分别对接不同来源和类型的客户端的访问:
ClusterIP: ClusterIP类型的Service用于集群内部的应用间访问,如果您的应用需要暴露到集群内部提供服务,需使用ClusterIP类型的Service暴露。
NodePort:NodePort类型的Service将集群中部署的应用向外暴露,通过集群节点上的一个固定端口暴露出去,这样在集群外部就可以通过节点IP和这个固定端口来访问。
LoadBalancer:LoadBalancer类型Service通过负载云服务商的负载均衡能力对外暴露服务,相对于NodePort方式,有更高的可用性和性能。
Headless Service:Headless Service类型的Service是在Service属性中指定clusterIP字段为None类型。采用Headless Service类型后,Service将没有固定的虚拟IP地址,客户端访问Service的域名时会通过DNS返回所有的后端Pod实例的IP地址,用于提供外部服务发现和负载均衡方案的兼容措施。
ExternalName:ExternalName类型的Service将集群外部的域名映射到集群内部的Service上,例如将外部的数据库域名映射到集群内部的Service名,那么就能在集群内部通过Service名直接访问。
# Ingress基本概念
与Service的4层负载均衡不同,Ingress是集群内Service对外暴露7层的访问接入点。您可以通过Ingress资源来配置不同的7层的转发规则,例如通过域名或者访问路径来路由到不同的Service上,从而达到7层的负载均衡作用。
# NetworkPolicy基本概念
NetworkPolicy提供Pod与Pod间的通信规则的配置,通过出入站规则的设置,允许在同个集群内实现网络的隔离,也就是可以在某些Pod之间架起防火墙。
注意:
使用NetworkPolicy进行隔离后,不合规的流量将会被丢弃(Drop)而非拒绝(Rejected),对外表现为连接超时断开。
上一篇: 存储类别 Service