在GKE集群中运行的Java应用程序如何以编程方式应用yaml文件?

在GKE集群中运行的Java应用程序如何以编程方式应用yaml文件?,java,kubernetes,google-cloud-platform,google-kubernetes-engine,Java,Kubernetes,Google Cloud Platform,Google Kubernetes Engine,我在Google Kubernetes引擎集群上部署了一个Java应用程序。如何使此应用程序以编程方式应用yaml?相当于 kubectl apply -f deployment.yaml 我偶然发现了这个客户端库,但在文档中找不到显示如何实现它的部分 编辑: 谢谢纪尧姆和米奇的指点。我试过了,但是被禁止了。请参阅下面的代码和响应: @RequestMapping(value=“/list pods”,method=GET,products=TEXT\u PLAIN\u value) 公共字符

我在Google Kubernetes引擎集群上部署了一个Java应用程序。如何使此应用程序以编程方式应用yaml?相当于

kubectl apply -f deployment.yaml
我偶然发现了这个客户端库,但在文档中找不到显示如何实现它的部分

编辑:

谢谢纪尧姆和米奇的指点。我试过了,但是被禁止了。请参阅下面的代码和响应:

@RequestMapping(value=“/list pods”,method=GET,products=TEXT\u PLAIN\u value)
公共字符串listPods()引发异常{
KubeConfig.registerAuthenticator(新的GCPAuthenticator());
final CoreV1Api=新的CoreV1Api(Config.defaultClient());
V1PodList list=api.listPodForAllNamespaces(null,null,null,null,null,null,null);
StringBuilder=新的StringBuilder(“Pods:\n\n”);
对于(V1Pod item:list.getItems())builder.append(item.getMetadata().getName());
返回builder.toString();
}
这是引发的异常:

2020-04-10 07:52:46.655 ERROR 1 --- [nio-8080-exec-7] o.a.c.c.C.[.[.[/].[dispatcherServlet]    : Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed; nested exception is io.kubernetes.client.ApiException: Forbidden] with root cause

io.kubernetes.client.ApiException: Forbidden
        at io.kubernetes.client.ApiClient.handleResponse(ApiClient.java:886) ~[client-java-5.0.0.jar!/:na]
        at io.kubernetes.client.ApiClient.execute(ApiClient.java:802) ~[client-java-5.0.0.jar!/:na]
        at io.kubernetes.client.apis.CoreV1Api.listPodForAllNamespacesWithHttpInfo(CoreV1Api.java:18720) ~[client-java-api-5.0.0.jar!/:na]
        at io.kubernetes.client.apis.CoreV1Api.listPodForAllNamespaces(CoreV1Api.java:18698) ~[client-java-api-5.0.0.jar!/:na]
        at com.ngserve.clapps.ws.WS.listPods(WS.java:53) ~[classes!/:0.0.1-SNAPSHOT]

我最终按照FL3SH的建议配置了必要的rbac,从而使它能够正常工作

我最终按照FL3SH的建议配置了必要的rbac,从而使其正常工作

你能看看我的答案吗?如果需要,我们可以讨论一个更“Java”的解决方案(答案是Python)->是的,这就是我想要做的。请问如何在Java中做到这一点?您是否尝试使用外部maven依赖性?你会考虑类似的工作吗?如果你认为我可以详细说明你必须为你的POD配置合适的RBAC来允许特定的动作比如列表或创建。你能看一下我的答案吗?如果需要,我们可以讨论一个更“Java”的解决方案(答案是Python)->是的,这就是我想要做的。请问如何在Java中做到这一点?您是否尝试使用外部maven依赖性?你会考虑类似的工作吗?如果可以考虑,我可以详细说明,你必须为你的POD配置适当的RBAC,允许特定的动作,如列表或创建。