Kubernetes入门-Kubernetes集群构成

目录

前言

控制面板节点与工作节点

控制面板节点

工作节点

被托管的Kubernetes

用kubectl命令行工具管理Kubernetes


前言

  • 前面说过,Kubernetes是云的操作系统
  • 顾名思义,它位于应用和基础设施之间
  • Kubernetes运行在基础设施上,而应用运行在Kubernetes上,如下图所示
  • 上图显示了在4种不同的基础设施平台上运行的4个Kubernetes装置
  • 由于Kubernetes抽象了底层的基础设施,因此上图顶部的应用可以在任何一个Kubernetes装置上运行,也可以在不同的Kubernetes装置之间进行迁移
  • 我们称一个Kubernetes装置为Kubernetes集群(cluster)
  • 关于上图,还有两点需要说明一下
  • 首先,一个Kubernetes集群跨越多种基础设施的情况并不常见
  • 例如,你不可能看到单个Kubernetes集群跨多个云,也不太可能看到集群跨本地和公有云
  • 这主要是受网络速度和可靠性的制约
  • Kubernetes需要集群中的节点通过可靠的低延迟网络进行连接
  • 其次,尽管Kubernetes可以在许多平台上运行,但容器有更严格的要求:
  • Windows容器只能在有Windows节点的Kubernetes集群上运行
  • Linux容器只能在有Linux节点的集群上运行
  • 这同样适用于CPU架构——为ARM64架构构建的容器不会运行在Aarch64集群节点上

控制面板节点与工作节点

  • 一个Kubernetes集群是一台或多台安装了Kubernetes的机器
  • 这些机器可以是物理服务器、虚拟机(VM)、云实例、笔记本电脑、树莓派等
  • 在这些机器上安装Kubernetes,并将它们连接在一起,就形成了一个Kubernetes集群
  • 然后,就可以将应用部署到这个集群中
  • 我们通常把Kubernetes集群中的机器称为节点(node)
  • 说到节点,Kubernetes集群有两种类型的节点:
  • 1-控制面板节点
  • 2-工作节点
  • 在一些旧文档中可能会将控制面板节点称为“主节点”
  • 这个术语已被包容性命名倡议淘汰,这个倡议旨在避免在技术项目中使用可能有害的语言
  • 控制面板节点托管着内部Kubernetes服务,而工作节点则是运行用户应用的地方
  • 下图展示的是一个由6个节点组成的Kubernetes集群,它有3个控制面板节点和3个工作节点
  • 推荐的做法是,所有的用户应用都只在工作节点上运行,让控制面板节点运行Kubernetes系统服务

控制面板节点

  • 控制面板节点托管着内部Kubernetes系统服务,这些服务是确保Kubernetes正常运行不可或缺的,统称为控制面板
  • 控制面板可能听起来太过专业,但它不过是一种花哨的说法,意思是Kubernetes的大脑
  • 考虑到这一点,一种很好的做法是配多个控制面板节点来实现高可用性(high availability,HA)
  • 这样一来,如果其中一个出现故障,集群仍然可以继续运行
  • 在真实世界中,生产集群中通常有3或5个控制面板节点,并且它们分散在不同的故障域中
  • 不要把它们放在同一个有故障的电源上的同一个漏水的空调装置下的同一块地砖上
  • 下图是一个有3个节点的高可用控制面板,每个节点都在一个独立的故障域中,有独立的网络和电力基础设施等
  • 控制面板节点运行以下服务,它们共同组成了控制面板(集群的大脑):
  • 1-API服务器
  • 2-调度器
  • 3-存储器
  • 4-云控制器(cloud controller)
  • ……
  • API服务器是Kubernetes集群中你唯一能够直接交互的部分
  • 例如,当你向集群发送的命令被送到API服务器时,你收到的响应也都来自API服务器
  • 调度器选择在哪些工作节点上运行用户应用
  • 存储器是存储集群和所有应用的状态的地方
  • 云控制器允许Kubernetes与云服务(如存储和负载均衡器)集成
  • 后面的实践案例会把云负载均衡器与部署到Kubernetes集群的应用整合在一起

