1、添加包含的依赖
<dependency>
<groupId>io.fabric8</groupId>
<artifactId>kubernetes-client</artifactId>
<version>你的版本号</version>
</dependency>
2、初始化客户端
import io.fabric8.kubernetes.client.Config;
import io.fabric8.kubernetes.client.DefaultKubernetesClient;
public class KubernetesClientInitializer {
public static void main(String[] args) {
try {
// 尝试从标准位置加载Kubernetes配置
Config config = Config.loadConfig();
// 使用加载的配置初始化客户端
try (DefaultKubernetesClient client = new DefaultKubernetesClient(config)) {
// 现在你可以使用client来与Kubernetes API交互了
// 例如,列出所有Pods
client.pods().inAnyNamespace().list().getItems().forEach(pod -> {
System.out.println(pod.getMetadata().getName());
});
}
} catch (Exception e) {
e.printStackTrace();
// 处理配置加载或客户端初始化中的错误
}
}
}
3、给节点添加污点
public void doLabelNodeByNodeName(String nodeName) {
try {
// 尝试从标准位置加载Kubernetes配置
Config config = Config.loadConfig();
// 使用加载的配置初始化客户端
try (DefaultKubernetesClient client = new DefaultKubernetesClient(config)) {
Taint taintToAdd = new TaintBuilder()
.withKey(NODE_TAINT_KEY)
.withEffect("NoSchedule") //指定污点效果
.build();
// 读取污点
Node node = kubeClient.nodes().withName(nodeName).get();
// 更新Node的污点列表
List<Taint> taints = CollectionUtils.isEmpty(node.getSpec().getTaints()) ? new ArrayList<>() : node.getSpec().getTaints();
taints.add(taintToAdd);
kubeClient.nodes().withName(nodeName).replace(node);
}
} catch (Exception e) {
e.printStackTrace();
// 处理配置加载或客户端初始化中的错误
}
}