阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

Kubernetes集群概述/体系结构/相关核心概念

508次阅读
没有评论

共计 2845 个字符,预计需要花费 8 分钟才能阅读完成。

Kubernetes 是什么?

业界简称为:K8S,是首字母和末尾之母之间有 8 个字母,所以叫 K8S,不知为何这样起名?

1、它是一个全新的基于容器技术的分布式架构方案。Kubernetes 是谷歌严格保密十几年的秘密武器 —Borg 的一个开源版本,据说在 GG 员工都签署了保密协议,即使离职也不能泄露机密(业界大数据框架:Hadoop,也是受 GG 公开文献启发 GFS 和 BigTable)。

2、若我们的系统设计遵循 Kubernetes 的设计思想,可以说那些传统系统架构中和业务没有多大关系的底层代码或功能模块,可以消除,我们不必再为应用的负载均衡和部署等问题而烦恼

3、Kubernetes 是一个开放的开放平台。有 Google、RedHat 等开源基础设施的大碗们共同发起了一个为:CNCF(Cloud Native Computing Foundation) 的基金会。

4、Kubernetes 是一个完备的分布式系统支撑平台。

为什么要用 Kubernetes?

1、可以和微服务完美结构,构成微服务架构。

2、K8S 内的服务的弹性扩容机制可以应对突发流量

3、K8S 架构的灵活及超强的横向扩容能力可以提高我们的竞争力

4、基于容器技术,构建公司 DevOps、CI/CD、持续交付,缩短开发周期

Kuberntes 的体系架构

下图为 K8S 的体系架构

Kubernetes 集群概述 / 体系结构 / 相关核心概念

Kubernetes 的主要核心组件:

在上图中的左侧节点则是 Master 节点,右侧是 Node 节点:

Master 节点的主要作用是控制和管理整个集群的状态并接收外部用户的操作请求。它主要运行三中服务进程,分别是:kube-apiserver、kube-scheduler、kube-controller-manager, 具体作用如下:

kube-apiserver

kube-apiserver 是整个 Kubernetes 集群的核心,也是部署 Kubernetes 最先启动的组件,其他所有的组件都会在启动时接入这个服务,主要是提供资源操作的统一入口,通过 RestAPI 将集群的状态信息存储 etcd 集群。

kube-scheduler

主要负责资源的调度,根据集群当前的资源使用情况及复杂的调度算法将 Pod 调度到适合运行或特定的服务节点上。

kube-controller-manager

kube-controller-manager 服务负责管理 K8S 集群中各种资源的状态,诸如:故障检测、滚动更新等。

Node 节点是实际执行用户任务的地方,其上有两种服务进程,分别是:kube-proxy 和 kubelet,具体作用如下:

kube-proxy

设计 kube-proxy 服务是为了解决从 Node 节点中的 Pod 对 K8S 特定 Service 访问时的路由问题,每当 K8S 创建一个 Service 的 Endpoint,各个 Node 节点上的 kube-proxy 进程就会修改节点系统的 iptables 规则,使得当该节点上的 Pod 访问相应 Endpoint 的虚拟 Ip 和端口时,请求会被分发到正确的节点和容器进行处理

kubelet

kubelet 直接负责节点上容器的生命周期,同时也负责 Volume 和网络(CNI)的管理

其他的核心组件:

etcd:保存集群的状态,整个集群的状态数据都存于此,因此构建 K8S 集群时,etcd 也最好是集群的,同时要对 etcd 的数据进行备份

Heapster:提供资源监控

kube-dns:负责为整个集群提供 DNS 服务

Kuberntes 核心概念

在 Kubernetes 集群中,服务器的角色分为 Master 和 Node, 此两种不同角色分别运行着不同的服务进程。

Pod

Pod 表示的是一个或多个容器的组合,它是 K8S 最基本的调度和操作单位,每个 Pod 里都有一个特殊的容器,被称为:”根容器“的 pause 容器。