工作节点

  • 工作节点是运行用户应用的地方,可以是Linux工作节点,也可以是Windows工作节点
  • 一个集群中可同时包含Linux工作节点和Windows工作节点,Linux应用运行在Linux工作节点上,而Windows应用运行在Windows工作节点上
  • 如下图所示
  • 所有工作节点都在运行下列服务,值得了解一下:
  • 1-kubelet
  • 2-容器运行时
  • kubelet是主Kubernetes代理(agent)
  • 它将工作节点加到集群中,并与控制面板进行通信,如接收任务和报告任务的状态
  • 容器运行时负责启动和停止容器
  • Kubernetes最初使用的容器运行时是Docker,但Kubernetes于2016年引入了容器运行时接口,让这一层变成可插拔的
  • 因此,可供选择的容器运行时有很多
  • Containerd是简化版的Docker,是当今Kubernetes集群最流行的容器运行时
  • Containerd全面支持Docker创建的容器镜像

被托管的Kubernetes

  • 被托管的Kubernetes是一种消费模型,指云提供商向你出租一个Kubernetes集群,有时我们称其为Kubernetes即服务
  • 被托管的Kubernetes是获得Kubernetes最简单的方法之一
  • 在托管模式下,云提供商构建了Kubernetes集群,拥有控制面板,并负责以下所有事项:
  • 1-控制面板的性能
  • 2-控制面板的可用性
  • 3-控制面板的更新
  • 而用户通常要负责以下事项:
  • 1-工作节点
  • 2-用户应用
  • 3-支付费用
  • 被托管的Kubernetes的基本架构如下图所示
  • 大多数云提供商都有托管的Kubernetes服务

用kubectl命令行工具管理Kubernetes

  • Kubernetes集群的大部分日常管理可以通过Kubernetes命令行工具kubectl完成
  • 管理任务包括部署和管理应用,检查集群和应用的健康状况,以及执行对集群和应用的更新
  • 你可以获得适用于Linux、macOS、Windows和各种ARM/ Raspberry Pi相关的操作系统的kubectl
  • 在后面会看到如何安装这个工具
  • 下面的kubectl命令列出了集群中的所有节点

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【Linux安装Conda环境的详细教程】

🌈个人主页: 程序员不想敲代码啊 🏆CSDN优质创作者,CSDN实力新星,CSDN博客专家 👍点赞⭐评论⭐收藏 🤝希望本文对您有所裨益,如有不足之处,欢迎在评论区提出指正,让我们共…

服务器流量收发测试

文章目录 一、概述二、实现方式一:编码1. 主要流程2. 核心代码3. 布署 三、实现方式二:脚本1.脚本编写2. 新增crontab任务 四、查看结果 一、概述 我们在安装vnStat、wondershaper便想通过实际的数据收发来进行测试。 二、实现方式一:编码 …

外包干了2年,彻底废了...

先说一下自己的情况。大专生,17年通过校招进入湖南某软件公司,干了接近2年的点点点,今年年上旬,感觉自己不能够在这样下去了,长时间呆在一个舒适的环境会让一个人堕落!而我已经在一个企业干了五年的功能测试…

UniAudio 1.5:大型语言模型(LLMs)驱动的音频编解码器

大型语言模型(LLMs)在文本理解和生成方面展示了卓越的能力,但它们不能直接应用于跨模态任务,除非进行微调。本文提出了一种跨模态上下文学习方法,使未进行进一步训练的LLMs能够在少量示例的情况下,无需任何…

面向机电工程和制造项目数字管理-项目一体化解决方案

一、专业面向机电工程和制造项目管理 1、项目范围管理 大多数企业有这样的经历,项目做了很久感觉做不完,就像是个无底洞。项目中哪些该做,哪些不该做,做到什么程度没有一个实际的把控。这里就会涉及到“范围管理”的概念。 2、…

[机器学习算法]决策树

1. 理解决策树的基本概念 决策树是一种监督学习算法,可以用于分类和回归任务。决策树通过一系列规则将数据划分为不同的类别或值。树的每个节点表示一个特征,节点之间的分支表示特征的可能取值,叶节点表示分类或回归结果。 2. 决策树的构建…

【Qt 学习笔记】Qt窗口 | 标准对话框 | 颜色对话框QColorDialog

博客主页:Duck Bro 博客主页系列专栏:Qt 专栏关注博主,后期持续更新系列文章如果有错误感谢请大家批评指出,及时修改感谢大家点赞👍收藏⭐评论✍ Qt窗口 | 标准对话框 | 颜色对话框QColorDialog 文章编号:…

IFM易福门SV7500SV4200涡街流量计型号都是进口的。

IFM易福门SV7500SV4200涡街流量计型号都是进口的。工程余料。

【docker安装rabbitmq】

docker安装rabbitmq 1.查阅rabbitmq的Dokcer Hub官方说明 rabbitmq地址,因为我们需要使用的是带管理界面的rabbitmq服务。所以我们需要下载的rabbitmq:management镜像 docker pull rabbitmq:management2.启动rabbitmq 2.1.快速启动 One of the important thing…

