[英]How to override default kubernetes config file using java io.fabric8 kubernetes-client library
import java.io.File;
import org.springframework.util.ResourceUtils;
import io.fabric8.kubernetes.api.model.metrics.v1beta1.NodeMetrics;
import io.fabric8.kubernetes.api.model.metrics.v1beta1.NodeMetricsList;
import io.fabric8.kubernetes.client.Config;
import io.fabric8.kubernetes.client.DefaultKubernetesClient;
import io.fabric8.kubernetes.client.KubernetesClient;
public class Tdd {
public static void main(String[] args) throws Exception {
File file=ResourceUtils.getFile("classpath:kubernetes_config");
Config config=Config.autoConfigure(file.getAbsolutePath());
try (KubernetesClient k8s = new DefaultKubernetesClient(config)) {
NodeMetricsList nodeMetricsList = k8s.top().nodes().metrics();
for (NodeMetrics nodeMetrics : nodeMetricsList.getItems()) {
System.out.println(nodeMetrics.getMetadata().getName());
System.out.println(nodeMetrics.getUsage().get("cpu"));
System.out.println(nodeMetrics.getUsage().get("memory"));
}
}
}
}
when I try to override kubernetes config file it will not be working,当我尝试覆盖 kubernetes 配置文件时,它将无法正常工作,
it is looking ".kube/config" file.它正在寻找“.kube/config”文件。
I have added a config file inside my project,我在我的项目中添加了一个配置文件,
I want to use my customize config file.我想使用我的自定义配置文件。
how can I do it?我该怎么做?
The Config
class, which you've already found, has many setters to override specific settings;您已经找到的
Config
class 有许多设置器来覆盖特定设置; but it looks you want load config from another path.但看起来你想从另一个路径加载配置。 In that case, you can use fromKubeconfig method.
在这种情况下,您可以使用fromKubeconfig方法。
File file=ResourceUtils.getFile("classpath:kubernetes_config");
String kubeconfigContents=Files.readString(file.toPath());
Config config=Config.fromKubeconfig(kubeconfigContents);
try (KubernetesClient k8s = new DefaultKubernetesClient(config)) {
NodeMetricsList nodeMetricsList = k8s.top().nodes().metrics();
for (NodeMetrics nodeMetrics : nodeMetricsList.getItems()) {
System.out.println(nodeMetrics.getMetadata().getName());
System.out.println(nodeMetrics.getUsage().get("cpu"));
System.out.println(nodeMetrics.getUsage().get("memory"));
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.