新聞中心
Kubernetes向集群外部暴露服務(wù)的方式,你知道嗎?
作者:路多辛 2023-02-27 07:56:55
云計(jì)算
云原生 Ingress相當(dāng)于service的service,可以將外部請求通過按照不同規(guī)則轉(zhuǎn)發(fā)到對應(yīng)的service。實(shí)際上,ingress相當(dāng)于一個7層的負(fù)載均衡器,是k8s對反向代理的一個抽象,大概的工作原理類似于Nginx。

Kubernetes向進(jìn)群外暴露服務(wù)的方式有三種:Ingress、LoadBlancer類型的Service、NodePort類型的Service。
Ingress
Ingress相當(dāng)于service的service,可以將外部請求通過按照不同規(guī)則轉(zhuǎn)發(fā)到對應(yīng)的service。實(shí)際上,ingress相當(dāng)于一個7層的負(fù)載均衡器,是k8s對反向代理的一個抽象,大概的工作原理類似于Nginx。
Ingress工作原理(以Nginx Ingress為例):
Ingress-controller通過和Kubernetes APIServer交互,動態(tài)感知集群中Ingress規(guī)則的變化,感知到規(guī)則的變化后生成對應(yīng)的Nginx配置,將配置寫到nginx-ingress-controller的pod里(ingress-controller的pod里運(yùn)行著一個Nginx服務(wù),ingress-controller會把生成的 nginx配置寫入/etc/nginx.conf文件中),然后執(zhí)行reload使配置生效。
LoadBlancer類型的Service
創(chuàng)建service時,指定type類型為LoadBalancer,需要有外部負(fù)載均衡器的支持,絕大部分云廠商都支持創(chuàng)建外部負(fù)載均衡。
NodePort類型的Service
創(chuàng)建service時,指定type類型為NodePort,這樣,服務(wù)就會暴露在集群節(jié)點(diǎn)ip的指定端口上。
幾種方式的優(yōu)缺點(diǎn)
NodePort方式有如下缺點(diǎn):
- 當(dāng)服務(wù)比較多的時候,會占用集群節(jié)點(diǎn)的大量端口,難以維護(hù);
- 多了一層NAT,請求量比較大的時候會對性能產(chǎn)生影響。
LoadBlancer方式有如下缺點(diǎn):
- 每個service一個外部負(fù)載均衡器,麻煩又浪費(fèi);
- 需要有外部負(fù)載均衡器支持,有局限性。
Ingress相比上面兩種方式,只需要一個NodePort或者一個LoadBlancer就可以滿足所有service對集群外暴露服務(wù)的需求,簡單靈活。
網(wǎng)站欄目:Kubernetes向集群外部暴露服務(wù)的方式,你知道嗎?
網(wǎng)頁網(wǎng)址:http://www.dlmjj.cn/article/dhsocds.html


咨詢
建站咨詢
