Kubernetes入门

什么是Kubernetes?

Kubernetes是一个全新的基于容器技术的分布式架构领先方案,式目前实现资源管理的自动化,以及跨多个数据中心的资源利用率的最大化。

Kubernetes是一个开放的平台,与J2EE不同,不局限于任何一种语言,不限定任何编程接口,并通过标准的TCP通信协议进行交互

Kubernetes是一个完备的分布式系统支撑平台,完备的集群管理能力,包括多层次的安全防护和准入机制,多租户应用支撑能力,透明的服务注册和在线扩容能力,可扩展的资源自动调度机制,以及多粒度的资源配额管理能力。

此外Kubernetes提供了完善的管理工具,涵盖开发,部署测试,运维监控各个环节

在Kubernetes中 ,Service是分布式集群架构核心,一个service拥有如下特征:

  1. 拥有一个唯一指定的名字
  2. 拥有一个虚拟IP和端口号
  3. 能够提供某种远程服务能力
  4. 被映射到了提供这种服务能力的一组容器应用上

服务基于Socket通信对外提供服务,如redis,mysql,web server


容器提供了强大隔离功能,所以有必要把为Service提供服务的这组进程放入容器中进行隔离。

为此Kubernetes 提供了 Pod 对象,将每个服务进程包装到相应的Pod中,使其成为Pod中运行的一个容器(Container)。

为此给每个Pod贴上一个标签(Label), name=.....

Pod

Pod运行在一个节点(Node)的环境中,这个节点可以使物理机,也可以是私有云或者公有云的一个虚拟机,通常在一个Pod中运行几百个Pod;其次,每个Pod中运行着一个特殊的被称之为Pause的容器,其他容器成为业务容器,这些容器共享Pause容器的网络栈和Volume挂在卷


集群方面

Kubernetes将集群划分为一个Master节点,和一群工作节点Node,Master节点运行着集群管理相关的一组进程Kube-apiserver,kube-controllermanager 和 kube-scheduler,这些进程管理着整个集群的,资源管理,Pod调度,弹性伸缩,安全控制,系统监控,和纠错等管理功能,都是自动完成的

Node作为集群中的工作节点,运行真正的应用程序,在Node上,Kubernetes管理的最小单元是Pod。

Node上运行着Kubernetesde 的kubelet,kube-proxy服务进程,负责Pod的创建,启动,监控,重启,销毁,以及实现软件模式的负载均衡


RC - Replication Controller

传统IT系统服务扩容,服务升级两个难题,需要人工一步步操作

在Kubernetes集群汇中,只需为需要扩容的Service管理Pod创建一个 RC ,一个RC定义文件中包括以下3个关键信息

  1. 目标Pod定义
  2. 目标Pod需要运行的副本数量(Replicas)
  3. 要监控的目标Pod的标签(Lavel)

创建好RC后(系统将自动创建Pod),Kubernetes 会通过RC中定义的Label 筛选出对应的Pod实例并实时监控其状态和数量,如果实例数量少于定义的副本数量,则会根据RC中定义的Pod模板来创建一个新的Pod,然后将此Pod调度到合适的Node上运行,知道Pod实例的数量达到预定的目标。这个过程完全自动化,无需人工干预,扩容变成了一个纯粹简单的数字游戏,只要修改RC的副本数量即可


为什么要用Kubernetes


Kubernetes 当前唯一被业界广泛认可和看好的Docker分布式系统解决方案

使用Kubernetes就是在全面拥抱微服务架构


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值