当前位置: 首页 > news >正文

Kubernetes系列---Kubernetes 理论知识 | 初识

Kubernetes系列---Kubernetes 理论知识 | 初识

  • 1.K8s 是什么?
  • 2.K8s 特性
  • 3.小拓展(业务升级)
  • 4.K8s 集群架构与组件
    • ①架构拓扑图:
    • ②Master 组件
    • ③Node 组件
  • 五 K8s 核心概念
  • 六 官方提供的三种部署方式
  • 总结

1.K8s 是什么?

Kubernetes 是 Google 在 2014 年开源的一个容器集群管理系统,使用 Go 开发,简称为 K8s,用于容器化应用程序的部署,扩展和管理

K8s 提供了容器编排(yml),资源调度,弹性伸缩,部署管理,服务发现等一系列功能,目标是让部署容器化应用简单高效

K8s 兼容多种容器类型,市场占用率最高,官网:https://kubernetes.io/

2.K8s 特性

自我修复: 在节点故障时替换和重新部署,保证预期的副本数量;杀死健康检查失败的容器(探针),并且在未准备好之前不会处理客户端请求,确保线上服务不中断弹性伸缩: 使用命令(字符界面)或 UI(图形化界面),基于 CPU 使用情况自动快速扩容和缩容应用程序实例,保证应用业务高峰并发时的高可用性;业务低峰时回收资源,以最小成本运行服务自动部署和回滚: K8s 采用滚动更新策略更新应用,一次更新一个 Pod,而不是同时删除所有 Pod,如果更新过程中出现问题,将回滚更改,确保升级不受影响业务服务发现和负载均衡: K8s 为多个容器提供一个统访问入口(内部 IP 地址和一个 DNS 名称),并且负载均衡关联的所有容器,使得用户无需考虑容器 IP 问题机密和配置管理: 管理机密数据和应用程序配置,而不需要把敏感数据暴露在镜像里,提高敏感数据安全性;并可以将一些常用的配置存储在 K8s 中,方便应用程序使用(身份验证:命名空间,逻辑划分权限管理)存储编排: 挂载外部存储系统,无论是来自本地存储,公有云(如 AWS),还是网络存储(如NFS、GlusterFS、Ceph)都作为集群资源的一部分使用, 极大提高存储使用灵活性批处理: 提供一次性任务,周期性任务;满足批量数据处理和分析的场景

3.小拓展(业务升级)

灰度发布(金丝雀):

指在黑与白之间,能够平滑过渡的一种发布方式,灰度发布可以有效保证整体系统的稳定,降低产品升级所影响的用户范围

例如,让一部分用户继续使用产品特性A,一部分用户开始用产品特性B,如果用户对B没有什么反对意见,那么逐渐扩大范围,把所有用户都迁移到B上面来

蓝绿发布:

例如,项目逻辑上分为A/B组,首先把A组从负载均衡中摘除,进行新版本部署,B组继续提供服务

当A组升级完毕,负载均衡重新接入A组,再将B组从负载列表中摘除进行新版本部署,A组重新提供服务

最终,B组完成升级,负载均衡重新接入B组,至此,A/B组皆升级完毕,对外提供服务,达到用户无感知、平滑过渡的效果

滚动发布:

指每次只升级一个或多个服务,升级完成后加入生产环境

不断执行这个过程,直到集群中的全部旧版本升级为新版本

4.K8s 集群架构与组件

①架构拓扑图:

在这里插入图片描述

②Master 组件

1 Kube-apiserver:Kubernetes API,集群的统一入口, 各组件协调者以 RESTful API提供接口服务(支持网站标准协议)所有对象资源的增删改查和监听操作都交给 APIServer 处理后再提交给 Etcd 存储数据2  Kube-controller-manager:处理集群中常规后台任务一个资源对应一个控制器,比如容器资源(pod)挂了,若控制器还存活,则会重新创建该资源,所以修复能力依赖于控制完成controllerManager 负责管理这些控制器3 kube-scheduler:根据调度算法为新创建的 Pod 选择一个 Node 节点,可以任意部署可以部署在同
一个节点上,也可以部署在不同的节点上所有资源的创建不一定都要经过调度器3 etcd:分布式键值存储系统用于保存集群状态数据,比如 Pod、Service 等对象信息