在同一个 Pod 中的容器总会被调度和部署到同一个节点上,并共享相同的数据卷和网络栈,也即是 Pod 里的多个容器能够同时挂载同一个外部数据卷,这对于部署紧密的服务是十分有作用的。

Label

Labe(标签)其实是一个 K - V 的键值对形式,用于标记 Pod、Node、Namespace 或其他任何资源对象的键值对。主要用于在查询或选择时对资源进行条件过滤。

Service

Service 是 Kubernetes 集群对外提供的用户业务功能抽象,表现为一个独立的虚拟 IP 和端口,其实这个 Service 就是我们经常提起的微服务架构中的一个微服务。

其实它的后端是由单个 Pod 或多个 Pod 的副本组成的容器结合,有 K8S 提供实际访问的路由能力。通过这层,K8S 能够在后端完成诸如:服务和切换、负载均衡、依据资源情况的节点调度等。

那这个 Service 和 RC、Pod 是什么关系呢?见下图

Kubernetes 集群概述 / 体系结构 / 相关核心概念

若公司有上百个或上千 Service,这些 Service 之间有链路调用关系,那如何进行监控这些服务呢?

一是在这些 service 中打印日志信息,通过 ELK 或 EFK 进行收集分析,二是通过服务网格来构建(Service Mesh)监控

RC(Replication Controller)

RC 是在早期 K8S 版本中用于管理 Pod 副本对象的概念,其实其也包含了 ReplicaSet 和 Deployment 的作用,但不具有部署版本管理的功能,所以在 1.2 以后的版本中,建议使用 Deployment 和 ReplicaSet 替代它,不过优先使用 Deployment

Deployment

Deployment 是 K8S 在 1.2 版本引入的新概念,用于更好的解决 Pod 的编排问题。其实 Deployment 在内部使用了 Replica Set 来实现的,也即是说:Deployment 所保存的部署描述信息是用来创建 ReplicaSet 对象,每个 Deployment 对象都会对应一个运行着的 ReplicaSet 对象,后者实际管理 Pod 副本的运行:

大致方向如下:

Deployment->ReplicaSet->Pod

Ingress

Ingress 本质上是一个负载均衡,它被用来将集群中的用户服务通过统一的 IP 地址暴露给外界。

Namespace

Namespace(命名空间)在很多情况下用于实现多租户的资源隔离,K8S 中除了 Node 和 Label 以外的大多数资源,例如:Pod,Service、LimitRange 等,都是在创建特定 Namespace 里的(default 是默认的 namespace)

sts(StatefulSet)

STS 是在 Kubernetes1.5 版本前称为 PetSet,用于部署和运行有持久化状态服务的方式。在 K8S 中,Pod 的管理对象 RC、Deployment、Job 都是面向无状态的服务,利用 STS 可以部署 MySQL 集群、MongoDB 集群、ZK 集群、Redis 集群等

Job

Job 是用来批量执行一次性任务。每个 Job 同样会对应一个或多个 Pod,这些 Pod 执行是有 时间限制的,程序结束后,Job 将被标记为成功或失败。

Volume

Volume(存储卷)是 Pod 中能够被多个容器访问的共享目录。

正文完
星哥玩云-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-21发表,共计2845字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中

星哥玩云

星哥玩云
星哥玩云
分享互联网知识
用户数
4
文章数
19351
评论数
4
阅读量
7982147
文章搜索
热门文章
星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛 NAS-6:抖音视频同步工具,视频下载自动下载保存 前言 各位玩 NAS 的朋友好,我是星哥!...
星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

星哥带你玩飞牛 NAS-3:安装飞牛 NAS 后的很有必要的操作 前言 如果你已经有了飞牛 NAS 系统,之前...
我把用了20年的360安全卫士卸载了

我把用了20年的360安全卫士卸载了

我把用了 20 年的 360 安全卫士卸载了 是的,正如标题你看到的。 原因 偷摸安装自家的软件 莫名其妙安装...
再见zabbix!轻量级自建服务器监控神器在Linux 的完整部署指南

