一、Kubernetes概述
kubernetes是Google开源的容器集群管理系统,是容器编排调度引擎,它构建在Docker技术之上,为跨主机的容器化的应用提供资源调度,服务发现、高可用管理和弹性伸缩等一整套功能,它提供完善的管理工具,涵盖开发、部署测试、运维监控等各个环节。它的目标不仅仅是一个编排系统,而是提供一个规范,可以让你来描述集群的架构,定义服务的最终状态,Kubernetes可以将系统自动的达到和维持这种状态
kubernetes实现的目的:
- 实现资源管理的自动化
- 多个数据中心资源利用率最大化
二、Kubernetes特性
1、自动化部署
yaml部署到k8s,会根据应用程序计算资源需求,自动分配到node
2、系统自愈
当成功部署到k8s中,node节点宕机,k8s会重新将pod调度到可用节点
3、水平扩展
HPA周期调整RC的副本数量,将用户定义的resource值匹配
4、服务发现与负载均衡
内置服务发现功能,为每个容器分配IP,service代理
5、自动更新和回滚
监控应用状态,不会同时杀掉应用,更新出错,自动恢复到原先状态
三、Kubernetes架构设计
Master
1、Master节点:集群控制节点,负责整个集群的管理和控制
2、Api Server:提供接口,资源增删改查入口
3、Controller Manager:所有资源对象的自动化控制中心
4、Scheduler:负责资源调度
5、Etcd:master的持续状态都存在etcd
Node
1、Node节点:工作节点,听从master的工作分配,都会被master分配一些工作
2、Kubelet:Pod容器创建、启停,集群管理等任务,与master密切协作
3、kube-proxy:实现service的通信与负载均衡组件
4、Docker:Docker引擎,负责本机容器创建和管理工作
描述
Node节点可以动态加载到kubernetes的集群当中,通过热加载方式加载到Kubernetes的集群当中(前提是这个节点已经配置好了Node节点应该配置的进程--Kubelet、kube-proxy、Docker)。在默认情况下,Kubelet会向Master注册自己,一旦Node被纳入集群管理,Kubelet会定时向Master节点汇报自身的情况(例如系统版本、系统信息、机器cpu使用率等),使得Master可以获得每个资源的使用情况,从而实现高效的负载均衡和资源调度策略。
如果某个Node节点超过指定时间不上报节点信息时,Master会判断为失联,状态就会标记为不可用,即NotReady,Master会把不可用节点上面的应用切换到可用节点(Ready节点)上面去
具体介绍请移步:https://www.kubernetes.org.cn/kubernetes%E8%AE%BE%E8%AE%A1%E6%9E%B6%E6%9E%84