You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Quarkus Kubernetes扩展中覆盖Service与Ingress规则

Quarkus Kubernetes配置问题解决方案

问题1:Ingress默认path: /无法覆盖

你在application.properties中配置了自定义Ingress路径,但生成的Ingress资源同时保留了默认的path: /和自定义路径。

原配置片段:

# Ingress
quarkus.kubernetes.expose=true
quarkus.kubernetes.ingress.expose=true
quarkus.kubernetes.ingress.host=k8s.cch.dev
quarkus.kubernetes.ingress.annotations."nginx.ingress.kubernetes.io/rewrite-target"=/$2
quarkus.kubernetes.ingress.rules.0.host=k8s.cch.dev
quarkus.kubernetes.ingress.rules.0.path=/api/v1(/|$)(.*)
quarkus.kubernetes.ingress.rules.0.path-type=Prefix
# 其他配置...

生成的Ingress多余路径:

spec:
  rules:
    - host: k8s.cch.dev
      http:
        paths:
          - backend:
              service:
                name: kubernetes-with-quarkus
                port:
                  name: http
            path: /  # 需移除的默认路径
            pathType: Prefix
          - backend:
              service:
                name: kubernetes-with-quarkus
                port:
                  name: http
            path: /api/v1(/|$)(.*)
            pathType: Prefix

解决方案:
添加配置禁用默认路径的自动生成:

quarkus.kubernetes.ingress.generate-default-path=false

修改后生成的Ingress将只保留你自定义的路径,不再生成默认的path: /。


问题2:修改Service的spec.ports.port为8080

当前生成的Service中port为80,需改为8080。注意区分两个端口配置:container-port对应Pod的容器端口(即Service的targetPort),port对应Service自身的端口。

原Service片段:

spec:
  ports:
    - name: http
      port: 80  # 需要改为8080
      protocol: TCP
      targetPort: 8080

解决方案:
在application.properties中添加或修改以下配置:

quarkus.kubernetes.ports.http.port=8080

修改后生成的Service中spec.ports.port会变为8080,targetPort保持为8080(由container-port配置)。


内容的提问来源于stack exchange,提问作者CHI-HONG CHEN

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.08 16:40:38