xulang
目前还没有把这部分作为配置项抽离出来,需要调整代码才行。后面会把这部分完善进去。

建议网关可以绑定hostport,而不是nodeport,这样我们就可以直接暴露网关出去了,用80或者 443端口

19 天 后

hongzhouzi

原来的 环境内 ingress 是使用 ack 的默认 ingress ,默认分配了一个 lb ip 地址, 开启了网关后kubesphere 的 ingress 也生成了 一个 lb ip, 这俩 ip 会一直抢占 ingress 的 address

    5 天 后

    poetL
    多个 ingress controller 都用的 master 节点的 IP 地址,是这个意思么?这个是正常的呀

    • ghj 回复了此帖
      25 天 后
      1 个月 后

      使用网关能实现什么,能解决下面的场景吗

      办公网络和节点服务器的网络是通的,与pod虚拟的ip就不通了

      实际开发过程中,我们出现了如下需求:

      1. 办公网络和Kubernetes Pod网络不通,开发在电脑完成某个微服务模块开发后,希望在本地电脑能注册到Kubernetes中开发环境的注册中心(Nacos)进行调试,而不需要在本地起一堆的依赖服务。

      2. 办公网络和Kubernetes Svc网络不通,部分服务需要通过Service的NodePort代理访问,应用数量变多后导致维护量工作巨大。

        2 个月 后
        18 天 后

        想在nginx里加上自定义配置,如支持上传文件大小等如何做啊?不想单独在ingress那里用注解方式做的话

          1 个月 后

          有个疑惑希望博主解答下,项目设置-高级设置这里看到的网关地址和应用路由这里看到的网关地址有什么区别吗?不是很明白,具体看下

            10 天 后

            hongzhouzi 大佬,多个副本都是一样的IP地址,这个是正常的吗,这样不是会影响性能,不应该是分别部署在不同的服务器吗

              w123
              高级设置中的展示的网关地址是获取的 master 节点的 IP,应用路由中的网关地址是 Ingress Controller 设置的地址,这两个地方确实可能会不一样。

              外部访问中的网关地址:理论上集群内任意节点都可以,但一般是 master 节点作为流量入口,所以这儿就设置的 master 节点的 IP,多个 master 节点这儿就会有多个 IP。 KS 代码中的处理:https://github.com/kubesphere/kubesphere/blob/master/pkg/models/gateway/gateway.go#L214

              应用路由中的网关地址:这个由 Ingress Controller 设置,而网关地址设置规则是由 Ingress Controller 的配置决定的,这儿应该是获取的是网关所在的 nodeIP。Ingress Nginx 代码中的处理:https://github.com/kubernetes/ingress-nginx/blob/main/internal/ingress/status/status.go#L145

              另外如果有多个网关同时作用于一份应用路由配置,那么这儿看到的网关地址还会不停变动,相当于多个 Ingress Controller 都在修改这份 Ingress,但通过这些 Ingress Controller 是都可以访问到这个 Ingress 配置的 svc。

                ghj 是哪儿展示的 IP 地址呢?是上面提到这个“外部访问中的网关地址”么,这个没啥影响的。

                7 天 后

                大佬,能不能问一下我部署的前端为什么域名会生成一个随机端口?

                  yc-sh 这端口是网关的端口,开启的网关是 NodePort 这种那这个端口就是随机生成的。这个域名没有变的,还是 Ingress 里设置的那个 host。只是这儿页面上展示的是“域名+网关端口”,也就是你点击访问服务时跳转的URL。

                  21 天 后

                  大佬。请求解答,谢谢。

                  问题:

                  1、在kubesphere里创建了一个企业空间并创建了一项目,在项目下创建了应用,和配置应用路由和项目网关。这些都就绪,测试集群外部客户端访问网关地址,可以正常访问。

                  2、下一步,我启用项目网络隔离功能,官方说法,其默认策略是出站全部放通,入站全部拒绝,除了在同一一个项目下的pod可以相互访问外。

                  3、此时集群外部客户端访问第一步的集群内的应用,网络是不通的了,为什么不通是因为项目网关的pod是运行在kubesphere-controls-system命名空间下,其是属于system-workspace的企业空间,和租户的企业空间不是同一个。

                  4、正常是要放通网关pod 所在命名空间到租户企业命名空间下的入站访问策略,但是在租户的企业空间的项目隔离处,选择时,根本就看不到项目网关的pod是运行在kubesphere-controls-system命名空间,无法进行设置。这就很有问题。https://www.kubesphere.io/zh/docs/v3.3/project-administration/project-network-isolation/

                  这是不是产品的有个bug ?

                  23 天 后

                  linuxtone 同样的疑惑,想问下你解决了吗?我在CRD里面的controller和deployment里面的annotations里面都加上了nginx.ingress.kubernetes.io/proxy-body-size: 8m 也没效果

                    fmwww

                    这个是正确的,在controller的config中添加proxy-body-size可以

                    19 天 后
                    13 天 后