Docker 系列完结

经过这 3~5 天的学习,相信大家都对 Docker 有了一定的了解,希望同学们在学习的过程中一定要动手做一遍,融会贯通。

但技术学习,永无止境。下一步,我们可以开始学习 K8s 了。在介绍它之前,我们先介绍下微服务架构。

本文很多内容参考了阮一峰老师的博客:白话多集群:工具和应用助手

微服务架构

Docker 出现后,大大简化了软件部署,变成只需运行容器镜像。很自然地,开发者就开始考虑,能不能把单体的巨型软件,拆分成为多个组件(即多个容器)部署?

早期的企业级大型应用,通常都是一个巨大的单体软件(monolithic),包含不同功能的多个组件。哪怕只修改一个组件,也需要把整个软件重新部署一次。

现在的实践则是,把较大的功能组件拆分出来,每一个组件都是一个独立的服务,作为一个 Docker 容器单独发布和部署。

于是,单体软件就变成了多个 Docker 容器组成的软件系统,这就是现在流行的"微服务架构"(microservices) 。软件包含多个微服务,每个微服务对应一个 Docker 容器。

容器管理工具 Kubernetes

微服务意味着,每次发布都涉及大量不同的容器,管理它们就成了一种挑战。容器管理工具就应运而生。

各种容器管理工具之中,名气最大的非 Kubernetes 莫属。

它是谷歌开发的一款开源软件,因为词首K​和词尾s​之间有8个字符,所以常常写成 K8s。它已经成为事实上的容器管理标准。

具体来说,它主要有以下功能:

(1)统一的硬件接口。开发者不必关注底层的硬件细节,不管底层服务器有什么差异,都被抽象成统一的操作接口。

(2)自动扩展。它可以根据软件负载情况,快速完成水平扩展。

(3)高可用。当某个容器失败时,它会自动重启或替换掉该容器,保证流量流向可用的节点。

(4)其他功能。它还具有服务发现、负载均衡、资源监控等大量相关功能,同时带有庞大的插件和扩展,以及活跃的社区。

相关教程:云原生 Java 架构师的第一课 K8s + Docker + KubeSphere + DevOps,雷丰阳老师出品

多集群

Kubernetes 的底层就是一组服务器,上面运行着许多容器。每个 Kubernetes 实例,就被称为一个集群(cluster)

普通的软件应用,只要一个集群就够了。但是,出于下面提到的原因,企业级应用往往需要部署在多个集群。

多集群(multi cluster)可以在同一个机房,也可以在不同机房。实际应用中往往是后者,即分布在不同机房,这时如果集群来自不同的云服务商,或者是不同性质的云,就称为"多云"(multicloud)。

多集群的主要考虑如下:

(1)容灾。如果一个集群出问题,那么还有另一个集群,可以保证可用。

(2)隔离。集群之间可以做到非常强的物理隔离,从而实现上层用户(租户)的隔离。

(3)灵活性。多云有助于减少供应商锁定,可以根据需求选择最合适的基础设施和服务。

(4)合规性。不同地区可能有不同的监管要求,多集群可以为每个集群实施更精细的安全策略和访问控制。

多集群的挑战

多集群虽然有上一节的好处,但是复杂性也随之加倍,为使用者带来了许多挑战:

(1)配置和管理复杂性。所有集群需要一致的配置和部署,尽量消除差异。

(2)网络连接和延迟。如何保证不同地理位置的集群,有安全可靠的连接,同时最大限度地减少延迟。

(3)服务发现和负载均衡。某个服务如何发现不同集群中的其他服务,以及如何让不同集群负载均衡。

(4)监控。所有集群的指标和日志,最好汇集在一起,便于集中式监控。

(5)安全和访问控制。多集群的安全策略、访问控制、凭证管理都变得更加复杂,需要仔细规则和逐一设置。

多集群工具及其问题

为了解决上面的挑战,就诞生了专门的多集群管理工具,比如 Argo CD、Rancher Fleet、Karmada 等。

它们可以看作是开发者与 Kubernetes 之间的中间层,解决集群管理的复杂性。

