kubernetes基础知识之ingress原理

B站影视 韩国电影 2025-08-31 18:52 2

摘要:kubernetes使用helm安装ingress controller,需要修改values.yaml文件。

kubernetes使用helm安装ingress controller,需要修改values.yaml文件。

1.把hostNetwork从false改成true。

2.把dnsPolicy改成ClusterFirstWithHostNet

3.把kind类型改成DaemonSet

4.关闭镜像的digest。

5.设置ingressClassResource.default=true

通过nginx实现ingress的接口,类型默认为nginx。

6.设置service服务的类型type为NodePort

一般ingress的控制器类型分成:

nginx-controller

ingress-istio-controller

apisix-ingress-controller

traefik

使用ingress.class指定控制器类型,默认值是:

1.nginx

2.istio

3.apisix

4.traefik

helm部署ingress的方法:

helm install ingress-nginx -n ingress . -f values.yaml

查看pod:

kubectl get pod -n ingress

七层负载均衡的访问路径:

最外层是客户端,然后客户端访问一个服务,这个服务是ingress实现的,作用是把30080和30443这种外网端口转发到内部的80和443端口,接着为了解决pod挂掉后IP地址变化的情况,添加一层service。由这个service后端连接两个真实服务器的后端pod来提供web服务。

ingress 控制器,比如nginx controller作为独立组件部署在集群内部,其ClusterIP是服务service的虚拟IP地址,用于集群内部流量转发。当外部流量通过ingress规则转发至nginx controller时,请求首先到达集群内部,再由nginx controller根据规则处理并且转发到后端服务。

服务service跟后端的pod变化是实时的,如果后端pod地址变了,就会把新的地址添加到负载均衡中里。

相对于nginx来说,减少了重载,增加了它的稳定性。

kubernetes创建四层负载均衡服务的命令:

kubectl create service $service_type $namespace --tcp=port:targetPort

七层负载均衡服务通过ingress和ingress controller 实现了配置的自动生成,允许动态修改配置。

ingress是描述七层负载均衡的,nginx去通过api server监听ingress对象的变化,监听到变化后,去修改本地的配置文件并且触发重启,自动去生成配置文件。

用户可以直接通过接口调用api server去执行kubectl create ingress $ingress_name --rule=host/path=service:port[,tls[=secret]] 之后,这个配置文件就可以在nginx controller中自动生成,并且应用了。

这就是ingress实现七层负载均衡的逻辑。

负载均衡控制器类型:

nginx-controller

traefik

云原生:专门为云开发出来的一个应用程序。

使用nginx-controller的ingress总量是最多的。

nginx在尽可能保障它自己尽可能的少次数的重启。nginx它不像是traefik,traefik是一个新的web服务器。

traefik它自动监听配置文件,如果配置文件发生变化之后,它会自动应用。

nginx不行,nginx修改配置之后,必须重载,也就是需要重新加载配置文件,并且重启nginx相关进程,重载就会涉及到一些用户请求的丢失,重载是一个有代价的过程。

为了减少重载这种代价,就是需要使用nginx controller这种方式去自动更新配置。

央视大裤衩

鼓励的话语:深处沟壑,依然可以仰望星空!

来源:游戏小宝

相关推荐