kubernetes学习笔记11:container容器
容器是视图隔离,资源控制,独立的文件系统,就是进程的集合。
容器镜像是运行容器所需要的文件集合,它有分层和复用的优势。具有一次构建,到处运行的特点。
dockfile是描述镜像构建步骤。
changeset是构建步骤所产生的文件系统的变化,包含新建,删除,修改文件。
容器生命周期:init生命周期=容器生命周期,容器运行期间,可以运行exec执行运维操作。
数据持久化,它独立于容器生命周期,使用数据卷可以快速持久化。
容器和vm各有优劣,容器技术向着隔离方向发展。
kubernetes是一个自动化容器平台,它负责应用的部署,应用的弹性扩容和应用的管理,它的架构是一个典型的二层架构和server-client架构。
管理虚拟机=管理基础设施,管理容器=直接管理应用本事
kubernetes=操作系统(linux)
容器=进程(linux线程)
pod=进程组(linux线程组)=多个容器
容器原本被namespace和cgroups隔离的,怎么让pod里的多个容器高效共享数据和资源:
首先共享网络,通过infra中间容器共享一个namespace,然后就是共享存储shared-data的volumn。
容器设计模式:通过在pod里定义一个专门容器init容器里面拷贝war包到指定的共享卷里面volumn,来执行主业务容器需要的辅助工作,tomcat容器启动后到指定的共享卷中读取war包资源,它将辅助功能和主业务容器解耦,实现独立发布和能力重用。比如应用和日志收集,war包和Tomcat容器化。代理容器:它对业务容器屏蔽被代理的服务集群,简化业务代码的实现逻辑,它的代码可以被全公司重用。适配器容器:将业务容器暴露出的接口转换为另一种格式,它的代码可以被全公司重用。