kubernetes-01-k8s介绍和集群架构
k8s介绍和架构
·
一.容器编排工具对比
a.ocker compose
- Compose 是一个用于定义和运行多容器 Docker 应用程序的工具。
- 使用 Compose,您可以使用 YAML 文件来配置应用程序的服务。
- 使用一个命令,您可以从您的配置中创建并启动所有服务。
b.docker swarm
- - 内置于docker引擎中
- 对docker引擎进行集群级别的管理
- 分布式设计,可以让集群资源更多,管理更多的主机
- 声明式服务模型,通过YAML文件定义应用程序服务所需状态
- 服务规模可扩大可缩小,保持用户期望状态
- 服务发现
- 负载均衡
- 滚动更新等
- docker service
- docker stack
c.kubernetes
- Kubernetes作为一个容器集群管理系统,用于管理容器云平台中多个主机上的容器应用,Kubernetes的目标是让部署容器化的应用变得简单且高效,所以 Kubernetes 提供了应用部署,规划,更新,维护的一整套完整的机制。
- Kubernetes没有固定要求容器的格式,但是Kubernetes使用它自己的API和命令行接口来进行容器编排。
- 除了Docker容器之外,Kubernetes还支持其他多种容器,如 Containerd、rkt、CoreOS 等。
- Kubernetes 是自成体系的管理工具,可以实现容器调度,资源管理,服务发现,健康检查,自动伸缩,更新升级等,也可以在应用模版配置中指定副本数量,服务要求(IO 优先;性能优先等),资源使用区间,标签(Labels等)来匹配特定要求达到预期状态等,这些特征便足以征服开发者,再加上 Kubernetes 有一个非常活跃的社区。它为用户提供了更多的选择以方便用户扩展编排容器来满足他们的需求。但是由于 Kubernetes 使用了自己的 API 接口,所以命令系统是另外一套系统,这也是 kubernetes 应用门槛比较高的原因所在
二.网址
官方网址 :
https://kubernetes.io/
中文社区:
http://docs.kubernetes.org.cn/
三.kubernetes架构
3.1架构说明:
kubernetes是具有中心节点的分布式架构,也就是说有master管理节点
- Master Node
- 中心节点
- manager
- 简单叫法
- master节点
- Minion Node
- 工作节点
- worker
- 简单叫点
- node节点
- worker节点
3.2架构图
四.kubernetes集群节点组件
4.1 Master节点组件
master节点是集群管理中心,它的组件可以在集群内任意节点运行,但是为了方便管理所以会在一台主机上运行Master所有组件,并且不在此主机上运行用户容器
Master组件包括:
- kube-apiserver
用于暴露kubernetes API,任何的资源请求/调用操作都是通过kube-apiserver提供的接口进行。 - kube-controller-manager
控制器管理器,用于对控制器进行管理,它们是集群中处理常规任务的后台线程。 - kube-scheduler
监视新创建没有分配到Node的Pod,为Pod选择一个Node运行。 - ETCD
是kubernetes提供默认的存储系统,保存所有集群数据。
4.2 Node节点组件介绍
node节点用于运行以及维护Pod, 管理volume(CVI)和网络(CNI),维护pod及service等信息
Node组件包括:
- kubelet
- 负责维护容器的生命周期(创建pod,销毁pod),同时也负责Volume(CVI)和网络(CNI)的管理
- kube-proxy
- 通过在主机上维护网络规则并执行连接转发来实现service(iptables/ipvs)
- 随时与apiserver通信,把Service或Pod改变提交给apiserver,保存至etcd(可做高可用集群)中,负责service实现,从内部pod至service和从外部node到service访问。
- Container Runtime
- 容器运行时(Container Runtime)
- 负责镜像管理以及Pod和容器的真正运行
- 支持docker/containerd/Rkt/Pouch/Kata等多种运行时
更多推荐
已为社区贡献2条内容
所有评论(0)