kubenetes(k8s) 使用java client遇到的问题记录

整体学习是按照下边这个链接进行的

使用 Java 操作 Kubernetes API

1.k8s集群配置好后无法访问https://124.70.84.xx:6443/apis/,返回401或403Forbidden

解决:k8s设置不允许匿名访问,测试环境直接开启允许匿名访问

kubectl create clusterrolebinding test:anonymous --clusterrole=cluster-admin --user=system:anonymous

2.javaclient初始化使用,kube/config连接超时

解决:,kube/config中的ip默认是集群内访问ip,要是想要集群外访问需要使用服务器的ip,直接使用ip和token方式登录即可

new ClientBuilder().setBasePath(url).setVerifyingSsl(false).setAuthentication(new AccessTokenAuthentication(token)).build();

3.deleteNamespacedPod(以及其他delete操作)虽然能够删除成功,但是返回state异常

Expected a string but was BEGIN_OBJECT at line 71 column 14 path $.status

这个问题查了一下是官方的错误,结果如下,状态类的转换出现错误,解决方法就是直接catch掉这个异常......

4.使用yaml.load()载入yaml文件时,报错显示无法生成对象,载入失败

Cannot create property=spec for JavaBean=class V1Deployment { apiVersion: apps/v1 kind: Deployment metadata: class V1ObjectMeta { annotations: {deployment.kubernetes.io/revision=1} clusterName: null


这个错误查了好久才解决,原因是使用kubectl 输出的yaml文件有一些属性版本不兼容(或者是权限不兼容),没有深究,例如使用idea放入yaml文件时,会有一些属性变灰且提示不能被用户使用,

解决:将变灰的属性全部删除即可


最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容