Kubernetes入门须知

应用程序部署演进引出Kubernetes

传统部署

–应用程序直接部署到物理服务器上
优点:部署简单,不使用相关技术
缺点:不能给应用程序定义资源使用边界,程序的计算资源难分配合理,程序之间容易有干扰

虚拟化部署

–物理服务器上安装并运行多个虚拟机,每个虚拟机使用独立的环境
优点:程序不会相互影响,保证了一定的安全性
缺点:增加了操作系统,浪费了部分资源

容器化部署

–与虚拟化类似,但是共享了操作系统
优点:每个容器中拥有独立的文件系统、CPU、内存、进程空间等;程序运行所需的资源被容器包装,并和底层基础架构解耦;容器化的应用程序可以跨云服务商及跨Linux系统发行版本进行部署。
不足:容器异常退出后,如何让另一个容器补上,消除业务影响;当业务量变化,如何保证业务稳定不浪费资源,比如超负荷时,添加容器支撑,业务低谷时,收回部分容器。

容器编排

–用来对容器进行管理与排列
其中当前最流行的是Kubernetes(Google研发)

Kubernetes核心

kubernetes组件

一个kubernetes集群主要由控制节点(master)与工作节点(node)组成,每个节点上需要安装不同的组件

master控制节点:负责整个集群的管理

  • ApiServer:资源操作的唯一入口,接收用户输入的命令,提供认证、授权、API注册和发现等机制
  • Scheduler:负责集群资源调度,按照预定的调度策略将Pod调度到相应的node节点上
  • ControllerManager:负责维护集群的状态,比如程序部署安排、故障检测、自动扩展、滚动更新等
  • Etcd:负责存储集群中各种资源对象的信息

node工作节点:集群的数据平面,负责为容器提供运行环境

  • kubelet:负责维护容器的生命周期,既通过控制docker,创建、更新、销毁容器
  • Docker:负责节点上容器的各种操作
  • kubeProxy:在node节点对外接收客户端请求

kubernetes组件概念详情

Pod

Pod是若干相关容器的组合,Pod包含的容器运行在同一台宿主机上,这些容器使用相同的网络命名空间、IP地址和端口,相互之间能通过localhost来发现和通信。另外这些容器可以共享一块存储空间。在kubernetes中创建、调度和管理的最小单位是Pod,而不是容器,Pod通过提供更高层次的抽象,提供了更加灵活的部署和管理模式。

Replication Controller as RC

Replication Controller用来管理控制Pod副本,确保任何时候kubernetes集群中有指定数量的Pod副本在运行。如果少于指定数量副本,RC回启动新的Pod副本,反之会杀死多余副本以保证数量不变,另外RC是弹性伸缩、滚动升级的实现核心。

Service

Service是真实应用服务的抽象,定义了Pod的逻辑集合和访问Pod集合的策略。Service将代理Pod,对外表现为一个单一访问接口,外部不需要了解后端Pod运行机制。Service提供了一套简化的服务代理和发现机制。

Label

Label是用于区分Pod、Service、RC的键值对,实际上kubernetes中任意API对象都是通过label进行标示。每个API对象都可以有多个label,但是每个label的key只能对应一个value。label是service和RC运行的基础,他们通过label来关联Pod。相对于强绑定模型,这是非常和谐的耦合关系。

Node

kubernetes属于主从分布式集群架构,kubernetes Node 运行管理容器。Node操作Kubernetes的操作单元,用来分配Pod。Pod最终运行在Node上,Node是Pod的宿主机。

kube-apiserver

作为kubernetes系统的入口,其封装了核心对象的增删改查操作,以REST API接口方式提供给外部客户和内部组件调用,它维护的REST对象将持久化到ETCD中。

kube-scheduler

负责集群的资源调度,为新建的Pod分配机器

kube-controller-manager

负责执行各个控制器,目前已经实现很多控制器来保证kubernetes的正常运行(主要有RC、Node、service、deployment等)

kubelet

负责管控容器,kubelet会从kubernetes API Server接收Pod的创建请求,启动或停止容器,监控容器运行状态并汇报给kubernetes API Server。

kubernetes proxy

负责为Pod创建代理服务,kubenetes proxy会从kubernetes API server获取所有的service,并根据service信息创建代理服务,实现service到Pod的请求和路由转发,从而实现kubernetes层级的虚拟转发。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值