1. kubeconfig

image.png

2. ServiceAccount

参数:host、token
image.png

3. UserName

参数:host、userName、password
image.png

以上是ok的!

APIGatewayService ——-> ProtectdService ——->ResourceService

  1. 本地起一个资源管理服务debug一下,看下调用关系(怎么debug呀,打日志吧)
  2. 补充另外两种访问方式

问题

错误:
image.png
image.png
image.png
解决:像以上这样获取version获取不到,改一个方法获取下url
image.png
image.png
这个是可以的,为什么获取version会报错呢,在demo里试一下,可以获取到集群version
image.png
那外面传进去为啥会报错
unable to parse the server version,the server has asked for client to provide credentials
image.png
获取一下response,发现k8s-api报401,why。。。
image.png
破案了,userName和password的base64编解码不对,写到代码里是正确的,可以获取到
image.png
。。。
所以为什么在代码里的和外面传进去的编解码会不一样???
新问题
image.png
集群状态是unauthorized,获取不到namespace等等资源
它的获取原理基本是不是

  1. 获取连接k8s集群的client,将clusterId对应client存成map
  2. 用该client去获取api group resource
  3. 把这个存到etcd里

问题明确一下哈:
从请求传进来的request不能通过认证,会报 unable to parse the server version,the server has asked for client to provide credentials这个错
写个demo测试一下获取k8s-apiServcer - 图14
在代码里将认证信息放进去,就可以访问到对应的k8s的apiserver,对应的获取到version
image.png
image.png
找找什么问题。。。
解决:破案了,要做aes解密,因为保护服务传给它的时候加密了