预研

参考链接:
CV的使用说明书:https://documentation.commvault.com/commvault/v11/article?p=1664.htm
对比:https://www.yuque.com/qiaokate/somwp3/lfv4xb
可以参考环境(cv),时间是630(17.3)

添加集群具体操作

1. 添加kubeconfig文件(已有)

2. 使用service account

具体原理参见kubernetes的RBAC,也就是要在所需的名称空间中创建一个服务帐户,并为其分配集群管理角色。
即要创建一个自定义的ClusterRole并将其与服务帐户相关联。
操作:(官方的)https://documentation.commvault.com/11.24/essential/129223_create_service_account_for_kubernetes.html

  1. #获取集群端点
  2. kubectl config view
  3. kubectl create ns namespace
  4. #在kubectl命令行工具中执行create命令创建业务帐户test。
  5. kubectl create serviceaccount test -n namespace
  6. #将业务帐号加入到绑定的集群角色default-sa-crb中
  7. kubectl create clusterrolebinding default-sa-crb \
  8. --clusterrole=cluster-admin \
  9. --serviceaccount=namespace:test
  10. # 提取服务帐号token。
  11. kubectl describe secret -n namespace $(kubectl get secret -n namespace -o jsonpath="{.items[?(@.metadata.annotations['kubernetes\.io/service-account\.name']=='test')].metadata.name}")
  12. curl -k -XGET -H "Authorization: Bearer xxx" 'https://x.x.x.x:6443/api'

image.png

  • 在集群内创建一个服务账号和服务令牌,使用该服务账号和令牌实现在CV上添加集群的效果

image.png

  • [x] 使用该服务账号和令牌,连接api-server,能够获取到config的配置信息。

  • [x] 即为验证ok

3. 使用userName,password的方式

操作:这个找不到官方的,参考https://www.yuque.com/qiaokate/somwp3/grxqyw

  1. #在master及node上都要添加这个文件
  2. vim /etc/kubernetes/pki/basic_auth_file
  3. 123456,admin,1
  4. 121212,system,2
  5. vim /etc/kubernetes/manifests/kube-apiserver.yaml
  6. - --basic-auth-file=/etc/kubernetes/pki/basic_auth_file # add
  7. - --secure-port=6443#不变
  8. # - --insecure-bind-address=0.0.0.0 #add
  9. # - --insecure-port=8080 #update
  10. #修改之后需要重启
  11. systemctl restart kubelet
  12. kubectl create clusterrolebinding test \
  13. --clusterrole=cluster-admin \
  14. --user=admin
  15. kubectl get clusterrolebinding test
  16. kubectl --server=https://x.x.x.x:6443 \
  17. --username=admin \
  18. --password=123456 \
  19. --insecure-skip-tls-verify=true get nodes
  20. echo 'admin:123456' | base64
  21. curl -k -XGET -H "Authorization: Basic xxx" 'https://x.x.x.x:6443/api'

image.png

  • 在集群内创建一个userName和password,使用该userName和password实现在CV上添加集群的效果

添加集群时的用户名:admin,密码是:123456
image.png
添加成功
image.png

  • [ ] 使用该userName和password,连接api-server,能够获取到config的配置信息。

  • [ ] 即为验证ok

问题

  1. userName和password不正确,后台访问报401

image.png
image.png
解决:检查node节点配置,重启systemctl restart kubelet

  1. 修改yaml文件后连不上集群

image.png
解决:重启虚拟机reboot,systemctl restart kubelet

  1. 使用userName和password并不安全

image.png
上面这种访问方式并不安全,它使用的实际上是localhost端口,不是安全端口
解决:取消开放这种端口,- --insecure-port=0即可
参考这一篇:https://kubernetes.io/zh/docs/concepts/security/controlling-access/
image.png

  1. https://github.com/kubernetes/kubernetes/issues/81126

注意一个安全问题!!!


  1. 看下资源管理服务代码,看添加kubeconfig文件那部分和预研是否相同(已经在做了)
  2. 还有年度计划还没写
  3. ut很慢,etcd那部分的ut怎么写,5月8号提到60%可否,要赶快提代码了。。(完成)
  4. 错误码要看一下那个公共库,要整理一下其他服务的错误码,按照4个维度来,这个有空再做。。(完成)
  5. 脚本那里的api文档的createStatus需要修改。。(记得记得)(完成)
  6. 待续吧。。还有什么事情。。

问题:这个是为什么报错
image.png
image.png
ok!要绑定权限
image.png
image.png