第二十七章 九析带你轻松完爆 Istio - k8s 流量进入集群之 Ingress

网友投稿 277 2022-10-29

第二十七章 九析带你轻松完爆 Istio - k8s 流量进入集群之 Ingress

系列文章:总目录索引:九析带你轻松完爆 istio 服务网格系列教程

目录

1 前言

2 邀约

3 Ingress 介绍

4 ingress 实例

4.1 ingress 资源文件

4.2 service 资源文件

4.3 pod 资源文件

5 访问 ingress

5.1 获取 ingress HOST

5.2 域名解析绑定

5.3 访问 ingress

6 结论

1 前言

2 邀约

3 Ingress 介绍

Ingress 中文含义就是“入口”,非常形象地定义了这种资源的本质:Ingress 就是 k8s 的门户。

就像一幢建筑物,比如酒店、商场等,不止一个入口,k8s 也可以定义多个入口放流量进来。

k8s 集群必须部署一个 Ingress 控制器(比如 nginx、traefik 等),Ingress 控制器的作用就是创建 Ingress 资源,好让其生效。Ingress 控制器跟 Ingress 的关系就像 nginx 跟 nginx.conf( nginx 配置文件) 一样。

Ingress 控制器容器内一般有两个关键的进程,分别是一个负载均衡器(比如 nginx、haproxy 等)和一个控制器守护进程。控制器守护进程会从 k8s 接收所需的 Ingress 创建需求,并将其生成一个 nginx 或 haproxy 的配置片段,并重新加载负载均衡器来使其生效。

就拿 nginx-ingress-controller 举例,nginx 是 nginx-ingress-controller 内部进程,也是其负载均衡器,而 nginx-ingress-controller 是 k8s 的负载均衡器。

4 ingress 实例

如果要展示 ingress 实例,需要三个资源文件:

1 ingress 流量入口资源文件2 service 流量从入口进入后的流向资源文件3 pod 流量最终目的地资源文件

4.1 ingress 资源文件

4.2 service 资源文件

4.3 pod 资源文件

5 访问 ingress

5.1 获取 ingress HOST

因为我的 nginx-ingress-controller pod 直接采用的是 hostNetwork: true,也就是使用了宿主机的网络命名空间。因此这里的 Pod IP 就是宿主机的 IP,也就是说访问的时候可以直接使用此 IP。

5.2 域名解析绑定

编辑 /etc/hosts(centos)文件,添加域名解析定义:

10.110.101.100 ingress.jiuxi.org

5.3 访问 ingress

执行如下命令访问 ingress:

curl 结论

使用 nodeport、loadbalancer 跟 ingress 在实现路由方式上有所不同。对于 loadbalancer 和 nodeport,都是将流量导入到节点上的 kube-proxy 进程,后者再将流量转发到后面的 pod。而 Ingress 负载均衡器则将流量直接转发到选定的 Pod,这样效率更高。

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:提交gRPC
下一篇:单片机通信接口的物理结构及通信特性分析
相关文章

 发表评论

暂时没有评论,来抢沙发吧~