上手kubernetes之前,你应该知道这6件事

246 阅读4分钟

在过去的一年多时间了里,我们深入了解了容器编排工具,引导团队构建并发布了可以部署在kubernetes上的cloud native GitLab helm chart。对于正在考虑上手Kubernetes的朋友,我们有以下6点建议:

在网上查看文档、在线课程和演示

不要闭门造车,去看看网上的文档和视频演示,这是都是可以让我们快速熟悉和了解Kubernetes的好渠道。我们其实没必要为了用K8s而去煞有介事的参加一整套课程,但是对于某些技术细节,专业的讲解和经验分享无疑是极有帮助的。

当然学以致用的最佳途径还是实际的测试演练,有很多PaaS平台或者Kubernetes工具都有免费的资源或者免费试用期,我们可以在其之上建立并部署一个小集群,尝试、配置、更改……随便玩吧!

搞明白为什么用Kubernetes

使用Kubernetes的最大挑战之一是想清楚我们要做什么——是作为一个测试round、一个临时环境,还是用于生产?

仅仅用于开发环境并不复杂,只需要了解一些基本的概念,比如namespace,以及了解什么是secret、什么是configuration、什么是deployment等等,这些概念将在我们的使用过程中贯穿始终。

在Kubernetes上更进一步时,我们需要了解一些之前不存在的东西,比如基于角色的访问控制、RBAC等等。这些功能一年前还没有,但现在正在变得越来越重要,对于在整个流程上的不同角色来说好处多多,确保正在做的事情不会影响到其他不该触及的事情。

例如,我们现在可以通过RBAC进行细粒度控制,设置多个namespace,每个namespace对访问或者创建secret、configuration进行控制。这样我们便拥有了生产级的多租户集群,不必担心租户之前互相影响和干涉。

服务商们的Kubenretes版本不一定一致

很多人会选择使用服务商提供的Kubernetes服务,这里需要注意的是,服务商们提供的Kubenrets版本往往并不一致。一般来说,它们会很接近,但某些功能的实现方式稍有不同。或许基础版本都差不多,区别会存在于服务商与自己产品集成时提供的高级支持。

另外需要注意的是,有些服务商并不支持我们“自己动手”,我们无法把自己的插件和组件跟服务商提供的产品服务一起使用。

对于新功能的使用不能盲目

从我们第一次了解Kubernetes到现在,一年时间里它的功能扩展了很多。对于新的变化,如果没有充分理解便贸然使用的话,很可能会适得其反,我们花些时间阅读和思考是否真的用得上或者怎么用,毕竟看到别人这样做并不代表它就是行业的最佳实践。

要经常更新版本

Kubernets是一个生产就绪的系统,但它不是一个每半年发布一次新版本的软件,新的特性和功能每日剧增。所以如果我们安装了Kubernets,一年不更新,之后再去考虑找一个LTS,那时候其实已经晚了。我们的建议是每个月检查一次Kubernetes的新功能和新特性,以保证我们没有“过时”。

最后一点建议(广告)

Kubernetes提出的一系列概念抽象,非常符合理想的分布式调度系统。但大量高难度技术概念,同时也形成了一条陡峭的学习曲线,直接拉高了Kubernetes的使用门槛。

好雨云开源PaaS Rainbond则将这些技术概念包装成为“Production-Ready”的应用,可以作为一个Kubernetes面板,开发者不需要特殊学习即可使用。

除此之外,Kubernetes本身是一个容器编排工具,并不提供管理流程,而Rainbond提供现成的管理流程,包括DevOps、自动化运维、微服务架构和应用市场等,可以开箱即用。

进一步了解:https://www.goodrain.com/scene/k8s-docker

原文:https://about.gitlab.com/2018/04/16/five-things-i-wish-i-knew-about-kubernetes/​