基于Fabric8 Java库的Ingress资源实现示例及Builder查询
使用Fabric8构建Ingress资源的示例
当然有!Fabric8 Kubernetes Client提供了专门的IngressBuilder来轻松构建Ingress资源,完全可以实现你给出的配置。下面是对应你提供的Ingress YAML的Java代码示例:
import io.fabric8.kubernetes.api.model.extensions.Ingress; import io.fabric8.kubernetes.api.model.extensions.IngressBuilder; import io.fabric8.kubernetes.api.model.extensions.IngressBackendBuilder; import io.fabric8.kubernetes.api.model.extensions.IngressPathBuilder; import io.fabric8.kubernetes.api.model.extensions.HttpIngressRuleValueBuilder; public class IngressExample { public static void main(String[] args) { Ingress testIngress = new IngressBuilder() // 对应YAML里的apiVersion和kind .withApiVersion("extensions/v1beta1") .withKind("Ingress") // 配置metadata .withMetadata() .withName("test-ingress") // 添加rewrite-target注解 .addToAnnotations("nginx.ingress.kubernetes.io/rewrite-target", "/") .endMetadata() // 配置spec规则 .withSpec() .addNewRule() .withHttp(new HttpIngressRuleValueBuilder() .addNewPath() .withPath("/testpath") .withBackend(new IngressBackendBuilder() .withServiceName("test") .withServicePort(80) .build()) .endPath() .build()) .endRule() .endSpec() .build(); // 这里可以将构建好的Ingress对象提交到Kubernetes集群 // client.extensions().ingresses().inNamespace("your-namespace").createOrReplace(testIngress); } }
额外提示
- 如果你使用的是较新版本的Fabric8 Kubernetes Client,建议切换到
networking.k8s.io/v1版本的Ingress API(extensions/v1beta1已被官方弃用),对应的Builder类会在io.fabric8.kubernetes.api.model.networking.v1包下,用法逻辑和上面示例一致,只需调整API版本和类导入路径。 - 确保项目中已正确引入Fabric8 Kubernetes Client依赖,比如Maven项目需要添加
fabric8-kubernetes-client的依赖坐标。
内容的提问来源于stack exchange,提问作者user_mda
相关产品推荐
相关产品推荐

