K8s 小白入门|从电影配乐谈起,聊聊容器编排和 K8s

来听听音乐

电影,是我们生活中的重要调味剂。

配乐,是电影中不可或缺的一部分。

有的时候,配乐可以跟剧情共振,让你按捺不住自己的情绪,或眼含热泪、或慷慨激昂、或人仰马翻、或怅然若失;

有的时候,音乐竟然成为电影的主题,《音乐之声》、《海上钢琴师》、《波西米亚狂想曲》、《爱乐之城》、还有你的《Once》…

那么,你或许好奇:电影的配乐是怎么制作的?

通常来说,电影配乐流程主要包括定点(Spotting)、音画对位(Syncing)、制作打点轨道(Click Track)、作曲(Writing,此阶段通常只写出缩谱)、录音(Recording)等。

Spotting、Syncing、Click Track 等最终是为了让音乐可以“无缝”的融合到剧情中。

而 Writing 主要由作曲家根据粗剪画面进行创作。

原始曲谱是这样的:

配器后录音是这样的:

后期合成到电影里是这样的:


你应该感受到了,原始曲子跟最终配乐还是有很大差距的,在 Writing 跟 Recording 中间好像缺少了什么东西。

对,配器,就是综合运用各种乐器,使得原始曲子的情感更加饱满,以便进一步烘托剧情。

配器,英文名称叫 Orchestration。

你可能意识到我要聊啥了,

对,聊啥音乐啊,聊容器编排(Container Orchestration)。

云到底是如何构建的?

互联网,是我们生活中重要的调味剂。

云计算,是互联网不可或缺的一部分。

曾几何时,云计算还是个新兴概念,各路大佬或开口必言、或嗤之以鼻、或故作中肯、或一马当先;

事到如今,云计算已成为基础设施,刷抖音、看小红书、发 Tweet、秀公里数、还有你的 Soul…

那么,你或许好奇,云到底是如何构建的?

通常来说,搭建一朵云包括选址、拿批文、买地、盖机房、拉电线、拉网线、装空调、买机架,这些完工后就有了一个 IDC;之后是买机器、插电、连网、装机、虚拟化,这些完工后就有了一个 IaaS。

基础设施的变革,催生了上层多种新的技术的演进或诞生,DevOps、Microservice、Container、IaC等等。其中 Container 的出现彻底解决了应用对环境的依赖问题,毫不夸张的说,Container 使得应用与环境彻底解耦,从而使得基础设施可以“无差别”将所有应用进行统一管理,这无疑使得规模化的管理应用成为可能。

而这样的管理平台便应运而生,Apache Mesos, Docker Swarm, Kubernetes, Nomad, Amazon ECS, Microsoft Azure Container Service, Red Hat OpenShift 等等。计算机领域喜欢从别的领域借鉴概念,所以这次借鉴音乐中的配器,我们把容器管理行为称为编排(Orchestration)。
总之,云计算、容器化使得编排成为必然。

那么,容器编排包含哪些内容?

“容器编排”(Container Orchestration)是一种自动化容器生命周期管理的过程,主要处理的是在大型系统和动态环境中部署、管理和扩展容器的过程。容器编排提供了一种管理和协调容器化应用程序及其依赖关系的方式,同时确保它们在安全、高效和可靠的情况下运行。在云计算和微服务架构的背景下,容器编排成为了非常关键的一环。以下是一些容器编排的主要功能:

  1. 部署和更新:容器编排系统可以自动化地部署和更新容器。这意味着当你需要部署新的服务或者更新现有的服务时,只需要通过编排系统的API或者界面,就可以轻松地完成部署和更新的过程。
  2. 自动扩展:容器编排系统可以根据系统的负载自动增加或减少容器的数量。例如,如果系统的负载增加,编排系统可以自动启动更多的容器来处理增加的请求;反之,如果系统的负载减少,编排系统可以关闭一些不必要的容器,以节省资源。
  3. 服务发现和负载均衡:容器编排系统通常会为容器提供服务发现和负载均衡的功能。这意味着在有多个容器提供相同服务的情况下,这些系统可以自动地将请求平均分配给各个容器,以防止某个容器过载。
  4. 健康检查和故障恢复:如果一个容器出现问题,容器编排系统可以自动检测到,并采取相应的措施,如重启该容器,或者将请求转发到其他健康的容器。
  5. 资源管理:容器编排系统还可以管理系统的资源,如CPU、内存、网络和存储等。它可以根据容器的需求和系统的可用资源,智能地分配资源给各个容器。
  6. 日志和监控:通过收集和分析容器的日志和指标,容器编排系统可以帮助开发者和运维人员了解系统的状态和性能,及时发现并解决问题。
    容器编排是现代云原生架构的关键组成部分,对于构建和管理依赖于容器化的复杂分布式应用程序至关重要。