③Node 组件

1 kubelet:kubelet 是 Master 在 Node 节点上的 Agent(代理),管理本机运行容器的生命周期,比如创建容器、Pod 挂载数据卷、下载 secret、获取容器和节点状态等工作kubelet 将每个 Pod 转换成一组容器2 kube-proxy:在 Node 节点上实现 Pod 网络代理维护网络规则和四层负载均衡工作3 docker 或 rocket(容器类型):容器引擎运行容器

五 K8s 核心概念

1  pod *K8s 中最小的部署单元,是一组容器的集合*一个 Pod 中的容器共享网络命名空间,像一个小型局域网一样,所以其中容器之间可以彼此通讯*Pod 是短暂的,因为其一旦故障,会重新创建新的*K8s 管理的基本都是业务,而业务都是跑在 Pod 上2 Controllers(控制器)ReplicaSet:创建资源,确保预期的 Pod 副本数量Deployment:无状态应用部署StatefulSet:有状态应用部署DaemonSet:确保所有 Node 运行同一个 Pod,即管理进程资源Job:一次性任务Cronjob:周期性计划定时任务3 Service对外提供服务,防止 Pod 失联,定义一组 Pod 的访问策略,方便访问4 Label
标签,附加到某个资源上,用于关联对象、查询和筛选5 Namespaces命名空间,将对象逻辑上隔离,用于角色管理和控制
6 Annotations注释,方便阅读

六 官方提供的三种部署方式

1 minikube:
可以在本地快速运行一个单节点的 K8s,用于测试或开发,使用率较少
部署地址:https://kubernetes.io/docs/tasks/tools/2 kubeadm:
提供 kubeadm init(构建 master 端)和 kubeadm join(node 端,连接),用于快速部署 K8s 集群
部署地址:https://kubernetes.io/docs/reference/setup-tools/kubeadm/3 二进制包:
推荐,从官方下载发行版的二进制包,手动部署每个组件,组成 K8s 集群
下载地址:https://github.com/kubernetes/kubernetes/releases

总结

1 k8s的组件
k8s中有两大节点,分别是master节点和node节点,
其中master节点包含apiserver、controller-manager、scheduler
还有一个etcd作为分布式存储,保存了整个集群的状态
node节点中包含kubelet、kube-proxy以及docker等容器引擎
2 k8s的工作流程
k8s的工作流程大致是,运维人员像apiserver发出创建Pod请求,告诉它我想干什么,我的期望是什么
API Server 响应请求,并通过一系列认证授权,把请求存储到etcd
并通知Controller-manager,它会通过API server读取etcd,然后按照所预设的模板去创建Pod,并将pod数据写入etcd
然后Controller-manager 会通过API Server去找Scheduler 为新创建的Pod选择最适合的Node 节点。Scheduler 会通过预算策略在所有Node节点中挑选最优的。
Node 节点中还剩多少资源是通过汇报给API Server 存储在etcd 里,API Server 会调用一个方法找到etcd 里所有Node节点的剩余资源,再对比Pod 所需要的资源,在所有Node 节点中查找哪些Node节点符合要求。
如果都符合,预算策略就交给优选策略处理,优选策略再通过CPU的负载、内存的剩余量等因素选择最合适的Node 节点,并把Pod调度到这个Node节点上运行。
controller manager会通过API Server通知kubelet去创建pod,然后通过kube-proxy中的service对外提供服务接口。

相关文章:

Kubernetes系列---Kubernetes 理论知识 | 初识

Kubernetes系列---Kubernetes 理论知识 | 初识 1.K8s 是什么?2.K8s 特性3.小拓展(业务升级)4.K8s 集群架构与组件①架构拓扑图:②Master 组件③Node 组件 五 K8s 核心概念六 官方提供的三种部署方式总结 1.K8s 是什么&#xff1f…...

