Kubernetes入门

Kubernetes是什么

首先,它是一个全新的基于容器技术的分布式架构领先方案。这个方案虽然还很新,但它是谷歌十几年以来大规模应用容器技术的经验积累和升华的一个重要成果。如果我们的系统设计遵循了Kubernetes的设计思想,那么传统系统架构中那些和业务没有多大关系的底层代码或功能模块,都可以立刻从我们的视线中消失,我们不必费心于负载均衡器的选型和部署实施问题,不必考虑引入或自己开发一个复杂的服务治理框架,不必再头疼于服务监控和故障处理模块的开发。
其次,Kubernetes是一个开放的开发平台。它不局限于任何一种语言,没有限定任何编程接口,所以不论是用Java、Go、C++还是用Python编写的服务,都可以毫无困难地映射为Kubernetes地Service,并通过标准的TCP通信协议进行交互。
最后,Kubernetes是一个完备的分布式系统支撑平台。Kubernetes具有完备的集群管理能力,包括多层次此的安全防护和准入机制、多租户应用支撑能力、透明的服务注册和服务发现机制、内建智能负载均衡器、强大的故障发现和自我修复能力、服务滚动升级和在线扩容能力、可扩展的资源自动调度机制,以及多粒度的资源配额管理能力。

Kubernetes基础知识

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

  1. 拥有一个唯一指定的名字(比如my-mysql-server);
  2. 拥有一个虚拟IP(Cluster IP、Service IP或VIP)和端口号;
  3. 能够提供某种远程服务能力;

被映射到了提供这种服务能力的一组容器应用上。
Service的服务进程目前都基于Socket通信方式对外提供服务,比如Redis、Memcache、MySQL、Web Server,或者是实现了某个具体业务的一个特定的TCP Server进程。
容器提供了强大的隔离功能,所以有必要把为Service提供服务的这组进程放入容器中进行隔离。为此,Kubernetes设计了Pod对象,将每个服务进程包装到相应的Pod中,使其成为Pod中运行的一个容器(Container)。

Pod介绍

首先,Pod运行在节点(Node)环境中,这个节点既可以是物理机,也可以是是私有云或者公有云中的一个虚拟机;
其次,每个Pod里运行着Pause容器,其他容器则为业务容器,这些业务容器共享Pause容器的网络栈和Volume挂载卷,因此他们之间的通信和数据交换更为高效
最后,需要注意的是,并不是每个Pod和它里面运行的容器都能“映射”到一个Service上,只有那些提供服务(无论对内还是对外)的一组Pod才会被“映射”成一个服务。

Kubernetes集群

在集群管理方面,Kubernetes将集群中的机器划分为一个Master节点和一群工作节点(Node)。其中Master节点上运行着集群管理相关的一组进程kube-apiserver、kube-controller-manager和kube-scheduler,这些进程实现了整个集群的资源管理、Pod调度、弹性伸缩、安全控制、系统监控和纠错等管理功能,并且都是全自动化完成的。Node作为集群中的工作节点,运行真正的应用程序,在Node上Kubernetes管理的最小运行单元是Pod。Node上运行着Kubernetes的Kubelet、kube-proxy服务进程,这些服务进程负责Pod的创建、启动、监控、重启、销毁,以及实现软件模式的负载均衡器。

服务扩容和服务升级

在Kubernetes集群中,只需为需要扩容的Service关联的Pod创建一个Replication Controller(简称RC)则该Service的扩容以至于后来的Service升级等头疼问题都迎刃而解。在一个RC定义文件中包括三个关键信息:

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

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值