一、Kubernetes 的简介

1、Kubernetes 的发展历史

1.1、前提

Infrastructure as a Service:基础设施即服务

目前阿里、腾讯、百度、华为主要的云计算方向为外部提供服务的对象,主要以此类服务为主,
以 OpenStack 为底层框架进行二次开发;

OpenStack:

比较复杂,是由十几个不同社区的开发的框架组合在一起协同工作。

platform as a service:平台即服务

底层可以为 Iaas 也可以为物理机。
“敏捷市场的到来”--(边瞄准边开枪)
目前代表的有 Docker 和 Kubernetes。

优点

学习成本比较低,
部署简单,

Software as a Service:软件即服务

偏向于开发,但底层仍然是基于 PaaS 的。

1.2、发展历程

Docker Swarm

Docker 官方推出的部署集群化容器的管理方案,需要通过下载去部署,可以实现容器的跨物理机的访问,

优点:适用简单(适用中小型企业)

2018年底,国内的云计算公司宣告不再为 Docker Swarm 提供服务,导致国内的中小型企业开始弃用 Docker Swarm 
集群化容器管理工具。最终退出历史的舞台。

Apache Mesos

Mesos是Apache下的开源分布式资源管理框架,它被称为是分布式系统的内核。Mesos最初是由加州大学伯克利分校的
AMPLab开发的,后在Twitter得到广泛使用。
主要使用公司:Twitter Marathon
2019 年 美国西部时间 5 月 2 日下午 7 点,Twitter 公司在旧金山总部举行了一次技术发布会兼 Meetup。会上,
Twitter 计算平台(Twitter Computing Platform)产品与技术负责人 David McLaughlin 正式宣布,Twitter
的基础设施将从 Mesos 全面转向 Kubernetes,导致 Mesos 最终退出历史舞台。

Kubernetes

在这里插入图片描述

Kubernetes 是一个开源的,用于管理云平台中多个主机上的容器化的应用,Kubernetes的目标是让部署容器化的应用简单
并且高效(powerful),Kubernetes提供了应用部署,规划,更新,维护的一种机制。

迭代其他软件的原因:

①、Kubernetes 足够复杂;可以实现多功能,满足更多企业的需求;
②、Kubernetes 是由 Borg 系统重构出,继承了 Borg 各种优点;

Borg 是谷歌内部的大规模集群管理系统,负责对谷歌内部很多核心服务的调度和管理。Borg 的目的是让用户能够不必
但心资源管理的问题,让他们专注于自己的核心业务,并且做到跨多个数据中心的资源利用率最大化。

CNCF(Cloud Native Computing Foundation)云原生基金会
在这里插入图片描述

BrogMaster:一般为奇数个节点,(有利于投票选举);一般为 5 个节点。
交互方式:Borgcfg、command-linetools、web browsers(UI界面)
Paxos:谷歌内部开发的键值对存储数据库,用于存储集群配置信息。
Borglet:负责博格系统和容器化交互的方式,(真正运行任务)

2、Kubernetes

2.1、Kubernetes 的优势

①、轻量级

 在功能一致的情况下与 Apache Mesos 相比较而言比较轻量。

②、开源

 开放源代码,便于软件的二次开发并推广使用。采用 Apache 的开源协议。

③、弹性伸缩

 物理节点:以轻快的方式,只使用一条命令就可以加入一个集群,

④、负载均衡

 通过 IPvs 的方案,将多个不同的容器共享给用户,暴露了接口,运行使用 F5 进行负载调度。

⑤、以Google为背景

 以 Google 为强大的背景,以博格系统为支持,Google 为行业的领导地位。

2.2、Kubernetes 的组件说明

在这里插入图片描述

Master 节点:一般为奇数个(当主节点故障时,便于竞选)
Node 节点:Node 节点故障直接将任务分配至其他节点,或者重新创建新的节点,
一般为 xx 个核心,xx G内存 XX G/T的磁盘容量,xx 处理量的 GPU 资源。

2.3、Kubernetes 的架构