KingbaseES 原生XML系列三--XML数据查询函数

KingbaseES 原生XML系列三--XML数据查询函数(EXTRACT,EXTRACTVALUE,EXISTSNODE,XPATH,XPATH_EXISTS,XMLEXISTS) XML的简单使其易于在任何应用程序中读写数据,这使XML很快成为数据交换的一种公共语言。在不同平台下产生的信息,可以很容易加载XML数据到程序…...

【51单片机】点亮一个LED灯(看开发板原理图十分重要)

🎊专栏【51单片机】 🍔喜欢的诗句:更喜岷山千里雪 三军过后尽开颜。 🎆音乐分享【The Right Path】 🥰大一同学小吉,欢迎并且感谢大家指出我的问题🥰 目录 🍔基础内容 &#x1f3f3…...

数据可视化工具 - ECharts以及柱状图的编写

1 快速上手 引入echarts 插件文件到html页面中 <head><meta charset"utf-8"/><title>ECharts</title><!-- step1 引入刚刚下载的 ECharts 文件 --><script src"./echarts.js"></script> </head>准备一个…...

【AI绘画】——Midjourney关键词格式解析(常用参数分享)

目前在AI绘画模型中&#xff0c;Midjourney的效果是公认的top级别&#xff0c;但同时也是相对较难使用的&#xff0c;对小白来说比较难上手&#xff0c;主要就在于Mj没有webui&#xff0c;不能选择参数&#xff0c;怎么找到这些隐藏参数并且触发它是用好Mj的第一步。 今天就来…...

操作符知识点大全(简洁,全面,含使用场景,演示,代码)

目录 一.算术操作符 1.要点&#xff1a; 二.负数原码&#xff0c;反码&#xff0c;补码的互推 1.按位取反操作符&#xff1a;~&#xff08;二进制位&#xff09; 2.原反补互推演示 三.进制位的表示 1.不同进制位的特征&#xff1a; 2.二进制位表示 3.整型的二进制表…...

华工研究生语音课

这门课讲啥 语音蕴含的信息、语音识别的目的 语音的准平稳性、分帧、预加重、时域特征分析&#xff08;能量和过零率&#xff09;、端点检测&#xff08;双门限法&#xff09; 语音的基频及检测&#xff08;主要是自相关法、野点的处理&#xff09; 声音的产生过程&#xf…...

KingbaseES 原生XML系列二 -- XML数据操作函数

KingbaseES 原生XML系列二--XML数据操作函数(DELETEXML,APPENDCHILDXML,INSERTCHILDXML,INSERTCHILDXMLAFTER,INSERTCHILDXMLBEFORE,INSERTXMLAFTER,INSERTXMLBEFORE,UPDATEXML) XML的简单使其易于在任何应用程序中读写数据&#xff0c;这使XML很快成为数据交换的一种公共语言。…...

【Flink】DataStream API使用之源算子(Source)

源算子 创建环境之后&#xff0c;就可以构建数据的业务处理逻辑了&#xff0c;Flink可以从各种来源获取数据&#xff0c;然后构建DataStream进项转换。一般将数据的输入来源称为数据源&#xff08;data source&#xff09;&#xff0c;而读取数据的算子就叫做源算子&#xff08…...

树莓派硬件介绍及配件选择

目录 树莓派Datasheet下载地址&#xff1a; Raspberry 4B 外观图&#xff1a; 技术规格书&#xff1a; 性能介绍&#xff1a; 树莓派配件选用 电源的选用&#xff1a; 树莓派外壳选用&#xff1a; 内存卡/U盘选用 树莓派Datasheet下载地址&#xff1a; Raspberry Pi …...

O2OA (翱途) 平台 V8.0 发布新增数据台账能力

亲爱的小伙伴们&#xff0c;O2OA (翱途) 平台开发团队经过几个月的持续努力&#xff0c;实现功能的新增、优化以及问题的修复。2023 年度 V8.0 版本已正式发布。欢迎大家到 O2OA 的官网上下载进行体验&#xff0c;也希望大家在藕粉社区里多提宝贵建议。本篇我们先为大家介绍应用…...