再见zabbix!轻量级自建服务器监控神器在Linux 的完整部署指南

再见 zabbix!轻量级自建服务器监控神器在 Linux 的完整部署指南 在日常运维中,服务器监控是绕不开的...
飞牛NAS中安装Navidrome音乐文件中文标签乱码问题解决、安装FntermX终端

飞牛NAS中安装Navidrome音乐文件中文标签乱码问题解决、安装FntermX终端

飞牛 NAS 中安装 Navidrome 音乐文件中文标签乱码问题解决、安装 FntermX 终端 问题背景 ...
阿里云CDN
阿里云CDN-提高用户访问的响应速度和成功率
随机文章
恶意团伙利用 PHP-FPM 未授权访问漏洞发起大规模攻击

恶意团伙利用 PHP-FPM 未授权访问漏洞发起大规模攻击

恶意团伙利用 PHP-FPM 未授权访问漏洞发起大规模攻击 PHP-FPM(FastCGl Process M...
星哥带你玩飞牛NAS硬件03:五盘位+N5105+双网口的成品NAS值得入手吗

星哥带你玩飞牛NAS硬件03:五盘位+N5105+双网口的成品NAS值得入手吗

星哥带你玩飞牛 NAS 硬件 03:五盘位 +N5105+ 双网口的成品 NAS 值得入手吗 前言 大家好,我...
在Windows系统中通过VMware安装苹果macOS15

在Windows系统中通过VMware安装苹果macOS15

在 Windows 系统中通过 VMware 安装苹果 macOS15 许多开发者和爱好者希望在 Window...
300元就能买到的”小钢炮”?惠普7L四盘位小主机解析

300元就能买到的”小钢炮”?惠普7L四盘位小主机解析

  300 元就能买到的 ” 小钢炮 ”?惠普 7L 四盘位小主机解析 最近...
CSDN,你是老太太喝粥——无齿下流!

CSDN,你是老太太喝粥——无齿下流!

CSDN,你是老太太喝粥——无齿下流! 大家好,我是星哥,今天才思枯竭,不写技术文章了!来吐槽一下 CSDN。...

免费图片视频管理工具让灵感库告别混乱

一言一句话
-「
手气不错
多服务器管理神器 Nexterm 横空出世!NAS/Win/Linux 通吃,SSH/VNC/RDP 一站式搞定

多服务器管理神器 Nexterm 横空出世!NAS/Win/Linux 通吃,SSH/VNC/RDP 一站式搞定

多服务器管理神器 Nexterm 横空出世!NAS/Win/Linux 通吃,SSH/VNC/RDP 一站式搞...
星哥带你玩飞牛NAS硬件02:某鱼6张左右就可拿下5盘位的飞牛圣体NAS

星哥带你玩飞牛NAS硬件02:某鱼6张左右就可拿下5盘位的飞牛圣体NAS

星哥带你玩飞牛 NAS 硬件 02:某鱼 6 张左右就可拿下 5 盘位的飞牛圣体 NAS 前言 大家好,我是星...
星哥带你玩飞牛NAS-16:飞牛云NAS换桌面,fndesk图标管理神器上线!

星哥带你玩飞牛NAS-16:飞牛云NAS换桌面,fndesk图标管理神器上线!

  星哥带你玩飞牛 NAS-16:飞牛云 NAS 换桌面,fndesk 图标管理神器上线! 引言 哈...
安装并使用谷歌AI编程工具Antigravity(亲测有效)

安装并使用谷歌AI编程工具Antigravity(亲测有效)

  安装并使用谷歌 AI 编程工具 Antigravity(亲测有效) 引言 Antigravity...
颠覆 AI 开发效率!开源工具一站式管控 30+大模型ApiKey,秘钥付费+负载均衡全搞定

颠覆 AI 开发效率!开源工具一站式管控 30+大模型ApiKey,秘钥付费+负载均衡全搞定

  颠覆 AI 开发效率!开源工具一站式管控 30+ 大模型 ApiKey,秘钥付费 + 负载均衡全...