在上一节《一套适用于 CI 的 Go项目容器化构建方案》中我们介绍了怎么能把Go项目按 Git Tag 打包成 Docker 镜像,这也是让项目能在K8s上运行的基础。这一节我们通过实践操作演示一下怎么把我们的项目部署到K8s上运行。
本文节选自我的专栏《Go项目搭建和整洁开发实战》欢迎扫码订阅解锁更多内容。
订阅后除了加入实战项目外,还可加入专属读者群一起学习。
K8s 基础
K8s现在在各家公司的普及度已经很高,网上介绍它的资料也有很多,那什么是K8s呢?它的本名叫Kubernetes(单词太长,后面还是用 K8s 代替 )是一个基于容器技术的分布式架构方案。
它具备完善的集群管理能力,包括多层次的安全防护和准入机制、多租户应用支撑能力、透明的服务注册和服务发现机制、内建负载均衡器、故障发现和自我修复能力、服务滚动升级和线上扩容、可扩展的资源自动调度机制、多粒度的资源配额管理能力。还提供完善的管理工具,涵盖开发、部署测试、运维监控等各个环节。
总结一句话:是一套结合了容器编排和集群调度管理的大规模分布式系统解决方案。
在K8s 中会把各种资源抽象成对象--简而言之就是面向对象,大到集群的节点(Node)、小到配置项 (ConfigMap) 都是对象,常用的有以下对象。
Pod是K8s 里的最小调度单元,Pod里面则是容器(一个Pod里可以有多个容器,但只有一个主容器,其他都是辅助它的)。
控制器则是管理 Pod 用的,对于我们来说常用的控制器只有Deployment,它能够控制Pod的滚动更新。
Deployment 是一个复合型的控制器,它包装了一个叫做 ReplicaSet -- 副本集的控制器。ReplicaSet 管理正在运行的Pod数量,Deployment 在其之上实现 Pod 滚动更新,对Pod的运行状况进行健康检查以及回滚更新的能力。他们三者之间的关系可以用下面这张图表示。
这里我就不再过多介绍K8s的一些基础知识啦,如果你对这些内容有兴趣,可以阅读以下我之前写过的一些K8s的文章,里面还引用了很多我学K8s时记录的一些比较基础的内

最低0.47元/天 解锁文章
2333

被折叠的 条评论
为什么被折叠?



