1、Kubernetes 概述和架构

news2024/12/23 17:36:49

目录

 

一、基本介绍

二、kubernetes功能和架构

2.1、 概述

2.2 、功能

(1)自动装箱

(2)自我修复(自愈能力)

(3)水平扩展

(4)服务发现

(5)滚动更新

(6)版本回退

(7)密钥和配置管理

(8)存储编排

(9)批处理

2.3、 k8s 集群架构

三、k8s集群架构节点角色功能

3.1、控制平面组件(Master Node)

3.1.1、kube-apiserver

3.1.2、etcd

3.1.3、kube-scheduler

3.1.4、kube-controller-manager

3.2、Node 组件(Worker Node)

3.2.1、kubelet

3.2.2、kube-proxy

3.2.3、Container Runtime


一、基本介绍

kubernetes,简称K8s,是用8代替8个字符“ubernete”而成的缩写。是一个开源的,用于管理云平台中多个主机上的容器化的应用,Kubernetes的目标是让部署容器化的应用简单并且高效,Kubernetes提供了应用部署,规划,更新,维护的一种机制。

传统的应用部署方式是通过插件或脚本来安装应用。这样做的缺点是应用的运行、配置、管理、所有生存周期将与当前操作系统绑定,这样做并不利于应用的升级更新/回滚等操作,当然也可以通过创建虚拟机的方式来实现某些功能,但是虚拟机非常重,并不利于可移植性。

新的方式是通过部署容器方式实现,每个容器之间互相隔离,每个容器有自己的文件系统,容器之间进程不会相互影响,能区分计算资源。相对于虚拟机,容器能快速部署,由于容器与底层设施、机器文件系统解耦的,所以它能在不同云、不同版本操作系统间进行迁移。

容器占用资源少、部署快,每个应用可以被打包成一个容器镜像,每个应用与容器间成一对一关系也使容器有更大优势,使用容器可以在build或release的阶段,为应用创建容器镜像,因为每个应用不需要与其余的应用堆栈组合,也不依赖于生产环境基础结构,这使得从研发到测试、生产能提供一致环境。类似地,容器比虚拟机轻量、更“透明”,这更便于监控和管理。

Kubernetes是Google开源的一个容器编排引擎,它支持自动化部署、大规模可伸缩、应用容器化管理。在生产环境中部署一个应用程序时,通常要部署该应用的多个实例以便对应用请求进行负载均衡。在Kubernetes中,我们可以创建多个容器,每个容器里面运行一个应用实例,然后通过内置的负载均衡策略,实现对这一组应用实例的管理、发现、访问,而这些细节都不需要运维人员去进行复杂的手工配置和处理。

二、kubernetes功能和架构

2.1、 概述

Kubernetes 是一个轻便的和可扩展的开源平台,用于管理容器化应用和服务。通过Kubernetes 能够进行应用的自动化部署和扩缩容。在 Kubernetes 中,会将组成应用的容器组合成一个逻辑单元以更易管理和发现。

2.2 、功能

(1)自动装箱

基于容器对应用运行环境的资源配置要求自动部署应用容器

(2)自我修复(自愈能力)

当容器失败时,会对容器进行重启。当所部署的 Node 节点有问题时,会对容器进行重新部署和重新调度 。当容器未通过监控检查时,会关闭此容器直到容器正常运行时,才会对外提供服务

(3)水平扩展

通过简单的命令、用户 UI 界面或基于 CPU 等资源使用情况,对应用容器进行规模扩大或规模剪裁

(4)服务发现

用户不需使用额外的服务发现机制,就能够基于 Kubernetes 自身能力实现服务发现和负载均衡

(5)滚动更新

可以根据应用的变化,对应用容器运行的应用,进行一次性或批量式更新

(6)版本回退

可以根据应用部署情况,对应用容器运行的应用,进行历史版本即时回退

(7)密钥和配置管理

在不需要重新构建镜像的情况下,可以部署和更新密钥和应用配置,类似热部署。

(8)存储编排

自动实现存储系统挂载及应用,特别对有状态应用实现数据持久化非常重要存储系统可以来自于本地目录、网络存储(NFS、Gluster、Ceph 等)、公共云存储服务

(9)批处理

提供一次性任务,定时任务;满足批量数据处理和分析的场景。

2.3、 k8s 集群架构

三、k8s集群架构节点角色功能

一个正常运行的k8s组件会包含如下一些组件:

可以分成两类:控制平面组件和Node组件。

3.1、控制平面组件(Master Node)

控制平面组件会为集群做出全局决策,比如资源的调度。 以及检测和响应集群事件,例如当不满足部署的 replicas 字段时, 要启动新的 pod)。Master Node 由 API Server、Scheduler、ClusterState Store(ETCD 数据库)和Controller MangerServer 所组成。

3.1.1、kube-apiserver

