增强版OpenShift CLI可以帮助我们高效而安全的管理大量的OpenShift集群。它是一个位于GitHub上的开源项目。

问题的提出

大家有没有遇到过这样的情况:手里有多个OpenShift集群同时在工作,并且访问每个集群都需要使用各自的登录账号和密码。基于安全的考虑,每次登录一个集群以后,登录会话会在一段时间之后失效。于是,为了继续操作这些集群,我们需要重新进行登录。

不仅如此,如果这些集群属于池化资源,那么典型情况下,它们的创建和释放都是按需来的,相应的集群访问信息,包括访问地址和登录密码,都可能是随机生成的,因而非常难于记忆。为此,我们不得不把集群的访问信息记录在某个地方,比如一个文本文件里,而这种记录信息的方法是不安全的。

并且,由于类似这样的集群资源,其生命周期往往都不会很长,所以相应的访问信息也很容易过时,手工维护这些信息费力又不讨好。

增强版OpenShift CLI

针对上面提到的问题,我在这里向大家推荐的一个解决方法,是使用增强版的OpenShift CLI。

如果你接触过OpenShift集群,那么对OpenShift CLI(即oc命令)一定不会陌生。它是一个命令行工具,可以用来管理OpenShift集群,非常类似于管理标准Kubernetes集群的命令行工具kubectl。

增强版OpenShift CLI(或增强版oc)并非是对原有oc命令的替换。它实际上是一个运行在原有oc命令之上的shell脚本。通过使用增强版oc,我们可以高效而安全的管理大量的OpenShift集群。

增强版oc除了支持原有oc的全部命令以外,还提供了以下几个有趣的功能:

  • 只有在第一次登录集群时需要提供完整的登录信息,后续只要提供代表该集群的别名即可完成再次登录。
  • 可以把数量巨大的集群以层级化方式进行管理,并在这些集群之间实现快速切换,输入集群别名时允许只输入部分名字,支持模糊查询,并和shell prompt做了很好的集成。
  • 支持把集群的上下文信息分享给其他人,实现多人团队协作过程中的共享集群管理。

增强版OpenShift CLI之所以能提供上述这些神奇的功能,都是因为它底层使用了gopass,一款用go开发的密码管理软件。它把集群的访问信息存入了由gopass维护的secret store,并将这些信息和一个易于记忆的别名关联起来。此外,增强版oc对原有oc进行了封装,修改了oc命令的输入参数,使得用户可以在使用oc命令登录集群时指定集群的别名作为输入参数。

不仅如此,由于gopass天生具备的一些特征,增强版oc还能做很多别的事,比如:

  • gopass是以层级化的文件夹及文件结构对secret进行管理的:这使我们能够同样以层级化的方式对集群访问信息进行管理,从而能够支持数量非常多的集群。
  • gopass在查询secret时支持非精确匹配:这使我们能够在通过别名对集群访问信息进行查询时同样也支持非精确查询及模糊查询。
  • gopass是以git库的形式来维护secret store的:这使得我们能够把本地的secret store分享到远程,从而让团队中的其他人也能访问到这些信息。这对于一个需要团队协作的大规模项目而言是非常有价值的。

小结

本文中,我们讨论了一种高效而安全的管理OpenShift集群的方案。这一方案是基于密码管理工具gopass,以及一个封装了oc命令的shell脚本来实现的。并且,由于gopass天生具备的一些特征,它为我们带来了很多有趣的功能,比如:对集群访问信息进行层级化管理,支持集群别名的非精确查询及模糊查询,允许把本地的集群访问信息分享给远程。

在下一篇文章里,我将和大家分享如何安装增强版oc,并为大家演示它的一些用法。

如果你想了解更多有关增强版OpenShift CLI的信息,请阅读它的在线文档。如果你喜欢这个项目,欢迎给它加星。同时,也非常欢迎针对该项目的任何形式的贡献,比如bug报告以及代码提交。

留下评论

您的电子邮箱地址并不会被展示。请填写标记为必须的字段。 *

正在加载...