1. K8s核心组件介绍
1.1 什么是云原生?
云原生(Cloud Native)是一种构建和运行应用程序的方法,是一套技术体系和方法论。Cloud Native是一个组合词,Cloud+Native。Cloud是适应范围为云平台,Native表示应用程序从设计之初即考虑到云的环境,原生为云而设计,在云上以最佳姿势运行,充分利用和发挥云平台的 弹性 + 分布式 优势。
CNCF(Cloud Native Computing Foundation,云原生计算基金会)在定义中给出了云原生的关键技术,容器、服务网格、微服务、不可变基础设施和声明式API,是目前云原生应用的最佳实践。
微服务架构向开发中提出新的挑战。应用向微服务演进的过程遇到新的问题?
- 无法静态配置;
- 服务数量多,需要服务注册/发现;
- 无法人工管理海量的服务;
云原生就是面向云环境的,从设计层面支持 自动伸缩容 , 资源控制 和支持统一服务注册/发现的应用 。
1.2 容器、K8s、云原生的关系
容器的兴起
-
云计算的大潮与Pass概念的普及;
-
Docker 通过镜像容器,保证应用环境的一致性,解决了 应用打包 的难题
-
但是容器本身是没有价值的,有价值的是 容器编排
-
容器编排的战争最后以kubernetes和CNCF的胜利告终;
容器的本质使用一个特别的线程:
- 以Namespace为隔离,是容器的边界墙;
- 以Cgroups为限制,是容器的盖子和屋顶。
- 以Mount挂载指定路径为文件系统,是容器的底座;
但是容器和容器之间的关系如何维护? 如何编排容器?