如何通过Java程序获取RedHat ROSA集群列表?
获取ROSA集群列表的Java实现方案
方案一:使用AWS SDK for Java调用AWS ROSA专属API
ROSA作为AWS托管的Red Hat OpenShift服务,在AWS侧提供了对应的SDK客户端,调用逻辑和你使用EKS SDK的方式完全一致:
- 添加Maven依赖(使用最新稳定版本):
<dependency> <groupId>software.amazon.awssdk</groupId> <artifactId>redhatopenshift</artifactId> <version>2.20.0</version> </dependency>
- 初始化客户端并获取集群列表:
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客户端:
- 添加Maven依赖:
<dependency> <groupId>io.fabric8</groupId> <artifactId>openshift-client</artifactId> <version>6.7.2</version> </dependency>
- 通过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
相关产品推荐
相关产品推荐

