Ingress企业实战:部署高可靠性Ingress篇

2023-09-10 12:43:58 浏览数 (3)

什么是Ingress

当你在Kubernetes集群中运行多个应用程序时,每个应用程序都有自己的服务。为了让外部用户访问这些应用程序,就好像他们访问网站一样,我们需要一种方法来管理流量的分配和路由。这就是Ingress的作用。

想象一下,您的Kubernetes集群就像一个大型的公寓楼,每个公寓是一个应用程序。而Ingress就是大楼的大门,允许外部人员进入。大门上有一个保安,他会检查来访者的目的地,并根据他们的要求告诉他们去哪里。

Ingress就是这个保安,他知道应该将来自某个网址的请求引导到特定的应用程序。这可以通过不同的规则来实现,就像保安知道哪个公寓对应哪个房间号一样。这样,当人们访问不同的网址时,保安就会将他们引导到正确的应用程序。

要使保安工作,您需要在大门口放置一个标志,告诉保安如何引导来访者。在Kubernetes中,这个标志就是Ingress对象。而控制这个保安的是Ingress Controller,它就像是保安的老板,负责确保保安按照标志上的规则来引导人们。

总而言之,Ingress就是一种管理外部流量的方式,它允许您告诉集群如何将请求引导到正确的应用程序,就像大门保安将人们引导到正确的公寓一样。这使得外部用户能够方便地访问您在Kubernetes中运行的不同应用程序。

高可靠Ingress架构

高可靠架构首先解决的就是单点故障,通常在Kubernetes中采用多副本部署方式,同时由于Ingress作为集群流量接入口,建议采用一个Ingress服务独占一个Ingress节点的方式,以避免业务应用与Ingress服务发生资源抢占。架构图如下:

未命名文件.png未命名文件.png

部署高可靠Ingress

环境介绍

代码语言:shell复制
$ kubectl get nodes
NAME                     STATUS   ROLES           AGE     VERSION
cluster-control-plane    Ready    control-plane   4m5s    v1.27.3
cluster-control-plane2   Ready    control-plane   3m47s   v1.27.3
cluster-control-plane3   Ready    control-plane   2m59s   v1.27.3
cluster-worker           Ready    <none>          2m50s   v1.27.3
cluster-worker2          Ready    <none>          2m52s   v1.27.3
cluster-worker3          Ready    <none>          2m54s   v1.27.3
cluster-worker4          Ready    <none>          2m52s   v1.27.3
cluster-worker5          Ready    <none>          2m54s   v1.27.3

注:当前环境为kubernetes v1.27.3

版本选择

选择Ingress-nginx最新版本1.8.1,支持的kubernetes 1.27,1.26, 1.25, 1.24版本

Ingress-NGINX version

k8s supported version

Alpine Version

Nginx Version

Helm Chart Version

0 人点赞