负责公开Kubernetes API,负责处理接受请求的工作。 API 服务器是集群统一入口,以 restful 风格进行操作,同时交给 etcd 存储,同时提供认证、授权、访问控制、API 注册和发现等机制。

3.1.2、etcd

一致且高度可用的键值存储,用作 Kubernetes 的所有集群数据的后台数据库,用于保存集群中的相关数据。

3.1.3、kube-scheduler

节点调度,负责监视新创建的、未指定运行节点(node)的 Pods, 并选择节点来让 Pod 在上面运行。

3.1.4、kube-controller-manager

负责运行控制器进程,处理集群中常规后台任务,一个资源对应一个控制器。包括:

  • 节点控制器(Node Controller):负责在节点出现故障时进行通知和响应。
  • 任务控制器(Job Controller):监测代表一次性任务的 Job 对象,然后创建 Pods 来运行这些任务直至完成
  • 端点分片控制器(EndpointSlice controller):填充端点分片(EndpointSlice)对象(以提供 Service 和 Pod 之间的链接)。
  • 服务账号控制器(ServiceAccount controller):为新的命名空间创建默认的服务账号(ServiceAccount)。

3.2、Node 组件(Worker Node)

节点组件会在每个节点上运行,负责维护运行的 Pod 并提供 Kubernetes 运行环境。Worker Node有kubelet、kube-proxy等组成。

3.2.1、kubelet

kubelet 会在集群中每个节点(node)上运行。 它保证容器(containers)都运行在 Pod 中。

kubelet 接收一组通过各类机制提供给它的 PodSpecs, 确保这些 PodSpecs 中描述的容器处于运行状态且健康。 kubelet 不会管理不是由 Kubernetes 创建的容器。

3.2.2、kube-proxy

kube-proxy 是集群中每个节点(node)上所运行的网络代理, 实现 Kubernetes 服务(Service) 概念的一部分。

kube-proxy 维护节点上的一些网络规则, 这些网络规则会允许从集群内部或外部的网络会话与 Pod 进行网络通信。

3.2.3、Container Runtime

负责运行容器的软件。Kubernetes 支持许多容器运行环境,例如 containerd、 CRI-O 以及 Kubernetes CRI (容器运行环境接口) 的其他任何实现。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/744800.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

磷铁环压脱机液压站比例阀放大器

冷轧热镀锌线液压系统比例阀放大器 热轧带钢步进梁式加热炉液压系统比例阀放大器 热轧带钢液压系统比例阀放大器 板坏连铸液压系统比例阀放大器 钢包精炼炉液压系统比例阀放大器 磷铁环压脱机液压站比例阀放大器 热轧带钢液压系统是一种用于热轧带钢生产的液压系统。它的…

校招失败后,在小公司熬了 2 年终于进了华为,竭尽全力....

其实两年前校招的时候就往华为投了一次简历,结果很明显凉了,随后这个理想就被暂时放下了,但是这个种子一直埋在心里这两年除了工作以外,也会坚持写博客,也因此结识了很多优秀的小伙伴,从他们身上学到了特别…

LiveGBS流媒体平台GB/T28181功能-支持UDP、TCP被动、TCP主动模式流传输模式之间有什么区别?

LiveGBS流媒体平台-国标流媒体服务几种流传输模式UDP、TCP被动、TCP主动模式区别是什么 1、背景1、GB28181流传输模式1.1、UDP1.2、TCP 被动1.3、TCP 主动 2、切换流传输模式2.1、编辑2.2、下拉切换 3、搭建GB28181视频直播平台 1、背景 国标GB28181协议中,视频流到…

什么是人工智能中的数据标注?

人工智能数据标注是对文本、视频、图像等元数据进行标注的过程,标记好的数据将用于训练机器学习的模型。常见的数据标注类型有文本标注、语义分割和图像视频标注。这些经标注的训练数据集可用于训练自动驾驶、聊天机器人、翻译系统、智能客服和搜索引擎等人工智能应…

LeetCode[239]滑动窗口最大值

难度:Hard 题目: 给你一个整数数组 nums,有一个大小为 k 的滑动窗口从数组的最左侧移动到数组的最右侧。你只可以看到在滑动窗口内的 k 个数字。滑动窗口每次只向右移动一位。 返回 滑动窗口中的最大值 。 示例 1: 输入&#xf…

强化学习课程笔记一

强化学习基础概念及MDP算法,如图1所示 这张ppt上就展现了一节课全部的内容: Sets中有表示状态的S、有表示动作的A(s)、有表示奖励的R(s,a),如图二所示 也介绍了概率分布(Probability distribution) 其中State transi…

2D组态:智慧生物质发电厂组态监控系统

进入21世纪以来,我国面临的能源安全和环境生态保护问题日趋严峻,可再生能源已经成为能源发展战略的重要组成部分以及能源转型的重要发展方向。根据可再生能源应用的不同领域,电力系统建设正在发生结构性转变,可再生能源发电已开始…

