操纵Kubernetes两年来的经验哺育


admin| 更新时间:2020-07-09 09:00|点击数:未知

在Ridecell公司管理基础设施团队几年后,吾想在停下来修整时记录下吾的一些思想和经验哺育。

世为物业管理有限公司

Kubernetes不光仅是炒作

吾在Kubernetes周围里活跃了很久,因而这并不出乎吾的预料,但当某件事情被大肆宣传的时候,仔细检查一下总是益的。在两年众的时间里,吾的团队完善了从Ansible Terraform到纯Kubernetes的周详迁移,在这个过程中,吾们的安放率增补了三倍众,同时将安放舛讹缩短到“吾都不记得上次是什么时候发生的”的程度。吾们还挑高了操作可见性,大量无趣却很厉重的自动化义务,以及基础设施休止时的平均恢复时间。

Kubernetes并不是魔法,但倘若被一个懂它的团队操纵,那它就是一个专门兴旺的工具。

Traefik Cert-Manager Ext-DNS组相符很棒

Traefik行为Ingress控制器,Cert-Manager议决LetsEncrypt生成证书,External-DNS管理边缘DNS记录,这三个组相符使得HTTP路由和管理像黄油相通通顺。吾不息对Traefik 2.0中删除了许众1.x注解功能的选择颇有微词,但它们终于在2.2中回归了,尽管以差别的方法。行为一个边缘代理,Traefik是一个郑重的选择,它具有特出的指标集成,是一切Ingress控制器中管理部件最少的,以及有一个逆答敏捷的开发团队。Cert-Manager协调肆意Ingress方案都是一个微妙的工具,倘若你在Kubernetes集群中做了TLS,但还没最先操纵,那现在就去晓畅下吧。External-DNS异国其他两个那么受迎接,但是对于自动化DNS记录和实际匹配的步骤来说,它的厉重性不亚于其他两个。

倘若有什么差别的话,这些工具实际上能够使得竖立新的HTTPS端点变得太容易。众年来,吾们最后操纵了几十个稀奇的证书,这在Cert Transparency搜索和LetsEncrypt本身的证书到期警告等方面产生了许众噪音。以后吾将会仔细考虑哪些主机名能够行为全局配置的通配符证书的一片面,以缩短正在操纵的证书总数。

Prometheus很波动,Thanos并非牛鼎烹鸡

这是吾第一次操纵Prometheus行为主要的度量编制,它不愧为该周围的厉重工具。吾们选择Prometheus-Operator来管理它,这不失为一个益的选择,让吾们更容易将抓取和规则配置分发到必要它们的行使中。(倘若重来的话,)吾会在一路先就操纵Thanos。吾原本以为操纵它会过于牛鼎烹鸡,没想到它是那么容易配置,而且在跨区域查询和缩短Prometheus资源操纵方面首了很大协助,即使吾们异国直接操纵主-主互备高可用的竖立。

在操纵该技术栈时吾遇到的最大困扰是Grafana的数据管理,如何存储和组相符仪外板。管理仪外板的工具有了重大的添长,例如YAML文件、JSON文件、Kubernetes自定义对象,以及你能想到的其他任何东西。但根源题目照样任何一个工具都很难从头最先编写一个仪外盘,由于Grafana有一百万栽差别的配置选项和面板模式等等。吾们最后将它行为一个有状态的编制来处理,将一切的仪外板进走分组管理,但吾并不爱这栽解决方案。这边是否有一个更益的做事流程呢?

GitOps才是正途

倘若你操纵Kubernetes,那么你答该操纵GitOps。关于工具选择有许众,最浅易的就是在你现有的CI编制中增补运走kubectl apply的作业,不息到操纵专用的编制例如ArgoCD和Flux。不过吾坚定地站在ArgoCD阵营,它是一个可行为最先的郑重的选择,而且在以前的这些年里它越来越益。就在这周,GitOps-engine的第一个版本已经上线,其将ArgoCD和Flux放在一个共享的底层编制上,因而现在更快更益了。倘若你不爱这些工具的做事流,你现在甚至能够更容易构建新的。在几个月前吾们遇到了一次不料的不幸恢复游玩日,由于有人不仔细删除了测试集群中的大片面命名空间,众亏了GitOps,吾们的恢复手段是在bootstrap库中实走make apply,然后期待编制自走重修。话说回来,对于一些不克在git中生存的有状态数据的Velero备份也是很厉重的(比如cert-manager的证书,它固然能够重新签发,但你能够会遇到LetsEncrypt的速率控制)。

吾们遇到最大的题目就是选择将一切中央基础设施保存在一个存储库中。吾照样认为操纵一个单一的库是正确的设计,但吾将会将差别的事物划分到差别的ArgoCD实例中,而不是像现在将一切都放在一个“infra”的实例中。操纵单个实例导致更长的约束时间和喧华的UI,而且倘若吾们民俗了正确地分割吾们的Kustomize定义的话,它就异国众大益处了。

吾们行使创建更众的Operator

