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

如何通过Java程序获取RedHat ROSA集群列表?

获取ROSA集群列表的Java实现方案

方案一:使用AWS SDK for Java调用AWS ROSA专属API

ROSA作为AWS托管的Red Hat OpenShift服务,在AWS侧提供了对应的SDK客户端,调用逻辑和你使用EKS SDK的方式完全一致:

  1. 添加Maven依赖(使用最新稳定版本):
<dependency>
    <groupId>software.amazon.awssdk</groupId>
    <artifactId>redhatopenshift</artifactId>
    <version>2.20.0</version>
</dependency>
  1. 初始化客户端并获取集群列表:
import software.amazon.awssdk.regions.Region;
import software.amazon.awssdk.services.redhatopenshift.RedHatOpenShiftClient;
import software.amazon.awssdk.services.redhatopenshift.model.ListClustersRequest;
import software.amazon.awssdk.services.redhatopenshift.model.ListClustersResponse;

public class RosaClusterFetcher {
    public static void main(String[] args) {
        Region targetRegion = Region.US_EAST_1; // 替换为你的集群所在AWS区域
        RedHatOpenShiftClient rosaClient = RedHatOpenShiftClient.builder()
                .region(targetRegion)
                .build();

        ListClustersRequest request = ListClustersRequest.builder().build();
        ListClustersResponse response = rosaClient.listClusters(request);

        response.clusters().forEach(cluster -> {
            System.out.printf("集群名称: %s | 状态: %s | ARN: %s%n", 
                cluster.name(), cluster.state(), cluster.arn());
        });

        rosaClient.close();
    }
}

权限要求:确保你的IAM账号拥有redhatopenshift:ListClusters等相关操作权限。

方案二:使用OpenShift Java Client调用集群API

如果需要从Red Hat OpenShift原生API层面获取信息,可使用fabric8的OpenShift客户端:

  1. 添加Maven依赖:
<dependency>
    <groupId>io.fabric8</groupId>
    <artifactId>openshift-client</artifactId>
    <version>6.7.2</version>
</dependency>
  1. 通过kubeconfig凭证连接并获取集群信息:
import io.fabric8.openshift.client.OpenShiftClient;
import io.fabric8.openshift.client.OpenShiftClients;

public class OpenShiftClusterChecker {
    public static void main(String[] args) {
        // 默认读取~/.kube/config中的认证信息
        try (OpenShiftClient client = OpenShiftClients.createDefault()) {
            client.clusterVersions().list().getItems().forEach(cv -> {
                System.out.printf("集群版本: %s | 集群ID: %s%n",
                    cv.getStatus().getDesired().getVersion(),
                    cv.getMetadata().getUid());
            });
        }
    }
}

该方式更适合单集群内的细节查询,批量获取所有ROSA集群优先选方案一。

关键注意事项

  • 区域匹配:使用AWS SDK时必须指定集群所在的AWS区域,避免跨区域调用失败
  • 权限配置:无论是AWS还是OpenShift客户端,都需要确保身份凭证拥有对应资源的访问权限

内容的提问来源于stack exchange,提问作者Java Brains1

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 05:00:53