基于K8S的容器云平台如何部署微服务?
Openshift已经集成Jenkins,自带内部registry,支持pipeline,用户需要做的就是搭建自己的Gitlab或者SVN用以存放自己的源代码,Openshift社区在Jenkins中实现了很多openshift插件,使得你在Jenkins和openshift之间可以实现互动关联操作,同时openshift提供了私有镜像仓库,可以将编译后的docker镜像存储在openshift内部registry中,然后在开发、测试和生产环境都可从这个registry中抓取镜像部署,开发、测试和生产环境之间在Jenkins中通过openshift插件进行触发,完美解决构建pipeline实现CI/CD。所以,完全没别要自己搞k8s+Jenkins,openshift已经提供了一站式解决方案。还是那句话,与其闷头搞K8S,不如直接上openshift! kubernetes需要整合Jenkins、Harbor、Gitlab还有日志管理、监控管理等等的其他组件,看需要,来实现持续部署持续发布的全流程。 GitLab主要负责开发代码的存放管理。 Jenkins是一个持续集成持续发布引擎,使用jenkins感觉它太重了,不太适合容器,当然也可以选择其他的。 Harbor就是私有镜像仓库了,新版Harbor提供了镜像安全扫描等功能,当然也可以使用其他的,如registry。 完成DevOps的话需要整合这些进行一些平台化的开发,这样才会有比较好的交互体验。也可以直接使用Jenkins Q4:微服务的编排K8S提供了很多yaml文件,但这其实用户体验并不好,有什么图形编排的解决思路么?以及怎样用微服务的理念打造企业中台(SOA)? A4: SOA面向服务架构,它可以根据需求通过网络对松散耦合的粗粒度应用组件进行分布式部署、组合和使用。服务层是SOA的基础,可以直接被应用调用,从而有效控制系统中与软件代理交互的人为依赖性。 大多数初次接触YAML的人都会觉得这类文档模板体验极差,感觉太反人类了,各种对齐、格式,一不小心就语法报错,通常又不能准确定位错误点,对新手来说,这种YAML文本确实很头疼,但是又没法,K8S里面尽是YAML,奈何???? 即使真有图形编排解决思路,感觉也是换汤不换药。 解决问题的根本办法,通常就是釜底抽薪。目前,已有大牛发起noYAML运动,虽然还未成气候,但是至少说明确实有很多人不喜欢YAML,而且在使用实际行动来不喜欢。 细数YAML“十宗罪”: https://arp242.net/weblog/yaml_probably_not_so_great_after_all.html https://news.ycombinator.com/item?id=17358103 如果希望在K8S上运行微服务,那么有必要了解一些云原生编程语言,如: Pulumi(https://www.pulumi.com/) Ballerina(https://ballerina.io/) 对于终端用户而言,或许平台才是你最终需要的。设想你有一个平台引擎,这个平台引擎集成了Docker及其调度引擎K8S,然后你只需要编写业务逻辑代码,然后镜像封装、容器部署调度全部交由平台处理,当然这个过程中各种YAML文件也由平台自动生成,何乐而不为? 那问题就是:有没有这样的平台? 以前就有,但是确实不怎么好用,但是OpenShift V3出来之后,个人认为它就是我们要找的平台。作为终端用户,我个人并不建议直接搞K8S,对K8S有些概念术语上的理解,就可直接上OpenShift V3。K8s和Docker仅是Openshift的kernel,除此之外,OpenShift还集成了很多应用程序编译、部署、交付和生命周期管理的生态圈软件,因此,比起硬上K8S,OpenShift也许才是很多人需要寻找的东西! (编辑:核心网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |