如何通过Kubernetes Java Client获取Ingress关联的Host列表
获取Ingress关联的Host列表(Kubernetes Java Client)
你可以通过V1Ingress对象的spec.rules属性提取关联的Host列表,每个V1IngressRule对象包含对应的host字段。以下是修改后的代码示例:
ApiClient client = Config.defaultClient(); Configuration.setDefaultApiClient(client); NetworkingV1Api netapi = new NetworkingV1Api(); V1IngressList list1 = netapi.listIngressForAllNamespaces(null, null, null, null, null, null, null, null, null, null, null); for (V1Ingress item : list1.getItems()) { System.out.println("Ingress 名称: " + item.getMetadata().getName()); // 获取Ingress的规则列表 List<V1IngressRule> rules = item.getSpec().getRules(); if (rules != null && !rules.isEmpty()) { System.out.println("关联的Host列表:"); for (V1IngressRule rule : rules) { String host = rule.getHost(); // 处理可能为空的host(比如默认Ingress规则) if (host != null) { System.out.println("- " + host); } else { System.out.println("- 无指定Host(默认规则)"); } } } else { System.out.println("该Ingress未配置任何规则"); } System.out.println("---"); }
关键说明:
item.getSpec().getRules():获取Ingress的规则集合,每个规则对应一组路由配置rule.getHost():提取单个规则绑定的Host地址,部分Ingress规则可能不指定host(作为默认路由),需要做非空判断避免空指针异常
内容的提问来源于stack exchange,提问作者user2315104
相关产品推荐
相关产品推荐

