请教熟悉 k8s 大佬, 能修改 ingress 的端口么?

2018-11-10 15:59:38 +08:00
 NUT

导入外部流量我使用nginx-ingress方式,直接按照 https://github.com/kubernetes/ingress-nginx/ 安装来走的。

按照其他大佬的博客,在部署 nginx-ingress-controller Deployment 时候使用 hostNetwork: true 方式,这样就把 nginx-ingress-controller 所在 node 的 80 端口直接就暴露出来,作为外部流量导入点。这样 ingress 就把 node 机器的 80 端口占用,因为 80 还有其他服务,整个服务没法全上容器。 所以想改变 ingress 的端口。

我尝试改变 ** nginx-ingress-controller Deployment** 容器的 ** containerPort** 没有效果。所以想请教大佬,有没有办法?

我的环境

9137 次点击
所在节点    程序员
15 条回复
artandlol
2018-11-10 17:00:00 +08:00
其他服务 80 端口改用 ingress。要改也是改别的服务而不 ingress
kidlj
2018-11-10 17:18:30 +08:00
Nginx-ingress 的 80 和 443 不能改。
NUT
2018-11-10 17:37:14 +08:00
@artandlol #1
整个服务没法全部容器化,而且资源有限,如果真改不了,那就只能通过 node selector 来处理 80 端口了。 本来设想 k8s 前面有一个 ng 来做 waf。
SliceOnion
2018-11-10 17:51:32 +08:00
可以指定 service 的 type 为 NodePort,通过指定参数 nodePort 为一个其他端口开放每个 Node 上的这个端口,再配置一个负载均衡,加入你要用的三个 node_ip:port 就应该可以了
NUT
2018-11-10 17:56:50 +08:00
@SliceOnion #4 大佬,我觉得您这个方案有点绕了。
SliceOnion
2018-11-10 20:05:05 +08:00
为什么会觉得绕呢,service 本来就要配置的,负载均衡也是理所应当
flowfire
2018-11-10 20:54:59 +08:00
点进来之前我还以为是谷歌的那个游戏。。。。
mengyang624
2018-11-10 21:12:07 +08:00
看到 7 楼之前我还以为是谷歌的那个游戏。。。。
hotsymbol
2018-11-10 22:18:09 +08:00
点进来之前我还以为是谷歌的那个游戏。。。。
owenliang
2018-11-11 11:04:14 +08:00
可以弄俩台 k8s 机器打上 label,给 ingress 的 yaml 配上 label selector。
abmin521
2018-11-11 14:03:49 +08:00
4 10 楼说的都可以 推荐 10
NUT
2018-11-12 07:49:40 +08:00
@abmin521 #11 我也是这么想的:-)
anubu
2018-11-13 17:44:33 +08:00
@NUT 没太明白 10 楼的描述,是另找节点部署 controller 来避免 80 端口冲突,最终还是没有改变 controller 默认端口但完成了当前场景需求的意思吗?
NUT
2018-11-13 18:29:36 +08:00
加入我们有 3 个 node ,其中有 2 个 node 是可以使用 80 端口的 ,这时候我们发布 ingress-nginx Deployment 的时候, 可以添加 node 的 nodeSelector ,这样 deployment 就会被运行在指定的 label 的 node 上。

下面是命令

# 添加 node 的 label
kubectl label nodes <node-name> <label-key>=<label-value>
# 删除 只需在命令行最后指定 Label 的 key 名并与一个减号相连即可:
kubectl label nodes <node-name> <label-key>-
# 如果添加 label
修改一个 Label 的值,需要加上--overwrite 参数:
kubectl label nodes <node-name> <label-key>=<label-value> --overwrite
anubu
2018-11-14 10:48:29 +08:00
@NUT 感谢。原来理解的差不多,没有改变 ingress 的默认端口,找到了其他方法使默认端口不会冲突。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/506455

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX