Kubernetes向进群外暴露服务的部暴方式有三种:Ingress、LoadBlancer类型的露服Service、NodePort类型的知道Service。
Ingress相当于service的向集service,可以将外部请求通过按照不同规则转发到对应的群外service。实际上,部暴ingress相当于一个7层的露服负载均衡器,是知道k8s对反向代理的一个抽象,大概的工作原理类似于Nginx。
Ingress工作原理(以Nginx Ingress为例):
Ingress-controller通过和Kubernetes APIServer交互,动态感知集群中Ingress规则的变化,感知到规则的变化后生成对应的Nginx配置,将配置写到nginx-ingress-controller的pod里(ingress-controller的pod里运行着一个Nginx服务,ingress-controller会把生成的 nginx配置写入/etc/nginx.conf文件中),然后执行reload使配置生效。
创建service时,指定type类型为LoadBalancer,需要有外部负载均衡器的支持,绝大部分云厂商都支持创建外部负载均衡。
创建service时,指定type类型为NodePort,这样,服务就会暴露在集群节点ip的指定端口上。
NodePort方式有如下缺点:
LoadBlancer方式有如下缺点:
Ingress相比上面两种方式,只需要一个NodePort或者一个LoadBlancer就可以满足所有service对集群外暴露服务的需求,简单灵活。
责任编辑:姜华 来源: 今日头条 IngressKubernetes(责任编辑:焦点)
中国医疗集团(08225.HK)发布公告:预计年度税后纯利大幅增加不少于100%
新疆兵团召开2017年发展改革工作会议 安排部署2017年发展改革工作
四川合江县2016年财政现代农业生产发展资金项目约完成总工程量的80%
北京汽车(01958.HK)年度净利跌59.4% 每股收益为人民币0.24元
广西壮族自治区发改委在南宁市进行广西儿童医院筹建工作现场调研