目录
- Kubernetes简介
- 1. 什么是Kubernetes
- 2. Kubernetes发展史
- 3. Kubernetes 特点
- 4.Kubernetes核心组件
Kubernetes简介
1. 什么是Kubernetes
Kubernetes (通常称为K8s,K8s是将8个字母“ubernete”替换为“8”的缩写) 是一个以容器为中心的基础架构,可以实现在物理集群或虚拟机集群上调度和运行容器,提供容器自动部署、扩展和管理的开源平台。满足了应用程序在生产环境中的一些通用需求:应用实例副本、水平自动扩展、命名与发现、负载均衡、滚动升级、资源监控等。
2. Kubernetes发展史
Kubernetes (希腊语"舵手" 或 "飞行员") 由Joe Beda,Brendan Burns和Craig McLuckie创立,并由其他谷歌工程师,包括Brian Grant和Tim Hockin进行加盟创作,并由谷歌在2014年首次对外宣布 。它的开发和设计都深受谷歌的Borg系统的影响,它的许多顶级贡献者之前也是Borg系统的开发者。在谷歌内部,Kubernetes的原始代号曾经是Seven,即星际迷航中友好的Borg(博格人)角色。Kubernetes标识中舵轮有七个轮辐就是对该项目代号的致意。
Kubernetes v1.0于2015年7月21日发布。随着v1.0版本发布,谷歌与Linux 基金会合作组建了Cloud Native Computing Foundation (CNCF)并把Kubernetes作为种子技术来提供。
Rancher Labs在其Rancher容器管理平台中包含了Kubernetes的发布版。Kubernetes也在很多其他公司的产品中被使用,比如Red Hat在OpenShift产品中,CoreOS的Tectonic产品中, 以及IBM的IBM云私有产品中。
3. Kubernetes 特点
1、可移植: 支持公有云,私有云,混合云,多重云(multi-cloud)
2、可扩展: 模块化, 插件化, 可挂载, 可组合
3、自动化: 自动部署,自动重启,自动复制,自动伸缩/扩展
4、快速部署应用,快速扩展应用
5、无缝对接新的应用功能
6、节省资源,优化硬件资源的使用
4.Kubernetes核心组件
Kubernetes遵循master-slave architecture。Kubernetes的组件可以分为管理单个的 node 组件和控制平面的一部分的组件。
Kubernetes Master是集群的主要控制单元,用于管理其工作负载并指导整个系统的通信。Kubernetes控制平面由各自的进程组成,每个组件都可以在单个主节点上运行,也可以在支持high-availability clusters的多个主节点上运行。
Kubernetes主要由以下几个核心组件组成:
组件名称 | 说明 |
---|---|
etcd | 保存了整个集群的状态; |
apiserver | 提供了资源操作的唯一入口,并提供认证、授权、访问控制、API注册和发现等机制; |
controller manager | 负责维护集群的状态,比如故障检测、自动扩展、滚动更新等; |
scheduler | 负责资源的调度,按照预定的调度策略将Pod调度到相应的机器上; |
kubelet | 负责维护容器的生命周期,同时也负责Volume(CVI)和网络(CNI)的管理; |
Container runtime | 负责镜像管理以及Pod和容器的真正运行(CRI); |
kube-proxy | 负责为Service提供cluster内部的服务发现和负载均衡; |
核心组件结构图
1.master节点工作流程图:
2.node节点端口映射:
3.pod工作流程图:
除了核心组件,还有一些推荐的Add-ons:
组件名称 | 说明 |
---|---|
kube-dns | 负责为整个集群提供DNS服务 |
Ingress Controller | 为服务提供外网入口 |
Heapster | 提供资源监控 |
Dashboard | 提供GUI |
Federation | 提供跨可用区的集群 |
Fluentd-elasticsearch | 提供集群日志采集、存储与查询 |
原文地址:https://www.cnblogs.com/gongjingyun123--/p/12543063.html