那么,最流行的容器编排工具是哪个?

Kubernestes: 生产可用的容器编排工具

K8s 设计理念是怎样的?

Kubernetes 的设计理念是将容器化应用程序的部署、扩展和管理自动化,从而提高生产效率和应用程序的可靠性。以下是 Kubernetes 设计理念的主要特点:

  1. 自我修复:Kubernetes 可以自动检测和修复应用程序的故障,包括容器崩溃、节点故障和网络问题等。这可以最大程度地减少手动干预的需要,提高应用程序的可靠性。
  2. 自动扩展:Kubernetes 可以根据需求自动扩展应用程序,以适应变化的负载。这可以提高资源利用率,同时确保应用程序的性能和可靠性。
  3. 声明式配置:Kubernetes 使用声明式配置模型,允许用户指定应用程序的期望状态,而不是手动指定如何达到该状态。这可以提高应用程序的可重复性和一致性,并减少配置错误的风险。
  4. 服务发现和负载均衡:Kubernetes 提供了内置的服务发现和负载均衡功能,允许应用程序动态地发现和连接到其他组件,并根据负载均衡算法分配流量。
  5. 滚动更新:Kubernetes 可以支持滚动更新容器化应用程序,以最小化停机时间,并确保新版本的应用程序平稳而安全地部署。
  6. 可扩展性:Kubernetes 的设计允许它在大规模集群中运行,并支持插件式架构,使用户可以根据需要扩展其功能。

总的来说,Kubernetes 的设计理念是将容器化应用程序的部署、扩展和管理自动化,从而提高生产效率和应用程序的可靠性。Kubernetes 提供了丰富的特性和功能,使其成为一种流行的容器编排工具。

为什么 K8s 采用声明式 API?

Kubernetes 被设计为一个管理容器化应用的声明式系统。这意味着 Kubernetes 使用声明式方法,让用户指定系统的期望状态,然后自动将实际状态与期望状态进行协调,而不是提供一套命令式的系统管理命令。

Kubernetes 被设计为声明式系统有几个原因:

  • 简洁性:声明式系统通常比命令式系统更简单、更易用,因为它们允许用户专注于指定系统应做什么,而不是如何去做。

  • 幂等性:声明式系统比命令式系统更具幂等性,这意味着它们可以多次运行而不改变系统状态。这使得管理复杂系统更容易,并且减少了错误和不一致的风险。

  • 可预测性:声明式系统比命令式系统更可预测,因为它们提供了一种清晰且一致的方式来指定系统的期望状态。这使得理解和排除系统故障变得更容易。

  • 自动化:声明式系统比命令式系统更适合自动化,因为它们允许用户以机器可读的格式指定系统的期望状态,便于自动化工具处理。

  • 可扩展性:声明式系统比命令式系统更具可扩展性,因为它们允许用户在不需要手动指定所有系统配置细节的情况下,管理具有大量资源和依赖关系的复杂系统。

总体而言,Kubernetes 使用的声明式方法已被证明是一种强大且有

声明式 Operator 实现起来感觉比命令式的 workflow 难?

实现声明式 Operator 确实需要一定的学习和开发成本,但它们通常比命令式的工作流更加灵活和可维护。

命令式工作流通常需要编写一系列脚本或命令来定义应用程序的部署和管理流程。这些工作流通常是基于特定的环境和应用程序的需求编写的,因此它们可能不具备通用性和可重复性。此外,这些脚本和命令通常难以维护,因为它们与环境和应用程序的状态紧密耦合,需要频繁地更新和调整。

相比之下,声明式 Operator 可以更好地解决这些问题。声明式 Operator 以 Kubernetes 对象的形式定义应用程序的状态和期望结果,而不是直接定义执行的步骤。这样,声明式 Operator 可以更好地实现应用程序的可重复性和一致性,并支持更灵活的自动化应用程序管理。