问题是,要使用它们,必须先学会 Kubernetes,再去学习这些工具本身。这是巨大的学习成本,所以多集群工具不是针对应用开发者,而是针对集群管理员

现实中,多集群是高度专业的领域,其他领域的开发者根本看不懂。开发者完成软件开发后,会把应用交给集群管理员,让后者去部署。

这对双方都很麻烦。一方面,开发者不能决定部署策略,也不了解底层资源,许多情况下可能不得不接触容器管理。另一方面,集群管理员会被迫介入应用层,一旦发生底层资源的调整,还需要通知开发者,让其参与进来保证应用的运行。


‍(未完待续…)

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

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

相关文章

【零基础速领】全套AI大模型入门指南(学习路线+PDF文档+面试)

已经有越来越多的人开始认识到学习AI的重要性了!可能是自主的认知,也可能是被身边的人卷的。总之,可能已经没有人不知道人工智能这个概念了,可能人人都已知道ChatGPT了,哪怕他没有用过。 ChatGPT发布后,很…

新书推荐 | Windows server 2022活动目录管理实践(微课版)

掌握 Windows Server 2022 活动目录核心技术:从新手到专家的实战指南 (书籍封面) 书籍介绍 本书专为社会各界专业人士量身打造,深入剖析了 Windows Server 2022 活动目录的核心技术精髓与业界最佳实践策略。它紧密围绕活动目录配…

DevExpress WinForms v24.1新版亮点:升级的HTML CSS支持

DevExpress WinForms拥有180组件和UI库,能为Windows Forms平台创建具有影响力的业务解决方案。DevExpress WinForms能完美构建流畅、美观且易于使用的应用程序,无论是Office风格的界面,还是分析处理大批量的业务数据,它都能轻松胜…

下载Kafka 3.0.0教程

1、Kafka 3.0.0下载地址 Apache Kafka 2、往下拉,查找3.0.0版本点击下载

一款开源的Windows系统优化工具Dism++

下载地址:Release Dism 10.1.1002.2 Chuyu-Team/Dism-Multi-language GitHub 下载解压到文件,现在基本都是64位的操作系统了,就直接打开Dismx64.exe即可使用。 部分功能截图一览: 给刚装的系统处理一些优化还是什么方便的&#…

Keysight 是德E4990A Agilent E4991A阻抗分析仪

