【问题标题】:How could you implement `kubectl apply -f stuff.yaml` with the java Kubernetes Client如何使用 java Kubernetes 客户端实现“kubectl apply -f stuff.yaml”
【发布时间】:2019-04-09 07:48:10
【问题描述】:

我想通过一个 java 程序在 Kubernetes 上执行一个操作,比如 kubectl apply -f stuff.yaml。我不想从我的 Java 程序中调用 kubectl,而是想使用 Java Kubernetes client。在查看了项目中的 API 类后,我无法弄清楚我可以使用哪些方法来实现类似于 kubectly apply 的功能。

有没有人指点一下如何实现它?

【问题讨论】:

  • YAML 配置文件完全由kubectl 处理,而不是由 Kubernetes API 本身处理。如果你想解释这些 YAML 文件,你需要重新实现 kubectl 本身的块。

标签: kubernetes


【解决方案1】:

实际上没有方法本身或灵丹妙药,基本上你想要做的几乎是试图用Java重写kubectl

您应该能够使用 JacksonSnakeYAML 之类的东西来解码 YAML,并使用 Kubernetes client 中的所有不同组件,例如创建命名空间、pod、部署等。

您还可以通过https://kube-apiserver-address:6443/api/... 上的kube-apiserver 执行brute force 方法,方法是发送带有JSON 有效负载的经过身份验证/授权的GET/POST/DELETE 请求,您可以通过将YAML 转换为JSON(也许稍微清理一下)您可以使用 Apache HTTP client libraryJersey 之类的东西。

【讨论】:

    猜你喜欢
    • 2018-02-27
    • 2020-06-14
    • 2021-03-27
    • 2020-07-13
    • 2019-01-03
    • 1970-01-01
    • 2021-10-14
    • 2020-02-07
    • 1970-01-01
    相关资源
    最近更新 更多