此外,声明式 Operator 还支持自我修复和自我调整,这可以减少手动干预的需要,提高应用程序的可用性和可靠性。

总的来说,声明式 Operator 确实需要一定的学习和开发成本,但它们通常比命令式的工作流更加灵活和可维护,可以提高应用程序的可重复性和一致性,并支持更高级别的自动化应用程序管理。

以上便是 AIGC 给的答案了。

终章

你的应用代码犹如曲谱,K8s 是目前最好的配器师,经过它的编排,你的应用将演奏出一曲优美的乐章。

End

KubeBlocks 已发布 v0.8.0!KubeBlocks v0.8.0 推出了 Component API,让数据库引擎的组装变得更加简单。Addon 机制也有了重大改进,数据库引擎的 helm chart 从 KubeBlocks repo 中拆分出去,从此数据库引擎或者版本的变动已与 KubeBlocks 发版解绑。v0.8.0 还支持多版本的数据库引擎定义。Pika、ClickHouse、OceanBase、MySQL、PostgreSQL、Redis 等均有功能更新,快来试试看!

小猿姐诚邀各位体验 KubeBlocks,也欢迎您成为产品的使用者和项目的贡献者。跟我们一起构建云原生数据基础设施吧!

💻 官网: www.kubeblocks.io

🌟 GitHub: https://github.com/apecloud/kubeblocks

🚀 Get started: https://kubeblocks.io/docs/preview/user_docs/try-out-on-playground/try-kubeblocks-on-your-laptop

关注小猿姐,一起学习更多云原生技术干货。

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

美团拼好饭小程序mtgsig1.2分析(补环境分析)

声明 本文章中所有内容仅供学习交流使用,不用于其他任何目的,抓包内容、敏感网址、数据接口等均已做脱敏处理,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关!wx a15018601872 本文章未…

【AI绘画Stable Diffusion】单人LoRA模型训练,打造你的专属模型,新手入门宝典请收藏!

大家好,我是灵魂画师向阳 本期我将教大家如何进行LoRA模型训练,打造你的专属模型,内容比较干,还请耐心看完! 随着AIGC的发展,许多传统工作岗位正逐渐被AI取代。同时,AI变革也在创造前所未有的…

【C++】---二叉搜索树

【C】---二叉搜索树 一、二叉搜索树概念二、二叉搜索树操作(非递归)1.二叉搜索树的查找 (非递归)(1)查找(2)中序遍历 2.二叉搜索树的插入(非递归)3.二叉搜索树…

三十三、openlayers官网示例Drawing Features Style——在地图上绘制图形,并修改绘制过程中的颜色

