xml
<dependency>
<groupId>io.kubernetes</groupId>
<artifactId>client-java</artifactId>
<version>17.0.0</version>
</dependency>
- 通过 token 连接集群
java
public class K8sClient {
public static void run () {
String token = "eyJhb...gyQ1cJ29w";
String url = "https://1...6:6443";
ApiClient apiClient = Config.fromToken(url, token, false);
Configuration.setDefaultApiClient(apiClient);
}
}
token
获取方式为 secret 中的 token 经过 base64 加密,通常 kube-system
命名空间的 secret 中包含 token 内容的都可以
url
就是集群的 IP 地址
- 写个接口调用验证
java
@RestController
public class PodController {
@ResponseBody
@GetMapping("/podList")
public void getPodList () throws ApiException {
K8sClient.run();
CoreV1Api api = new CoreV1Api();
V1PodList list =
api.listNamespacedPod("default",null,null,null,null,null,null,null,null,null,null);
for (V1Pod item : list.getItems()) {
System.out.println(item.getMetadata().getName());
}
}
}