在这里插入图片描述

2.3.1、Kubernetes 组件

①、API (Application Programming Interface)Server:应用程序编程接口服务

	所用处理用户请求的接入方,其核心是 HTTP 协议的 web 服务器,使用 HTTP 协议的 C/S 结构开发,resetful。
采用了双向 HTTP 认证(银行卡),
	作为 Kubernetes 系统的入口,其封装了核心对象的增删改查操作,以 RESTful API 接口方式提供给外部客户
和内部组件调用。维护的 REST 对象持久化到 Etcd 中存储

RESTFUL:

	所有请求的总入口----此后的安全设计均以此为基础,

②、kubectl:用户的命令行管理工具,

③、web UI :通过 B/S 结构,控制访问 Kubernetes 集群,图形化界面

④、scheduler:调度任务

	新建立的 Pod 进行节点 (node) 选择(即分配机器),负责集群的资源调度。组件抽离,可以方便替换成其他调度器

⑤、replication controller:副本控制器,管理容器的期望值

     负责维护集群的状态,比如故障检测、自动扩展、滚动更新等

⑥、node:工作节点

	a、Kubelet:跟内部 CRI(Container Runtime Interface)接口进行交互,跟外部的 API server 进行交互。
Docker 和 Kubernetes 之间的对接者。
 	负责维护容器的生命周期,同时也负责 Volume(CSI)和网络(CNI)的管理;
	b、Kube proxy:通过 Network 接口跟 IPVS iptables 进行交互,创建和删除实现负载均衡功能,将Pod 暴露给外界。
负责为 Service 提供 cluster 内部的服务发现和负载均衡
	c、Pod:内置 Docker ,以附件的方案加入到 kubernetes 中。

⑦、etcd:存储集群的配置信息

     etcd 是基于 raft 算法的分布式键值数据库,etcd集群一般推荐奇数节点.
由 Core OS 公司开发的开源软件,该公司和 Docker 公司为表面兄弟公司,但后面由于发展不一致,转型做 Docker
所需要的的组件。
	etcd 的官方将它定位成一个可信赖【高可用】的分布式键值存储服务,它能够为整个分布式集群存储一些关键数据,协助
分布式集群的正常运转。【配置信息】

Raft算法: 从一开始就被设计成一个易于理解和实现的共识算法。每一个 Raft 集群中都包含多个服务器,在任意时刻,每一台服务器只可能处于 Leader、Follower 以及 Candidate(竞选) 三种状态;在处于正常的状态时,集群中只会存在一个 Leader,其余的服务器都是 Follower。

优点:不需要在双方做任何配置就可以将数据进行共享,再一个物理局域网中。

缺点:资源消耗高,一个对象有可能会接受多次同一个对象。

注意事项

	a、Etcd 的存储引擎在 V2 版本中是 Memory(内存) ,V3 版本中是 Database (硬盘)
	b、推荐在 Kubernetes 集群中使用 Etcd v3,v2 版本已在 Kubernetes v1.11 中弃用

Etcd 的架构:
在这里插入图片描述

	使用 HTTPS 协议 进行 C/S 结构进行开发,OpenStack 使用此架构开发。
	Raft :病毒算法(最终一致算法)
	WAL:预写入日志,现将输入信息写入日志,再修改磁盘信息,

2.3.2、Kubernetes 插件

①、CoreDNS

 为集群内部提供一个私有化的 DNS 服务器(负责整个集群的DNS 服务)

②、Ingress Controller

	为 Kubernetes 中的服务提供外网入口(七层的调度管理[可以识别域名])
	实现方式:ingress-xxx

③、Prometheus

 为整个集群提供资源监控能力(可以自动发现容器)

④、Dashboard

 提供 B/S 的访问体系,允许用户通过 web 进行集群管理及设置,由Kubernetes官方开发

⑤、Federation

 	提供跨可用区的集群,提供不同数据中心的 Kubernetes 集群的管理能力。可以使用一条命令管理不同区域的不同
 的 Kubernetes 集群
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值