大纲
- CNCF云原生介绍
- 容器技术发展介绍
- Kubernetes技术架构
CNCF云原生介绍
CNCF ToC: CNCF Cloud Native Definition v1.0
云原生技术有利于各组织在公有云、私有云和混合云等新型动态环境中,构建
和运行可弹性扩展的应用。云原生的代表技术包括容器、 服务网格、 微服务、
不可变基础设施和声明式API。
这些技术能够构建容错性好、易于管理和便于观察的松耦合系统。结合可靠的
自动化手段,云原生技术使工程师能够轻松地对系统作出频繁和可预测的重大
变更。
云原生计算基金会( CNCF)致力于培育和维护一个厂商中立的开源生态系统,
来推广云原生技术。我们通过将最前沿的模式民主化,让这些创新为大众所用。
云计算的发展历程
“云”中的资源在使用者看来是可以无限扩展的,并且可以随时获取,按需使用,随时扩展,按使用付费。这种特性经常被称为像水电一样使用IT基础设施。
云计算伴随云原生技术步入新时代
容器是云原生技术发展的第一波热潮
容器服务的目标就是打造Cloud Native应用的运行环境
CNCF当前项目介绍
容器技术发展介绍
容器技术发展历史
容器虚拟化( LXC) :提供应用隔离运行的能力;
Docker:基于容器提供统一的应用分发平台
容器的三大好处, 为应用而生
Docker – Build, Ship, and Run Any App, Anywhere
容器底层关键技术 - Linux Cgroup
Docker使用Linux Cgroup技术来实现容器实例的资源管理
cgroup子系统 | 资源管理 | 对应的docker接口 |
memory | 限制cgroup中的任务所能使用的内存上限 | -m --memory-swap --memory-reservation --kernal-memory --oom-kill-disable --memory-swappiniss |
cpu | 使用调度程序提供对CPU的cgoup任务访问 | -c --cpu-period --cpu-quota |
Cpuset | 为cgroup中的任务分配独立CPU和内存节点 | --cpuset-cpus --cpuset-mems |
Blkio | 为块设备设定输入/输出限制 | --blkio-weight --blkio-weight-device --device-read-bps --device-write-bps --device-read-iops --device-write-iops |
容器底层关键技术 - Linux Namespace
Docker使用linux namespace技术来实现容器实例间的资源隔离
Namespace | 系统调用参数 | 隔离内容 |
PID namespace | CLONE_NEWPID | 隔离不同用户的进程,不同的namespace中可以有相同的pid。 允许嵌套,可以方便实现docker in docker |
UTS namespace | CLONE_NEWUTS | 允许每个容器拥有独立的hostname和domain name,使其在网络上可 以被视为独立的节点。 |
IPC namespace | CLONE_NEWIPC | 保证容器间的进程交互,进行信号量、消息队列和共享内存的隔离。 |
Network namespace | CLONE_NEWNET | 实现网络隔离,每个net namespace有独立的network devices、 ip addresses、 ip routing tables、 /proc/net目录。 |
Mount namespace | CLONE_NEWNS | 隔离不同namespace的进程看到的目录结构,每个namespace的容器在 /proc/mounts的信息只包含所在namespace的mount point。 |
User namespace | CLONE_NEWUSER | 允许每个容器可以有不同的user和group id |
容器底层关键技术 – 联合文件系统
概念:一个基于文件的接口,通过把一组目录交错起来,形成一个单一视图。
优点:
1、多个容器可以共享image存储,节省存储空间;
2、部署多个容器时, base image可以避免多次拷贝,实现快速部署;
Docker目前支持的联合文件系统种类包括devicemapper、 overlay2、 aufs、 btrfs、 vfs和
新一代Kata容器实现多租户容器强隔离
- 虚拟化层的存在,保障了容器在多租户场景下的安全性。
- 高度裁剪和优化过的KVM, guest OS保证了VM启动时间极短,性能损耗极小。
- 接口层支持对接docker引擎或crio,镜像完全兼容docker镜像,无需修改。完美融入K8S容器生态。
Kubernetes技术架构
什么是Kubernetes?
Kubernetes系统组件
Kubernetes架构
Declarative (申明式API) vs Imperative (命令式API)
Kubernetes Controllers
Kubernetes基于list-watch机制的控制器架构
Kubernetes架构分层
K8S社区架构中对各层的详细定
Kubernetes生态系统范畴
• 容器内 – 多样化工作负载
• K8S南向 – 多样化的环境
– 容器、网络、存储插件
– 镜像仓库
– 多云插件
– 集群管理配置
– 认证系统
• K8S北向 – 多样化的服务和工具
– 日志&监控
– 配置语言
– 编排部署
– 持续集成
– PaaS
– 工作流
– 函数服务
– 数据处理服务
– 对象事务服务 (数据库、存储)
– 互联网应用
转载:https://blog.csdn.net/fly910905/article/details/103756799