K8s-Ingress高可用IP透传方案

简介:

  k8s暴露服务的方式有以下几种:

  1. Proxy + clusterIP
  2. NodePort
  3. LoadBalancer
  4. Ingress

 

  1. Proxy + ClusterIP

自定义代理 + 集群内存IP

 

有一些场景下,你得使用 Kubernetes 的 proxy 模式来访问你的服务:

•     由于某些原因,你需要调试你的服务,或者需要直接通过笔记本电脑去访问它们。

•     容许内部通信,展示内部仪表盘等。

这种方式要求我们运行 kubectl 作为一个未认证的用户,因此我们不能用这种方式把服务暴露到 internet 或者在生产环境使用。

 

  1.  NodePort (当前采用方式):

NodePort 服务是引导外部流量到你的服务的最原始方式。NodePort,正如这个名字所示,在所有节点(虚拟机)上开放一个特定端口,任何发送到该端口的流量都被转发到对应服务。

这种方式的优点是: 简单快速;

缺点是:

1 通过这种方式暴露服务,相当于在给 k8s 环境打孔,需要所有工作节点都开放对外访问的端口,随着应用的增加,集群的端口会被大量消耗且很难管理,更麻烦的问题是无法制作边缘服务器,所有的服务器都是边缘节点。

2 由于通过 nodePort 方式暴露服务,请求是通过集群内部第二跳做到请求转发的:

第二跳会通过 SNAT的方式替换请求头,导致集群内部应用无法获取用户真实 IP,开发网关无法根据IP进行流量控制。

 

3  LoadBalancer方式

LoadBalancer 服务是暴露服务到 internet 的标准方式。在 GKE 上,这种方式会启动一个 Network Load Balancer[2],它将给你一个单独的 IP 地址,转发所有流量到你的服务。

这个方式的最大缺点是每一个用 LoadBalancer 暴露的服务都会有它自己的 IP 地址,每个用到的 LoadBalancer 都需要付费,这将是非常昂贵的。

 

4  Ingress

 

Ingress 可能是暴露服务的最强大方式&

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值