Keysight 是德E4990A Agilent E4991A阻抗分析仪 主要特性与技术指标5 种频率选件;20 Hz 至 10/20/30/50/120 MHz,可升级0.08%(0.045% 典型值)基本阻抗测量精度25 m? 至 40 M? 宽阻抗测量范围(10% 测量精度范围&…

安泰功率放大器在超声行业中的应用有哪些

超声技术是一种在医疗、工业、科学等领域广泛应用的非侵入性、高分辨率的检测和成像技术。功率放大器在超声领域中扮演着至关重要的角色,它们不仅仅是信号的增强器,更是推动超声技术发展的关键组件。下面西安安泰电子官网将深入介绍功率放大器在超声行业…

Leading SAFe规模化大规模敏捷认证

在当今瞬息万变的商业环境中,Scrum敏捷已经成为企业转型、提升竞争力的关键战略之一。然而,如何有效地将敏捷应用于大规模组织中,推动企业级的业务敏捷转型?这是许多领导者正在面临的挑战。Leading SAFe 规模化敏捷领导者业务敏捷…

【踩坑】Gradle依赖下载问题解决:stributions/gradle-8.10-bin.zip failed: timeout (10000ms)

在构建项目时,Gradle 默认会从 https://services.gradle.org/distributions/ 下载对应版本的 Gradle 包。由于网络问题,这个过程可能非常缓慢,甚至会出现下载失败的情况。为了解决这一问题,我将 gradle-wrapper.properties 文件中…

我的AI工具箱Tauri版-MoYin文本转语音

本教程基于自研的AI工具箱Tauri版进行MoYinTTS文本转语音服务。 进入软件后可以直接搜索 MoYinTTS 或者依次点击 Python音频技术/音频tools 进入该模块。 进入模块之后需要进行基础角色配置。 使用方法,依次选择文件路径输入和输出路径,然后点击保存配置…

直流斩波电路

目录 1. 降压斩波电路(Buck Converter) 2. 升压斩波电路(Boost Converter) 3. 升降压斩波电路(Buck-Boost Converter) 4. Cuk斩波电路(Cuk Converter) 直流斩波电路是一种将直流…

Linux上Qt安装相关的内容及在QtCreator使用QChart模块需要的配置

引言 下面是Ubuntu上Qt安装相关的内容及在QtCreator使用QChart模块需要的配置。 关于Qt安装及环境 Qt的模块 查看已经安装的模块 sudo apt search qt5-安装新的模块 sudo apt install qt5-svg # 安装Qt SVG模块3.查看qt已经安装了哪些模块 dpkg -l | grep libqt安装qt,…

从零到一,监控网关上网设置教程

要让监控网关成功连接互联网,需要正确配置网络设置。监控网关通常位于本地局域网(LAN)或广域网(WAN)中,用于连接摄像头、传感器等监控设备,并通过网络上传数据到远程服务器或云平台。以下是监控…

C++ List (带你一篇文章搞定C++中的List类)

感谢大佬的光临各位,希望和大家一起进步,望得到你的三连,互三支持,一起进步 数据结构习题_LaNzikinh篮子的博客-CSDN博客 初阶数据结构_LaNzikinh篮子的博客-CSDN博客 收入专栏:C_LaNzikinh篮子的博客-CSDN博客 其他专…

9.1 溪降技术:游泳

目录 9.1 游泳概述观看视频课程电子书:游泳防御性游泳姿势**身体姿势** 积极游泳姿势**身体姿势** 总结 9.1 游泳 概述 深潭游泳 对于峡谷探险者来说,游泳是一项核心技能。我们的游泳水平和自信心将在很大程度上决定我们的路线选择。在这一阶段&#xff…

【Head-DETR系列(7)】DETR 代码分析

在nuscens数据集上, Results and Models BackboneModelLr schdMem (GB)Inf time (fps)box APConfigDownloadR-50DETR150e7.940.1configmodel | log 我们先看检测器 /mmdetection-2.28.2/mmdet/models/detectors/detr.py def forward_train(self,img,img_metas,gt_…

后台数据管理系统 - 项目架构设计-Vue3+axios+Element-plus(0918)

十二、首页 layout 架子 [element-plus 菜单] 基本架子拆解 架子组件列表&#xff1a; el-container el-aside 左侧 el-menu 左侧边栏菜单 el-container 右侧 el-header 右侧头部 el-dropdown el-main 右侧主体 router-view <script setup> import {Management,Pr…

【C++篇】C++类与对象深度解析(三):类的默认成员函数详解

文章目录 【C篇】C类与对象深度解析&#xff08;三&#xff09;前言4. 运算符重载基本概念4.1 运算符重载的基本概念4.2 重载运算符的规则4.3 成员函数重载运算符4.4 运算符重载的优先级与结合性4.5 运算符重载中的限制与特殊情况4.5.1 不能创建新的操作符4.5.2 无法重载的运算…

影刀RPE学习——自动化

下载网址&#xff1a;影刀RPA - 影刀官网 (yingdao.com) 傻瓜式安装进入界面&#xff1a; 官方教程&#xff1a;影刀RPA零基础入门教程&#xff08;2024最新版&#xff09;&#xff1a;01 引入课-影刀初相识_哔哩哔哩_bilibili

我的AI工具箱Tauri版-VideoMusicCheckpointLouver音乐卡点百叶窗视频制作

本教程基于自研的AI工具箱Tauri版进行VideoMusicCheckpointLouver音乐卡点百叶窗视频制作。 视频样片《队长小翼》《沖田浩之-燃えてヒーロー》百叶窗卡点视频 《队长小翼》《沖田浩之-燃えてヒーロー》百叶窗卡点视频 该模块没有任何消耗。需要提前准备好响应的素材 该模块没…