新火种AI|实属罕见!四大AI顶流同台,有哪些关键信息值得关注?

作者:小岩 编辑:彩云 在有着“AI春晚”之称的2024年智源大会上,非常难得的一幕出现了:当下国内的四大AI顶流公司——月之暗面,百川智能,智谱AI,面壁智能齐聚一堂,十分罕见的同台了…

PHP转Go系列 | 变量常量的使用姿势

大家好&#xff0c;我是码农先森。 变量 在 PHP 语言中&#xff0c;初始化变量虽然只有一行&#xff0c;其实包含了两步&#xff0c;一是声明变量&#xff0c;二是赋值给变量&#xff0c;同一个变量可以任意再赋值任何类型的数据。 <?php// 初始化变量 $name "man…

白酒:酒文化的地域特色与差异

中国的白酒文化&#xff0c;作为一种深深植根于人们生活中的文化现象&#xff0c;其发展历程深受地域特色的影响&#xff0c;从而形成了丰富多样的地域特色与差异。云仓酒庄的豪迈白酒&#xff0c;作为中国白酒的品牌&#xff0c;其背后所蕴含的地域特色与差异更是值得我们去探…

【pytorch01】简单回归问题

1.梯度下降&#xff08;Gradient Descent&#xff09; y x 2 ∗ s i n ( x ) yx^{2}*sin(x) yx2∗sin(x) y ′ 2 ∗ x ∗ s i n ( x ) x 2 ∗ c o s ( x ) y2*x*sin(x) x^{2}*cos(x) y′2∗x∗sin(x)x2∗cos(x) 求最小值要求导 梯度下降定义&#xff1a;梯度下降要迭代计…

Python接口测试实战之搭建自动化测试框架

&#x1f345; 视频学习&#xff1a;文末有免费的配套视频可观看 &#x1f345; 点击文末小卡片&#xff0c;免费获取软件测试全套资料&#xff0c;资料在手&#xff0c;涨薪更快 一.数据分离:从Excel中读取数据 之前的用例中&#xff0c;数据直接写在代码文件里&#xff0c;不…

【UML用户指南】-19-对基本行为建模-用例图

目录 1、组成结构 2、表示法 3、一般用法 3.1、对主题的语境建模 3.2、对主题的需求建模 4、常用建模技术 4.1、对系统的语境建模 4.1.1、设计过程 4.2、对系统的需求建模 4.2.1、设计过程&#xff1a; 5、正向工程 UML 中的用例图是对系统的动态方面建模的 5 种图之…

202483读书笔记|《牵牛花浮世无篱笆:千代尼俳句250》——被红叶染红的只有一侧山坡之山 啊,单恋

202483读书笔记|《牵牛花浮世无篱笆&#xff1a;千代尼俳句250》——被红叶染红的只有一侧山坡之山 啊&#xff0c;单恋 春之句夏之句秋之句冬之句 历史读过的俳句列表: 202318读书笔记|《芭蕉芜村一茶&#xff1a;俳句三圣新译300》——樱花——让一整个春夜亮起来&#xff0…

idea的右边栏maven不见了(丢了)解决方案以及idea无法识别maven项目

前言 众所周知&#xff0c;idea是java开发中不可缺少的利器&#xff0c;但是由于功能过多&#xff0c;导致奇怪的问题也很多 问题汇总 idea的右边栏maven丢了 idea无法识别maven项目 对应的解决办法 idea的右边栏maven丢了 原因可能是被自己手动移除了 或者 项目没被正确…

实现rtos操作系统 【一】基本任务切换实现

一、实现 PendSV 中断 PendSV是什么 我们先引用《Cortex-M3权威指南》对PendSV的介绍&#xff1a; PendSV&#xff08;可悬起的系统调用&#xff09;&#xff0c;它是一种CPU系统级别的异常&#xff0c;它可以像普通外设中断一样被悬起&#xff0c;而不会像SVC服务那样&#…

百度一下首页制作(HTML+CSS)

部分代码展示&#xff1a; <!DOCTYPE html> <html> <head><meta charset"utf-8"><title>百度一下&#xff0c;你就知道</title><style type"text/css">/*清除元素默认性质*/body { margin: 0;padding: 0;list-…

“鸿蒙开发之图片下载”--案例问题整理

鸿蒙开发之图片下载 关于以上连接中案例demo使用问题整理如下图 而且在写这个案例的时候记得添加权限 "requestPermissions":[{"name" : "ohos.permission.INTERNET"}]