这篇讲的是使用Draw绘制图形时根据绘制形状设置不同颜色。 根据下拉框中的值在styles对象中取对应的颜色对象,new Draw的时候将其设置为style参数。 const styles {Point: {"circle-radius": 5,"circle-fill-color": "red",},LineS…

P2341 受欢迎的牛

题目描述 每一头牛的愿望就是变成一头最受欢迎的牛。现在有 N 头牛,给你 M 对整数,表示牛 A 认为牛 B 受欢迎。这种关系是具有传递性的,如果 A 认为 B 受欢迎,B 认为 C 受欢迎,那么牛 A 也认为牛 C 受欢迎。你的任务是…

UVa11604 General Sultan

UVa11604 General Sultan 题目链接题意分析AC 代码 题目链接 UVA - 11604 General Sultan 题意 给出一些0和1组成的模式串,问是否存在一个串使得有多种方案将这个串分解成模式串。    给一个包含n(n≤100)个符号的二进制编码方式&#xff…

基础—SQL—DQL(数据查询语言)基础查询

一、引言 1、介绍: 分类全称描述DQL英文全称:Data Query Language(数据查询语言)主要是学习对数据库表中的记录进行查询的语句 2、讲解 日常的开发中或者对于一个正常的业务系统中,对于查询的操作次数是远远多于数据的增删改的频次。例如…

Ansible自动化运维中的Setup收集模块应用详解

作者主页:点击! Ansible专栏:点击! 创作时间:2024年5月22日13点14分 💯趣站推荐💯 前些天发现了一个巨牛的🤖人工智能学习网站,通俗易懂,风趣幽默&#xf…

ABB 控制柜

1,主计算机:相当于电脑的主机,用于存放系统和数据,需要24V直流电才能工作。执行用户编写的程序,控制机器人进行响应的动作。主计算机有很多接口,比如与编程PC连接的服务网口、用于连接示教器的网口、连接轴…

揭秘网络编程:同步与异步IO模型的实战演练

摘要 ​ 在网络编程领域,同步(Synchronous)、异步(Asynchronous)、阻塞(Blocking)与非阻塞(Non-blocking)IO模型是核心概念。尽管这些概念在多篇文章中被广泛讨论,它们的抽象性使得彻底理解并非易事。本文旨在通过具体的实验案例,将这些抽象…

深入解析Web前端三大主流框架:Angular、React和Vue

Web前端三大主流框架分别是Angular、React和Vue。下面我将为您详细介绍这三大框架的特点和使用指南。 Angular 核心概念: 组件(Components): 组件是Angular应用的构建块,每个组件由一个带有装饰器的类、一个HTML模板、一个CSS样式表组成。组件通过输入(@Input)和输出(…

【Python】解决Python报错:TypeError: %d format: a number is required, not str

🧑 博主简介:阿里巴巴嵌入式技术专家,深耕嵌入式人工智能领域,具备多年的嵌入式硬件产品研发管理经验。 📒 博客介绍:分享嵌入式开发领域的相关知识、经验、思考和感悟,欢迎关注。提供嵌入式方向…

.NET 直连SAP HANA数据库

前言 上个项目碰到的需求,IT部门要求直连SAP的HANA数据库,以只读的权限读取SAP部门开发的CDS视图,是个有点复杂的工程,需要从成品一直往前追溯到原材料的产地,和交货单、工单、采购订单有相当程度上的关联 IT部门要求…

会议管理系统(含源码+sql+视频导入教程)

👉文末查看项目功能视频演示获取源码sql脚本视频导入教程视频 1 、功能描述 会议管理系统拥有两种角色 管理员:部门管理、员工管理、会议管理、会议室管理、预订会议、添加员工、注册员工审批等 用户:个人通知中心、预订会议、查看所有会议…

错误记录:从把项目从Tomcat8.5.37转到Tomcat10.1.7

错误信息:在本地Servlet项目里没有报错,但是浏览器跳转该servlet时报错 型 异常报告 消息 实例化Servlet类[com.wangdao.lx.MyServlet1]异常 描述 服务器遇到一个意外的情况,阻止它完成请求。 例外情况 jakarta.servlet.ServletExceptio…

四川汇聚荣聚荣科技有限公司是正规的吗?

在当今社会,随着科技的飞速发展,越来越多的科技公司如雨后春笋般涌现。然而,在这个信息爆炸的时代,如何判断一家公司是否正规成为了许多人关注的焦点。本文将围绕“四川汇聚荣聚荣科技有限公司是否正规”这一问题展开讨论&#xf…

Spring框架学习笔记(五):JdbcTemplate 和 声明式事务

基本介绍&#xff1a;通过 Spring 框架可以配置数据源&#xff0c;从而完成对数据表的操作。JdbcTemplate 是 Spring 提供的访问数据库的技术。将 JDBC 的常用操作封装为模板方法 1 JdbcTemplate 使用前需进行如下配置 1.1 在maven项目的pom文件加入以下依赖 <dependencies…

最新区块链论文录用资讯CCF B—DASFAA 2024 共3篇

Conference&#xff1a;International Conference on Database Systems for Advanced Applications (DASFAA) CCF level&#xff1a;CCF B Categories&#xff1a;数据库&#xff0f;数据挖掘&#xff0f;内容检索 Year&#xff1a;2024 Conference time&#xff1a;July …

认识K8s集群的声明式资源管理方法

前言 Kubernetes 集群的声明式资源管理方法是当今云原生领域中的核心概念之一&#xff0c;使得容器化应用程序的部署和管理变得更加高效和可靠。本文将认识了解 Kubernetes 中声明式管理的相关理念、实际应用以及优势。 目录 一、管理方法介绍 1. 概述 2. 语法格式 2.1 管…

Qt 配置Eigen矩阵库 - 并简单测试

Qt 配置Eigen矩阵库 - 并简单测试 引言一、在Qt中配置Eigen二、低通Demo源码三、参考链接以及其他 引言 Eigen是一个开源的C模板库&#xff0c;提供了线性代数和矩阵运算的功能。它被设计为一个高性能、可扩展和易用的库&#xff0c;可以用于科学计算、机器学习和计算机图形学等…