1.容器基本概念
-
2.容器生命周期
容器运行的生命周期
单进程模型
1.init进程生命周期=容器生命周期
2.运行期间即可运行exec执行运维操作
数据持久化
1.独立于容器的晟敏周期
2.数据卷-docker volume vs bind
-
3.容器项目的架构
moby容器引擎架构
1.containerd
1.容器运行时管理引擎,独立于moby daemon
2.containerd-shim 管理容器生命周期,可被containerd动态接管
2.容器运行时
1.容器虚拟化技术方案
2.run C kata gVisor
-
4.容器vs VM
vm
1.模拟硬件资源,资源Guest OS
2.应用拥有Guest OS 所有资源
3.更好地隔离效果 -Hypervisor 需要消耗更多地资源
container
1.无Guest OS,进程级别地隔离,这点没VM好
2.启动时间快
3.隔离消耗资源少-隔离效果强于VM
2.kubernetes核心概念
-
什么是kubernetes
1.自动化的容器编排平台
部署
弹性
管理
2.核心功能
服务发现与负载均衡
容器自动装箱
存储编排
自动容器恢复
自动发布与回滚
配置与密文管理
批量执行
水平伸缩
例子:k8s-调度,k8s自动恢复
-
kubernetes的概念
架构
1.master
api server:
处理api操作,k8s中所有组件都会和api server连接,组件与组件都依赖api server来连接
可以s水平部署的组件
controller:
控制器,对集群状态的管理,比如自动的对容器进新水平的修复,自动的对容器进行扩张
可以热备
Scheduler:
调度器,完成调度的操作,比如把一个用户提交的container,依据他对cpu menmory请求大小,找一台合适的节点进行放置
可以热备
etcd:
分布式存储系统,api server中所需要的源信息都存在etcd中,etcd是一个高可用系统,可以保证k8s中master组件的高可用性
2.node
node是真正运行业务负载的地方,每个业务负载会以pod的形式运行,一个pod中运行着一个或多个容器,真正运行pod的组件是kubelet,通过api server接收到pod所需要的运行状态,再提交到container runtime组件中,再在os上创建容器所需要的运行的环境让容器运行起来。运行容器或者pod也需要对存错或网络进行管理,k8s并不会直接进行网络存储的操作,而是交给storage plugin,network plugin操作。用户自己或者云厂商会自己写相应的storage plugin,network plugin来完成存储操作或网络操作。k8s环境中也有自己的network
pod:一个pod中运行着一个或多个容器
kubelet
container runtime
storage plugin
network plugin
kube-proxy:真正完成组网的,利用iptables能力来组网
node中各个组件的联系:
用户通过ui或者cli提交pod给k8s部署
-->请求提交给api server
-->aip server 写给存储系统etcd
-->scheduler会通过api server的watch得到信息有一个pod需要调度
-->scheduler会根据他的内存状态进行一次调度决策
-->完成调度后scheduler会告诉api server 这个pod需要被调度到某一个节点上
-->api server会把这个结果写道etcd中
-->api server通过watch进行通知,相应节点的kubelet调取container runtime来配置
3. kubernetes的核心概念与API
核心概念
pod
最小的调度以及资源单元
由一个或多个容器组成
定义容器的运行方式(Command,环境变量等)
提供给容器共享的运行环境(网络,进程空间)
volume
声明在pod中的容器可访问的文件目录
可以被挂载在pod中一个(或者多个)容器的指定路径下
支持多种后端存储的抽象
本地存储
分布式存储
云存储
deployment
定义一组pod的副本数目,版本等(一般用deployment的抽象来做真正的应用的管理)
pod是组成deployment的最小单元
通过控制器(controller)维持pod的数目
自动恢复失败的pod
通过控制器以指定的策略控制版本
滚动升级
重新生成
回滚等
service
提供访问一个或多个pod实例的稳定访问地址(负载均衡)
支持多种访问方式的实现
ClusterIP
NodePort
LoadBalancer
namespaces
一个集群内部的逻辑隔离机制(鉴权,资源额度)
每个资源(pod,deployment,service)都属于一个namespace
同一个namespace中的资源命名唯一
不同namespace中的资源可重名
O
api-基础知识
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)