K8S解决外网链接问题

目前阿里云已经禁止了K8S ingress对于负载均衡器的请求. 如按照网上某攻略依据AccessID+AccessKey的方式请求创建负载均衡服务将被返回"禁止外部请求"的字样.
目前k8s解决外部访问服务地址的方法主要分为两大方式:

  1. 请求云供应商的负载均衡借口
  2. 使用Nodeport分派外部到node上的具体端口上.

对于手工创建的k8s体系建议以以下方式创建外部ip用于内部的容器访问:
1.创建一个项目的svc, 由系统分派一个NodePort,
2.创建一个阿里云的负载均衡, 将该负载均衡指向到多台Node上的被指派的NodePort.
3.创建RC, 由RC在随机选择的Node上开创容器并实现外部到内部的通讯.

这里需要注意的是: 由于无法确定具体在哪一个Node上创建容器, 所以应该将所有Node的该项目Node端口都添加到负载均衡服务里.

同时, 由SVC创建的群集ip仅供K8s和Node内部通讯使用, 无法用作局域网连接或者请求.此群集ip不对ping telnet等任何应用做出响应, 所以也是无法作为错误判断的依据的.

如果不创建负载均衡服务, 则只能做到域名到其中一个Node上的Nodeport的指派,这样存在安全风险,并且基于域名的轮询也不好被管控与管理.

猜你喜欢

转载自blog.51cto.com/13801798/2128072
k8s