数控解锁怎么解 数控系统解锁解密

Amazon Fargate 在中国区正式落地&#xff0c;因 数控解锁使用 Serverless 架构&#xff0c;更加适合对性能要求不敏感的服务使用&#xff0c;Pyroscope 是一款基于 Golang 开发的应用程序性能分析工具&#xff0c;Pyroscope 的服务端为无状态服务且性能要求不敏感&#xff0c;…...

3.0 响应式系统的设计与实现

1、Proxy代理对象 Proxy用于对一个普通对象代理&#xff0c;实现对象的拦截和自定义&#xff0c;如拦截其赋值、枚举、函数调用等。里面包含了很多组捕获器&#xff08;trap&#xff09;&#xff0c;在代理对象执行相应的操作时捕获&#xff0c;然后在内部实现自定义。 const…...

Rust 快速入门60分① 看完这篇就能写代码了

Rust 一门赋予每个人构建可靠且高效软件能力的语言https://hannyang.blog.csdn.net/article/details/130467813?spm1001.2014.3001.5502关于Rust安装等内容请参考上文链接&#xff0c;写完上文就在考虑写点关于Rust的入门文章&#xff0c;本专辑将直接从Rust基础入门内容开始讲…...

【5.JS基础-JavaScript的DOM操作】

1 认识DOM和BOM 所以我们学习DOM&#xff0c;就是在学习如何通过JavaScript对文档进行操作的&#xff1b; DOM Tree的理解 DOM的学习顺序 DOM的继承关系图 2 document对象 3 节点&#xff08;Node&#xff09;之间的导航&#xff08;navigator&#xff09; 4 元素&#xff0…...

【大数据之Hadoop】二十九、HDFS存储优化

纠删码和异构存储测试需要5台虚拟机。准备另外一套5台服务器集群。 环境准备&#xff1a; &#xff08;1&#xff09;克隆hadoop105为hadoop106&#xff0c;修改ip地址和hostname&#xff0c;然后重启。 vim /etc/sysconfig/network-scripts/ifcfg-ens33 vim /etc/hostname r…...

SuperMap GIS基础产品组件GIS FAQ集锦(2)

SuperMap GIS基础产品组件GIS FAQ集锦&#xff08;2&#xff09; 【iObjects for Spark】读取GDB参数该如何填写&#xff1f; 【解决办法】可参考以下示例&#xff1a; val GDB_params new util.HashMapString, java.io.Serializable GDB_params.put(FeatureRDDProviderParam…...

C语言printf()函数中整型格式说明符详解