【技能实训】DMS数据挖掘项目-Day06

文章目录 任务6【任务6.5】编写物流数据分析类【任务6.6】创建物流数据分析测试类,测试任务6.5-6.6中的程序,演示物流信息的采集、分析及打印输出 任务6 【任务6.1】创建数据分析接口 在com.qst.dms.gather 下创建接口IDataAnalyse.java 【任务6.2】创…

【多线程进阶】多线程进阶学习(高并发、线程池、多线程使用场景)

文章目录 1、线程基础知识1.1、线程和进程线程和进程的区别? 1.2、并行与并发并行与并发有什么区别? 1.3、线程的创建方式创建线程的方式有哪些?刚才你说过,使用runnable和callable都可以创建线程,它们有什么区别呢&am…

MySQL数值

1.整数类型 TINYINT:非常小的整数,存储空间为1字节, 取值范围:有符号:-128---127,无符号:0---255 SMALLINT:小整数,存储空间为2字节 取值范围:有符号&#…

岩土工程振动在线监测:以道路桥梁基础为例

岩土工程振动在线监测:以道路桥梁基础为例 使用振弦传感器、采集仪和在线监测系统进行岩土工程监测:以道路桥梁基础振动监测为例 一个应用振弦传感器、振弦采集仪和在线监测系统构成的岩土工程监测案例是道路桥梁基础的振动监测。 在道路桥梁基础的振动…

力扣 455. 分发饼干

题目来源&#xff1a;https://leetcode.cn/problems/assign-cookies/description/ C题解1&#xff1a;将大饼干优先大胃口的孩子。 class Solution { public:int findContentChildren(vector<int>& g, vector<int>& s) {sort(g.begin(), g.end());sort(s.…

代码随想录二刷 day50 | 动态规划 之 123.买卖股票的最佳时机III 188.买卖股票的最佳时机IV

day50 123.买卖股票的最佳时机III1.确定dp数组以及下标的含义2.确定递推公式3.dp数组如何初始化4.确定遍历顺序5.举例推导dp数组 188.买卖股票的最佳时机IV1.确定dp数组以及下标的含义2.确定递推公式4.dp数组如何初始化4.确定遍历顺序5.举例推导dp数组 123.买卖股票的最佳时机I…

java.lang.UnsatisfiedLinkError: no opencv_java410 in java.library.path

-Djava.library.pathhome/zwf/eclipse-workspace/DIPS_YTPC/lib/opencv-410/x64/

Element el-table 列表自定义样式

效果图 页面代码块 <el-tableref"multipleTable":data"tableData"tooltip-effect"dark"style"width: 100%"selection-change"handleSelectionChange"><el-table-columntype"selection"width"55&qu…

设计模式【行为型】-- 模板方法模式

模板方法模式&#xff08;Template method pattern&#xff09; 模板方法模式是一种行为型设计模式&#xff0c;它定义了一个操作中的算法骨架&#xff0c;将一些步骤的具体实现延迟到子类中。模板方法使得子类可以在不改变算法结构的情况下&#xff0c;重新定义算法中的某些步…

hydra详解(仅供学习参考)

一、概述。 Hydra是一款非常强大的渗透工具&#xff0c;由著名的黑客组织THC开发的一款开源工具。 二、使用方法。 hybra基础语法&#xff1a; hydra 参数 IP 服务 参数&#xff1a; -l login 小写&#xff0c;指定用户名进行破解 -L file 大写&#xff0c;指定用户的用户名…

uniapp uni实人认证

uni实人认证依赖 目前仅支持App平台。 h5端活体人脸检测&#xff0c;使用的是百度云的h5人脸实名认证 使用要求 1、app端 在使用前&#xff0c;请确保您已注册DCloud账号&#xff0c;并已完成实名认证。 然后需要按文档开通服务 业务开通 | uni-app官网 2、h5端 在使用前…

工程系统管理 工程项目管理系统源码 工程项目各模块及其功能点清单

工程项目各模块及其功能点清单 一、系统管理 1、数据字典&#xff1a;实现对数据字典标签的增删改查操作 2、编码管理&#xff1a;实现对系统编码的增删改查操作 3、用户管理&#xff1a;管理和查看用户角色 4、菜单管理&#xff1a;实现对系统菜单的增删改查操…

FFmpeg、x264以及fdk-aac 编译整合

接上文 FFMPEG 编译流程(极客版) 编译 fdk-aac libfdk-aac version:0.1.5 下载 wget http://jaist.dl.sourceforge.net/project/opencore-amr/fdk-aac/fdk-aac-0.1.5.tar.gz#!/bin/bash NDK/home/maqi/Desktop/android-ndk-r20b # 这里需要替换成你本地的 NDK 路径&#x…