如何使用k8s Java客户端连接到Pod中的k8s api服务器

时间:2018-08-13 11:20:45

标签: java kubernetes

上下文

我有一个构建为Docker映像的Java应用程序。

该映像已部署在k8s集群中。

在Java应用程序中,我想连接到api服务器并将某些内容保存在Secrets中。

如何使用k8s Java客户端来做到这一点?

当前尝试

k8s official document说:

  

在吊舱内,推荐的连接API的方法是:

     
      
  • 在pod的sidecar容器中运行kubectl代理,或在容器中作为后台进程运行。这会将Kubernetes API代理到Pod的localhost接口,以便Pod的任何容器中的其他进程都可以访问它。
  •   
  • 使用Go客户端库,并使用rest.InClusterConfig()和kubernetes.NewForConfig()函数创建一个客户端。他们处理对apiserver的定位和身份验证。
  •   

但是我在Java客户端中找不到类似的函数。

1 个答案:

答案 0 :(得分:1)

假设您的Pod具有自动挂载的serviceAccount(除非另行指定,否则默认为默认值),ClientBuilder.cluster()方法从环境中读取API URL,从中读取群集CA众所周知的位置,以及来自同一位置的ServiceAccount令牌。

然后,尽管PatchExample并非完全“创建秘密”,但它执行了一种变异操作,可以概括为“创建或更新秘密”。