每个整型在printf()函数中对应不同的格式说明符,以实现该整型的打印输出。格式说明符必须使用小写。现在让我们看看各个整型及其格式说明符: 短整型(short) 10进制:%hd16进制:无负数格式,正数使用%hx8进制:无负数格式,正数使用%ho c short s 34; printf("%hd", s…...

阿里云服务器地域和可用区怎么选择合适?

阿里云服务器地域和可用区怎么选择&#xff1f;地域是指云服务器所在物理数据中心的位置&#xff0c;地域选择就近选择&#xff0c;访客距离地域所在城市越近网络延迟越低&#xff0c;速度就越快&#xff1b;可用区是指同一个地域下&#xff0c;网络和电力相互独立的区域&#…...

Java序列化引发的血案

1、引言 阿里巴巴Java开发手册在第一章节&#xff0c;编程规约中OOP规约的第15条提到&#xff1a; **【强制】**序列化类新增属性时&#xff0c;请不要修改serialVersionUID字段&#xff0c;避免反序列失败&#xff1b;如果完全不兼容升级&#xff0c;避免反序列化混乱&#x…...

XML Group端口详解

在XML数据映射过程中&#xff0c;经常需要对数据进行分组聚合操作。例如&#xff0c;当处理包含多个物料明细的XML文件时&#xff0c;可能需要将相同物料号的明细归为一组&#xff0c;或对相同物料号的数量进行求和计算。传统实现方式通常需要编写脚本代码&#xff0c;增加了开…...

龙虎榜——20250610

上证指数放量收阴线&#xff0c;个股多数下跌&#xff0c;盘中受消息影响大幅波动。 深证指数放量收阴线形成顶分型&#xff0c;指数短线有调整的需求&#xff0c;大概需要一两天。 2025年6月10日龙虎榜行业方向分析 1. 金融科技 代表标的&#xff1a;御银股份、雄帝科技 驱动…...

React Native 开发环境搭建(全平台详解)

React Native 开发环境搭建&#xff08;全平台详解&#xff09; 在开始使用 React Native 开发移动应用之前&#xff0c;正确设置开发环境是至关重要的一步。本文将为你提供一份全面的指南&#xff0c;涵盖 macOS 和 Windows 平台的配置步骤&#xff0c;如何在 Android 和 iOS…...

CMake基础:构建流程详解

目录 1.CMake构建过程的基本流程 2.CMake构建的具体步骤 2.1.创建构建目录 2.2.使用 CMake 生成构建文件 2.3.编译和构建 2.4.清理构建文件 2.5.重新配置和构建 3.跨平台构建示例 4.工具链与交叉编译 5.CMake构建后的项目结构解析 5.1.CMake构建后的目录结构 5.2.构…...

【论文笔记】若干矿井粉尘检测算法概述

总的来说&#xff0c;传统机器学习、传统机器学习与深度学习的结合、LSTM等算法所需要的数据集来源于矿井传感器测量的粉尘浓度&#xff0c;通过建立回归模型来预测未来矿井的粉尘浓度。传统机器学习算法性能易受数据中极端值的影响。YOLO等计算机视觉算法所需要的数据集来源于…...

NXP S32K146 T-Box 携手 SD NAND(贴片式TF卡):驱动汽车智能革新的黄金组合

在汽车智能化的汹涌浪潮中&#xff0c;车辆不再仅仅是传统的交通工具&#xff0c;而是逐步演变为高度智能的移动终端。这一转变的核心支撑&#xff0c;来自于车内关键技术的深度融合与协同创新。车载远程信息处理盒&#xff08;T-Box&#xff09;方案&#xff1a;NXP S32K146 与…...

Golang——6、指针和结构体

指针和结构体 1、指针1.1、指针地址和指针类型1.2、指针取值1.3、new和make 2、结构体2.1、type关键字的使用2.2、结构体的定义和初始化2.3、结构体方法和接收者2.4、给任意类型添加方法2.5、结构体的匿名字段2.6、嵌套结构体2.7、嵌套匿名结构体2.8、结构体的继承 3、结构体与…...

[大语言模型]在个人电脑上部署ollama 并进行管理,最后配置AI程序开发助手.

ollama官网: 下载 https://ollama.com/ 安装 查看可以使用的模型 https://ollama.com/search 例如 https://ollama.com/library/deepseek-r1/tags # deepseek-r1:7bollama pull deepseek-r1:7b改token数量为409622 16384 ollama命令说明 ollama serve #&#xff1a…...

论文阅读:LLM4Drive: A Survey of Large Language Models for Autonomous Driving

地址&#xff1a;LLM4Drive: A Survey of Large Language Models for Autonomous Driving 摘要翻译 自动驾驶技术作为推动交通和城市出行变革的催化剂&#xff0c;正从基于规则的系统向数据驱动策略转变。传统的模块化系统受限于级联模块间的累积误差和缺乏灵活性的预设规则。…...

leetcode73-矩阵置零

leetcode 73 思路 记录 0 元素的位置&#xff1a;遍历整个矩阵&#xff0c;找出所有值为 0 的元素&#xff0c;并将它们的坐标记录在数组zeroPosition中置零操作&#xff1a;遍历记录的所有 0 元素位置&#xff0c;将每个位置对应的行和列的所有元素置为 0 具体步骤 初始化…...