吾从一路先就积极发展自定义Operator,处理技术研究及配套装备研发且吾们在这方面取得了重大的成功。吾们从一个自定义资源和控制器最先,用于安放吾们的主要网络行使,并徐徐扩展到该行使和其他行使所需的一切其他自动化。操纵清淡的Kustomize和ArgoCD进走浅易的基础架构服务终局很益,但是当吾们想要控制外部事物时(例如从Kubernetes创建AWS IAM角色,议决kiam来操纵),或者当吾们必要某栽级别的状态机来控制这些事物时(例如带有SQL迁移的Django行使安放),吾们都会必要用到Operator。 行为其中的一片面,吾们还为吾们一切的自定义对象和控制器竖立了一个专门彻底的测试套件,这极大地挑高了操作的安详性和吾们本身对编制正确做事实在定性。

现在有越来越众的手段来构建Opeator,但吾照样对kubebuilder相等舒坦(尽管公平地说,吾们实在随着时间的推移大幅修改了项现在组织,因而说它操纵的是controller-runtime和controller-tools比kubebuilder本身更公平)。不论你最爱操纵哪栽说话和框架,都能够有可用的Operator工具包,你绝对答该操纵它。

Secret管理仍是难题

Kubernetes有本身的Secret对象,用于在运走时管理隐秘数据,与容器或与其他对象一首操纵,而且这个编制做事得很益。但是Secret的永远做事流程照样有点乱。把一个原首的Secret挑交到Git是很糟糕的,因为有许众,期待吾不必要列举,那么吾们如何管理这些对象呢?吾的解决方案是开发一个自定义的EncryptedSecret类型,它操纵AWS KMS对每个值进走添密,同时在Kubernetes中运走的控制器像去常相通将其解密回平常的Secret,还有一个用于解密-编辑-再添密循环的命令走工具。操纵 KMS意味着吾们能够议决IAM规则控制KMS密钥的操纵来做访问控制,并且只添密值,让文件有相符理的迥异性。现在有一些基于Mozilla Sops的社区Operator挑供了大致相通的做事流,尽管Sops在本地编辑做事流程上有点令人懊丧。总的来说,这个周围还必要许众竭力,人们答该憧憬一个可审计、可版本化、可代码审阅的做事流,就像在GitOps世界里的一切事情相通。

行为一个有关的题目,Kubernetes的RBAC模型的缺陷在Secrets上外现得最为清晰。几乎在一切情况下,被用于一个事物的Secret必须和操纵它的事物在联相符个命名空间中,这往往意味着许众差别事物的Secret最后会在联相符个命名空间中(数据库暗号、厂商API令牌、TLS证书),倘若你想给某人(或某事,同样的题目适用于Operator)访问其中一个,他们就会获得一切的访问权限。让你的命名空间尽能够的幼,任何能够放在它本身的命名空间的东西,都去做吧。你的RBAC策略会感谢你现在的做法。

原生CI和日志分析仍是盛开性题目

吾遇到的两大生态编制坑就是CI和日志分析。有许众安放在Kubernetes的CI编制,例如Jenkins、Concourse、Buildkite等。但感觉十足类原生的解决方案很少。JenkinsX能够是最挨近原生体验的,但它是竖立在专门大的复杂性上,吾觉得专门怅然。Prow本身也是专门原生的,但定制化许众,因而也不是一个容易上手的工具。Tekton Pipelines和Argo Workflows都有原生CI编制的矮级管道,但是找到一栽手段将其袒露给吾的开发团队从来异国超出理论操作人员的周围。Argo-CI益似已经被屏舍了,但Tekton团队益似正在积极地追踪这个用例,因而吾对它的一些改进足够期待。

日志搜集基本上是一个已解决的题目,社区荟萃在Fluent Bit上,将其行为一个DaemonSet发送给一些Fluentd pods,然后再发到你用来存储和分析的任何编制上。在存储方面,吾们有ElasticSearch和Loki行为主要的盛开竞争者,每个都有本身的分析前端(Kibana和Grafana)。益似主要照样末了一片面是吾的挫败感的来源。Kibana展现的时间更久,分析功能也很雄厚,但你必须操纵商业版来获得基本的操作,比如用户身份验证和用户权限照样专门暧昧。Loki要新得众,分析工具就更少了(子字符串搜索和每走标签搜索),至今异国任何针对权限的设计。倘若你战战兢兢地确保一切的日志输出是坦然的,能够让一切的工程师望到,这没题目,但你要准备益在SOC/PCI等审计中遇到一些尖锐的题目。

结语

Kubernetes并不是许众人所说的那栽可全套交付的解决方案,但是议决一些精心的工程设计和不凡的社区生态编制,它能够成为一个无与伦比的平台。花点时间学习每个底层组件,你将会在通去容器美满的道路上走得很益,期待你在此过程中能避免吾的一些舛讹。

 

原标题:阴历、阳历、农历到底有什么区别....这次终于分清了

导读:汽车一年开多少公里合适?专家:不能低于这个数,否则很损车

  吴尊友回应“北京疫情已控制”:防控不能松懈

友情链接

Powered by 荆州伟长设备有限公司 @2018 RSS地图 html地图

Copyright 365站群 © 2013-2018 版权所有