1、kubernetes 1.5.2原理以及集群HA部署

Kubernetes是什么? 

1.是一个全新的基于容器技术的分布式架构,是谷歌的Borg技术的一个开源版本 

Borg是谷歌的一个久负盛名的内部使用的大规模集群管理系统,基于容器技术,目的是实现资源管理的自动化,垮多个数据中心的资源利用率的最大化 

2.Kubernetes是一个开放的平台。不局限于任何一种语言,没有限定任何编程接口。 

3.Kubernetes是一个完备的分布式系统支持平台。Kubernetes具有完备的集群管理能力。包括多层次的安全防护机制和准入机制,多租户应用支撑,透明的服务注册和服务发现机制,内建只能负载均衡器,强大的故障发现和自我修复能力,服务的滚动升级和在线扩容能力,可扩展的资源自动调动机制,以及多粒度的资源配额管理能力 

为什么要用kubernetes? 

kubernetes作为被业内认可的Docker分布式解决方案,实现微服务架构。微服务架构的核心是一个巨大的单体应用切分为多个很小的互相连接的微服务,一个微服务背后是多个实例的副本在进行支撑,副本数量可以根据系统的负荷进行调整,内嵌的负载均衡器自动实现调度。 

kubernetes具备超强的横向扩容能力,可以横向扩展node数量,并且可以实现秒级的业务横向扩展,对于电商行业秒杀,拼团等等流量徒增时间和量不确定,以及大促期间需要整体进行扩容有极大的帮助,可将业务统一跑kubernetes上,而后端数据库都统一依赖云平台数据库服务,物理机或云主机自建。 

 

大致了解了kubernetes后,我们来简单的了解一下kubernetes的基本概念 

kubernetes的大部分概念,比如:node、pod、RepplicationController、Service等工具都可以看作一种“资源对象”,几乎所有的资源都可以通过kubernetes提供的kubectl工具进行增、删、改、查等操作并将其保存在etcd中持久化存储。 

Master(主节点) 

集群管理和控制节点,基本上kubernetes集群的所有控制命令都发给它,它来负责具体的执行过程 

高可用集群需要配置三台Master 

Master节点运行着以下进程: 

  ● kubernetes api server提供了http rest接口的关键服务进程,是kubernetes里所有资源增、删、改、查等操作的唯一入口,也是集群控制的进程入口; 

  ● kubernetes controller manager是kubernetes里所有资源对象的自动化控制中心; 

  ● kubernetes scheduler负责资源调度Pod调度的进程。 

在每个Master节点上还需启动一个etcd服务,用来保存所有资源对象的数据,在etcd中存储的时候以minion的方式存储 

Node(节点) 

在kubernetes集群中,除了master节点,其他节点都被称为node节点,在早期版本被称为minion 

node是kubernetes集群的工作负载节点,node节点可为物理机,也可为虚拟机,每个node都会被master分配一些工作负载(docker容器),其上的工作负载会被master主动转移到其他节点上去。 

Node节点上运行着的进程 

  ● kubelet负责Pod对应的容器的创建,启停等任务,同时与matser节点密切协作,实现集群管理基本功能; 

  ● kube-proxy实现kubernetes service的通信与负载均衡机制; 

  ● docker engine docker引擎,负责本机的容器创建和管理。 

node节点会动态的添加到kubernetes集群,由kubelet负责向master进行注册; 

注册成功后kubelet会向master汇报自身情况,包括操作系统,docker版本,机器cpu和内存使用 

master会根据Node资源使用进行调度 

如果node长时间不上报,master会判断node失联,状态会变为Not ready,master会触发工作负载转移的流程。 

Pod 

pod是kubernetes最重要也是最基本的概念,包含一个活或多个紧密相关的容器和卷,每个pod都有一个特殊被称为“根容器”的Pause容器, 

Pause容器对应的镜像属于kubernetes平台的一部分 

kubernetes为什么会有pod的概念? 

1.一组容器作为一个单元,我们不好对整体进行判断和有效的操作,如果一个容器宕机,是否看做整体宕机,而pod的状态代表整个容器组的状态; 

2.Pod的多个容器使用pause容器的ip,共享挂载在pause容器的valume,简化了关联容器之间的通信,并很好解决的文件共享问题。 

Service(服务) 

Services也是Kubernetes的基本操作单元,是真实应用服务的抽象,每一个服务后面都有很多对应的容器来支持。 

一个Service可以看作一组提供相同服务的Pod的对外访问接口。 

Service作用于哪些Pod是通过Label Selector来定义的。 

Replication Controller(RC)(pod副本控制器) 

Replication Controller确保任何时候Kubernetes集群中有指定数量的pod副本(replicas)在运行, 如果少于指定数量的pod副本(replicas),Replication Controller会启动新的Container,反之会杀死多余的以保证数量不变。Replication Controller使用预先定义的pod模板创建pods,一旦创建成功,pod 模板和创建的pods没有任何关联,可以修改pod 模板而不会对已创建pods有任何影响,也可以直接更新通过Replication Controller创建的pods 

Volume(存储卷) 

Volume是Pod中能够被多个容器访问的共享目录,这个概念在Kubernetes和Docker中是类似的,Kubernetes的Volume被定义在Pod上,然后被Pod中的容器挂载,Volume的生命周期与Pod相同,Kubernetes支持多种类型的Volume,例如GlusterFS,Ceph等先进的分布式文件系统。 

Label(标签) 

Lable是一个key-value的键值对,需要由用户定义,附加到资源上,例如node,pod,service,rc等,每个资源可以有任意数量的label,同一个label也可以附加到任意的资源对象上,可以在资源创建的时候创建,也可以在资源创建的时候定义,也可以在创建完成后动态添加和删除。对资源创建一个或多个Label可以实现多维度的资源分组管理功能,这样可以更方便的进行资源分配,调度,配置和部署,然后通过Label Seletor查询或者筛选具有某些label的资源。 

Namespace(命名空间) 

Namespace是kubernetes用于实现多租户的资源隔离,将集群内部的容器对象分配到不同的Namespace中,形成逻辑上不同项目的分组,便于共享使用整个集群资源和分别管理。 

 

了解了基本的概念后,我们下面就要开始上手搭建kubernetes的集群了 

搭建kubernetes的集群方法有多种,可以使用kubeadm工具进行安装,可是VV使用之后,感觉并不是很爽,所以还是手搭集群吧 

那么今天为大家带来kubernetes的1.5.2版本的集群搭建 :

 

 

kubernetes 1.5.2集群安装 

一、环境准备

五台centos7系统 

IP地址

主机名

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值