searchusermenu
  • 发布文章
  • 消息中心
点赞
收藏
评论
分享
原创

io.fabric8.kubernetes.client客户端实现给节点打污点

2024-09-26 09:25:35
36
0

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();  
            // 处理配置加载或客户端初始化中的错误  
        }  
    }
0条评论
0 / 1000
吴****红
7文章数
0粉丝数
吴****红
7 文章 | 0 粉丝
原创

io.fabric8.kubernetes.client客户端实现给节点打污点

2024-09-26 09:25:35
36
0

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();  
            // 处理配置加载或客户端初始化中的错误  
        }  
    }
文章来自个人专栏
wyh的学习笔记
6 文章 | 1 订阅
0条评论
0 / 1000
请输入你的评论
0
0