初识kubernetes

news2025/1/20 3:37:04

初识kubernetes

1.应用部署方式演变

在部署应用程序的方式上,主要经历了三个时代:

传统部署:互联网早期,会直接将应用程序部署在物理机上

  • 优点:简单,不需要其它技术的参与
  • 缺点:不能为应用程序定义资源使用边界,很难合理地分配计算资源,而且程序之间容易产生影响

虚拟化部署:可以在一台物理机上运行多个虚拟机,每个虚拟机都是独立的一个环境

  • 优点:程序环境不会相互产生影响,提供了一定程度的安全性
  • 缺点:增加了操作系统,浪费了部分资源

容器化部署:与虚拟化类似,但是共享了操作系统

  • 优点:
    可以保证每个容器拥有自己的文件系统、CPU、内存、进程空间等
    运行应用程序所需要的资源都被容器包装,并和底层基础架构解耦
    容器化的应用程序可以跨云服务商、跨Linux操作系统发行版进行部署

2.kubernetes简介

kubernetes的本质是一组服务器集群,它可以在集群的每个节点上运行特定的程序,来对节点中的容器进行管理。目的是实现资源管理的自动化,主要提供了如下的主要功能:

  • 自我修复:一旦某一个容器崩溃,能够在1秒中左右迅速启动新的容器
  • 弹性伸缩:可以根据需要,自动对集群中正在运行的容器数量进行调整
  • 服务发现:服务可以通过自动发现的形式找到它所依赖的服务
  • 负载均衡:如果一个服务起动了多个容器,能够自动实现请求的负载均衡
  • 版本回退:如果发现新发布的程序版本有问题,可以立即回退到原来的版本
  • 存储编排:可以根据容器自身的需求自动创建存储卷

概念

  • Master:集群控制节点,每个集群需要至少一个master节点负责集群的管控
  • Node:工作负载节点,由master分配容器到这些node工作节点上,然后node节点上的docker负责容器的运行
  • Pod:kubernetes的最小控制单元,容器都是运行在pod中的,一个pod中可以有1个或者多个容器
  • Controller:控制器,通过它来实现对pod的管理,比如启动pod、停止pod、伸缩pod的数量等等
  • Service:pod对外服务的统一入口,下面可以维护者同一类的多个pod
  • Label:标签,用于对pod进行分类,同一类pod会拥有相同的标签
  • NameSpace:命名空间,用来隔离pod的运行环境

组件

一个kubernetes集群主要是由控制节点(master)、工作节点(node)构成,每个节点上都会安装不同的组件。

master:集群的控制平面,负责集群的决策 ( 管理 )

 1. ApiServer : 资源操作的唯一入口,接收用户输入的命令,提供认证、授权、API注册和发现等机制
 2. Scheduler : 负责集群资源调度,按照预定的调度策略将Pod调度到相应的node节点上
 3. ControllerManager : 负责维护集群的状态,比如程序部署安排、故障检测、自动扩展、滚动更新等
 4. Etcd :负责存储集群中各种资源对象的信息

node:集群的数据平面,负责为容器提供运行环境 ( 干活 )

 5. Kubelet : 负责维护容器的生命周期,即通过控制docker,来创建、更新、销毁容器
 6. KubeProxy : 负责提供集群内部的服务发现和负载均衡
 7. Docker : 负责节点上容器的各种操作

在这里插入图片描述
下面,以部署一个nginx服务来说明kubernetes系统各个组件调用关系:

  1. 首先要明确,一旦kubernetes环境启动之后,master和node都会将自身的信息存储到etcd数据库中
  2. 一个nginx服务的安装请求会首先被发送到master节点的apiServer组件
  3. apiServer组件会调用scheduler组件来决定到底应该把这个服务安装到哪个node节点上在此时,它会从etcd中读取各个node节点的信息,然后按照一定的算法进行选择,并将结果告知apiServer
  4. apiServer调用controller-manager去调度Node节点安装nginx服务
  5. kubelet接收到指令后,会通知docker,然后由docker来启动一个nginx的pod
    pod是kubernetes的最小操作单元,容器必须跑在pod中至此,
  6. 一个nginx服务就运行了,如果需要访问nginx,就需要通过kube-proxy来对pod产生访问的代理

这样,外界用户就可以访问集群中的nginx服务了

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

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

相关文章

汽车牌照目标检测(Python代码)

1.数据集 Chinese City Parking Dataset 2.代码流程: 代码的主要流程如下: 导入所需的库和模块,包括警告过滤、数据处理、数据可视化等。 创建用于显示样本图像的子图。 从数据集中加载样本图像并显示在子图中。 提取样本图像的元数据&…

2023HAS华为分析师大会:华为认证推动数字化转型向前发展

4月19日,华为数字化人才成熟度模型正式作为TM Forum TOD (Tech Organization Design)标准文档对外发布。该模型由华为联合TMF组织、运营商客户专家学者共同研发,旨在帮助企业从组织、人才、文化维度进行评估,指导人才发展。 在2023华为分析师…

