一、kubernetes的优点
- 没有限定任何编程接口
- 易于升级并迁移到kubernetes平台
- 具有完备的集群管理能力(透明的服务注册和服务发现、智能负载均衡器、强大的故障发现和自愈能力、滚动升级和在线扩容)
- 完善的管理工具(包含:开发、部署、测试、运维监控等)
- 基于容器的分布式架构解决方案,并且是一个一站式的完备的分布式系统开发支撑平台
- 全面拥抱微服务
二、基本概念
- Master节点:
1、master节点运行集群管理相关的一组进程kubeapiserver、kube-controller-manager和kubescheduer
2、自动化实现整个集群的资源管理、pod调度、弹性伸缩、安全控制、系统健康和纠错管理等 - Node节点:
1、Node运行kubectl和kubeproxy进程
2、node节点负责pod的创建、启动、监控、重启、销毁、以及实现软件模式的负载均衡 - service:
1、全局唯一的名称
2、拥有一个虚拟IP和端口号(形成一个全局唯一的endpoint:访问点)
3、代表某种服务能力(web、sql等)
4、后端映射到一组提供相同服务的容器应用(即:外部通过service访问并使用容器提供的服务)
5、endpoint唯一且不可改变(即:无论后端提供服务能力的容器是否发生变化(IP改变、容器迁移、伸缩等),通过service使用服务的方式是不变的)
6、service中通过定义Label Selector来选择对应的pod(一组提供相同服务的容器的集合),pod在创建时会贴上一个Label(pod与service关联) - pod:
1、pod运行在节点node中,node可以是物理机或虚拟机,一个node可以运行多个pod
2、pod中运行着一个Pause容器:给其余的业务容器共享网络栈和Volume挂在卷
3、pod是kubernetes管理的最小运行单元 - Replicas Contriller:
1、与service一样,RC也通过label来关联pod
2、RC会定义pod需要运行的副本数量(即:期望状态)
3、弹性伸缩:若副本数与期望的副本数不一致,RC会自动创建或销毁部分pod以达到定义的数量(即:可以通过修改RC的数量实现弹性伸缩)