1.
- SaaS:软件即服务,Software-as-a-service 阿里云
- PaaS:平台即服务,Platform-as-a-service 新浪云
- IaaS:基础设施即服务,Infrastructure-as-a-service office 365
docker是paas的下一代标准
2.k8s类似产品:
apache的mesos 资源管理框架 开源的 走下了历史舞台 被k8s打败,后来将k8s纳入了平台管理
docker swarm 本身实现挺好的,在大型环境下也可以使用,但是功能相对于k8s少。
至此两位退出了历史舞台(江湖)。
3.kubernetes (阿里云也是默认使用k8s)
k8s靠山是Google,来源其borg。k8s由go编写,go优点消耗资源少。
所以k8s特点:轻量级(消耗资源少)
开源
弹性伸缩
负载均衡:IPVS(框架,负载能力极强)
4.组件说明
pod的控制器,与很多类型。
例:ReplicationController,ReplicaSet,Deplyment,DaemonSet,Job,CronJob,StatefulSet,HPA。
服务的分类:有状态服务,无状态服务。
有状态服务:程序员 DBMS
无状态服务:流水线 LVS apache
安全部分:webbook
apiserver 一切服务访问的入口 很繁忙
etcd 可信赖,分布式键值对数据库 k8s中重要存储,存储集群所有重要信息(持久化(重要信息,可用于集群还原))
v2版在kubernetes1.11中被弃用
内部架构图
node计算节点中要安装docker,其他容器引擎也可,docker只是最常见的容器引擎。
kubelet:与CRI(容器,运行环境,接口),与docker进行交互,操纵docker创建对应容器。维持pod生命周期。
kubeproxy:负载均衡,pod间访问
CrontrollrtManager:维持副本期望数目
Scheduler:负责介绍任务,选择合适的节点进行分配任务。
kubelet:直接跟容器引擎(docker)交互实现容器的生命周期管理。
把k8s发过来的指令,先理解,再转为容器能听懂的命令进行执行。
kube-proxy:负责写入规则至IPTABLES、IPVS实现服务映射访问的。
coreDNS:core公司的dns服务,可以为集群中的SVC(service)创建一个域名IP的对应关系解析
访问pod,完全不需要podIP地址,二十可以通过域名
DASHBOARD:给k8s集群提供一个B/S(brower/server,游览器/服务器)结构访问体系。
INGRESS controller:官方实现了四层代理,ingress实现了七层代理
fedetation:提供一个可以跨集群中心多k8s统一管理功能。
prometheus:普罗米修斯 提供一个k8s集群的监控能力
elk:提供k8s集群日志统一分析接入平台