• 68046

    文章

  • 643

    评论

  • 65

    友链

  • 最近新加了换肤功能,大家多来逛逛吧~~~~
  • 喜欢这个网站的朋友可以加一下QQ群,我们一起交流技术。

k8s授权探索杂记

撸了今年阿里、腾讯和美团的面试,我有一个重要发现.......>>

参与的一个项目,部署再阿里云k8s上。

出于安全考虑k8s账号身份验证信息只有我和另一个同事有,其他同事开发完功能要部署到线上需要我手动使用kubectl更新。

像我这样的懒人是不愿意做这种简单而重复无聊的更新操作的。

要自动化很简单,teamcity持续集成构建部署分分钟的事,问题是:身份验证信息,不能放到teamcity上去。

所以,我需要弄一个受限的k8s账号,只允许执行更新操作。

浏览了一下k8s文档Controlling Access to the Kubernetes API章节,控制API访问权限显然有的。

只是:我需要控制哪个API访问权限了?更新的时候执行的是kubectl rollout restart deployments命令,可是这个命令到底调用了哪个API了?不知道。

看这样子应该是deployment API了:

可是看哪个都不像restart啊。

”要是能给kubectl设置个代理通过Fiddler拦截到kubectl发送的请求就好了“,我默念。
google kubectl proxy,搜到的全是kubectl proxy命令的用法。

无奈继续看官方文档,终于看到设置日志Kubectl output verbosity and debugging --v=8 Display HTTP request contents,要的就是这个。

终于看到重启调用的是啥了:
PATCH /apis/extensions/v1beta1/namespaces/{namespace}/deployments/{deployment}
Request Body: {"spec":{"template":{"metadata":{"annotations":{"kubectl.kubernetes.io/restartedAt":"2019-09-21T14:09:51+08:00"}}}}}

k8s API这设计有点意思哈~~通过修改restartedAt来实现重启。

现在问题就是,怎么控制权限只能调用这个了:
限制namespace、resource type、verb这些都很简单,可是,怎么限制PATCH的属性了?显然PATCH还可以修改别的属性,所以得限制,只能改kubectl.kubernetes.io/restartedAt

这个……限制PATCH的属性,好像做不到。

只能作罢,继续手动跑吧。

 


 转载至链接:https://my.oschina.net/guyongquan/blog/3108949。

695856371Web网页设计师②群 | 喜欢本站的朋友可以收藏本站,或者加入我们大家一起来交流技术!

欢迎来到梁钟霖个人博客网站。本个人博客网站提供最新的站长新闻,各种互联网资讯。 还提供个人博客模板,最新最全的java教程,java面试题。在此我将尽我最大所能将此个人博客网站做的最好! 谢谢大家,愿大家一起进步!

转载原创文章请注明出处,转载至: 梁钟霖个人博客www.liangzl.com

0条评论

Loading...


发表评论

电子邮件地址不会被公开。 必填项已用*标注

自定义皮肤
注册梁钟霖个人博客