基于混沌集成决策树的电能质量复合扰动识别(Matlab代码实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…

【mongoose】vue3+vite使用mongoose | mongoose7.0使用

前言 注意: 个人认为中文文档仅适合学习参考,英文文档才真正适合项目中使用因为中文文档可能没有同步官网最新文档。比如中文文档版本是5.x,但官网最新版文档是7.x,api已不支持回调,改为Promise,若使用了…

mysql入门:ddl,dml,dql,dcl语句基本操作介绍

mysql入门 数据库相关概念介绍什么是数据库sql语句简介sql语句分类: ddl语句:ddl:数据库 库的创建查找:ddl:数据库查询数据库创建ddl:数据库删除 ddl:数据库 表 的操作ddl表操作:查询ddl 表操作——创建mysql数据类型d…

数据库管理工具【dbForge Tools for Oracle】更新!赶快来看~

Devart 提供包括Oracle、SQL Server、MySQL、PostgreSQL、InterBase以及Firebird在内的专业数据库远程管理软件,dbForge Studio for MySQL是一个在Windows平台被广泛使用的MySQL客户端,它能够使MySQL开发人员和管理人员在一个方便的环境中与他人一起完成…

SpringBoot——整合MyBatis

前情回顾: 在开始介绍SpringBoot整合MyBatis之前,我们先来复习一下在Spring中整合MyBaits是如何来做的。其中的核心思想是将MyBatis中的SqlSession对象交给Spring去管理,并且Spring提供了一个Maper接口扫描器对象去完成为Mapper接口创建动态…

Java 中常见的加密算法,DES、3DES、AES、RSA

加密算法是一种将数据转换为不可读形式的算法,以保护数据的机密性和完整性。加密算法被广泛应用于计算机网络、数据库、电子商务等领域,用于保护敏感数据的安全性,如用户密码、信用卡信息、医疗记录等。在 Java 中,有许多常见的加…

【GigaGAN论文总结】Scaling up GANs for Text-to-Image Synthesis

【GigaGAN论文总结】Scaling up GANs for Text-to-Image Synthesis 1、论点2、贡献3、方法概览Sample-adaptive kernel selectionInterleaving attention with convolutionGenerator designDiscriminator designMulti-scale input, multi-scale output adversarial lossMatchin…

高性能ADC/DAC FMC子卡推出-FMC164

FMC164 子卡集成 4 通道 1Gsps 采样率,16 位 高性能ADC采样,板载4 通道1.25Gsps 16 位DA。板载时钟芯片 HMC7044,可以提供 JESD204B所需要的各种时钟。具有同步/触发功能,模拟信号采用 SSMC 射频连接器输入和输出。板载时钟芯片为…

ant-design实现树的穿梭框,穿梭后右侧是已选树(二)

根据上一篇目标一,进一步实现树的穿梭框 主要内容: 基于ant-design树的穿梭框,实现穿梭后右侧是已选树,(当前antd右侧只有一个层级) 理想的树的穿梭框: 左边是完整的树,右边是已选的树&#x…

Java面试知识点(全)- DB mysql面试知识点

[Java面试知识点(全) 导航: https://nanxiang.blog.csdn.net/article/details/130640392 注:随时更新 SQL优化 r m y s q l q u e r y ( " S E L E C T u s e r n a m e F R O M u s e r W H E R E s i g n u p d a t e > ′ r mysql_query(…

美国原油CFD价格波动受到哪些因素影响?

经过多年的发展,石油技术已经从煤炭转向原油作为主要能源,这种商品用于各种产品,包括汽油、塑料、药品等。因此,它的价值很高,美国原油CFD价格变动时全世界都在关注。对于交易者来说,美国原油CFD价格波动性…

从零开始Vue3+Element Plus的后台管理系统(五)——尝试多种图标ICON方案iconify

iconfont是过去使用较多的图标方案,后来更倾向于使用SVG,因为SVG更灵活兼容性更好。在最近的几个Vue2项目中,因为强调功能弱化设计所以直接用Element UI自带的图标即可满足需求。 Element Plus的图标库相对Element UI更加丰富,然…

flac格式如何转mp3?这几种方法快收藏起来吧

将FLAC格式转换为MP3格式,可以使用一些转换工具,如优速音频处理器等,也可以使用其他专业音频转换软件。FLAC是一种无损音频编码格式,通常用于保留原始音频质量,但相应的文件大小较大。而MP3是一种有损压缩音频编码格式…

MFC类继承实现CEdit自绘文字颜色,边框,背景色

效果 新建一个继承于CEdit的类CMyEdit 在他的窗体OnNcPaint函数中实现绘制边框,它所响应的消息是WM_NCPAINT void CMyEdit::OnNcPaint() {// TODO: 在此处添加消息处理程序代码// 不为绘图消息调用 CEdit::OnNcPaint()////执行默认的窗体处理过程Default();

linux环境安装使用FastDFS,FastDHT详解

01-简介 GitHub:happyfish100 (YuQing) GitHub FastDFS高性能的分布式文件系统,主要功能包含文件的存储、同步、访问(上传和下载),特别适用于以文件为主体的网络站点(图片分享和视频分享)。 Fa…

2023年Java面试正确姿势(1000+面试题附答案解析)

前言 2023 跳槽不迷茫,大家可以先收藏再看,后续跳槽都能用上的! 一键获取最新java文档。 Java程序员绝大部分工作的时间都是增删改查,很多人觉得这项工作没什么技术含量,任何一件事情都要站在不同的角度去考虑&#xf…

shell的数组

数组定义方法 方法一:数组名( value0 value1 value2 ...) 方法二:数组名([0]value [1]value [2]value...) 方法三:列表名"value0 value1 value2 ..." 数组名($列表名&…

【WLAN从入门到精通-基础篇】

WLAN定义和基本架构 本文参考https://forum.huawei.com/enterprise/zh/thread/580888898454831104 1. WLAN定义 WLAN的全称是Wireless Local Area Network,中文含义是无线局域网,WLAN的定义有广义和狭义两种:广义上讲WLAN是以各种无线电波…