1.kubernetes (k8s)用来 管理容器集群的平台
2.层级关系
Kubernetes 集群都由一个或多个 Master
负责管理和控制集群节点。Master 对每个节点 Node 发送命令。简单来说,Master
就是管理者
,Node
就是被管理者
。Node 可以是一台机器或者一台虚拟机。在 Node
上面可以运行多个 Pod
,Pod 是 Kubernetes 管理的最小单位,同时每个 Pod
可以包含多个容器(Docker)
3.kubernetes可以实现
- 基于容器的应用部署、维护和滚动升级
- 负载均衡和服务发现
- 跨主机和跨地区的集群调度
- 自动伸缩
- 无状态服务和有状态服务
- 广泛的Volume支持
- 插件机制保证扩展
4.kubernetes核心组件
- etcd
分布式键值存储系统
。用于保存集群状态,比如Pod、Service等对象信息。 - apiserver 提供了
资源操作的唯一入口
,各组件协调者,并提供认证、授权、访问控制、API注册和发现等机制;以 HTTPAPI 提供接口服务,所有对象资源的增删改查和监听操作都交给 APIServer 处理后再提交给Etcd 存储
- controller manager
负责维护集群的状态
,比如故障检测、自动扩展、滚动更新等;处理集群中常规后台任务,一个资源对应一个控制器,而 ControllerManager 就是负责管理这些控制器的。 - scheduler
负责资源的调度
,按照预定的调度策略将Pod调度到相应的机器上; - kubelet kubelet 是 Master 在 Node 节点上的 Agent,管理本机运行容器的生命周期,比如创建容器、Pod挂载数据卷、下载secret、获取容器和节点状态等工作。kubelet 将每个Pod 转换成一组容器。
负责维护容器的生命周期
,同时也负责Volume(CVI)和网络(CNI)的管理; - Container runtime
负责镜像管理
以及Pod和容器
的真正运行(CRI); - kube-proxy
负责为Service提供cluster内部的服务发现和四层负载均衡
;在 Node 节点上实现 Pod 网络代理,维护网络规则和四层负载均衡工作。 - Metrics-server
提供资源监控
5.整个kuernetes主构成基组件
- Kubernetes Master(Kubernetes主节点)
- Node(节点)
- Pod
- Container(容器)
- Label([外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-kXG1OueZ-1603452782229)(assets/label.png)])(标签)
- Replication Controller(复制控制器)
- Service([外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Q2k9Oe7c-1603452782231)(assets/service.png)])(服务)
6.kubernetes优势
-
可移植 :支持公、私云和混合云、多重云
-
可扩展:模块化、插件化、可挂载、可组合
-
自动化:自动部署、重启、复制、伸缩
-
快速部署、扩展应用:
-
持续开发、集成和部署
-
开发和运行分离
-
无缝对接新的应用
-
云平台操作系统
-
松耦合、分布式、弹性、微服务
-
资源隔离
-
资源利用高
7.kubernetes劣势
- 不提供中间件
- 不部署源码不编译应用
- 不提供或授权一个全面的应用程序配置语言/系统
- 不提供任何机器配置、维护、管理或者自修系统
- 运行在应用级别/所以不提供普通的Pass平台提供的一些通用功能
8.kubernetes 基本功能
1.数据卷
pod中容器之间共存数据、可以使用数据卷
2.应用程序健康检查
容器内服务可能进程杜塞无法处理请求,可以在设置监控检查策略保证应用壮健性
3.复制应用层序实例
控制器维护着pod副本数量,保证一个pod或者一组同类的pod数量始终可用
4.弹性伸缩
根据设定的指标(cup利用率)自动缩放Pod副本数
5.服务发现
使用环境变量或DNS服务插件保证容器中程序发现Pod入口访问地址
6.负载均衡
一组Pod副本分配一个私有的ClusterIP地址,负载均衡转发请求到后端容器,在集群内部其他Pod可以通过这个ClusterIP访问应用
7.滚动更新
更新服务不中断,一次更新一个Pod,而不是同时删除整个服务
8.服务编排
通过文件扫面部署服务,使得应用程序部署变得更高效
9.资源监控
node节点组件集成cAdvisor资源收集工具,可用过Heapster汇总整个集群节点资源数据,然后存储到InfluxDB时数据库,再由Grafana展示
10.认证和授权
支持属性访问控制(ABAC)、角色访问控制(RBAC)认证授权策略。