Kubernetes 学习总结(38)—— Kubernetes 与云原生的联系

news2024/12/23 3:14:51

一、什么是云原生?

伴随着云计算的浪潮,云原生概念也应运而生,而且火得一塌糊涂,大家经常说云原生,却很少有人告诉你到底什么是云原生,云原生可以理解为“云”+“原生”,Cloud 可以理解为应用程序部署在云中;Native 可以理解为应用程序从设计之初就是原生为云而设计的,需要充分利用和发挥云平台的弹性+分布式优势,提升云上资源利用率、缩短开发周期。

云原生是面向云应用设计的一种思想理念,充分发挥云效能的最佳实践路径;帮助企业构建弹性可靠、松耦合、易管理、可观测的应用系统,提升交付效率,降低运维复杂度。

二、云原生的优势是什么?

1.实现更小体积

对于微服务化架构而言,拥有了更小的体积代表了未来将会是更少的下载带宽,而且更快地分发下载速度,在工作上会提高工作效率,节省更多的工作时间。

2.拥有更快的启动速度

相比传统的单体应用而言,启动速度与运行效率快慢并不是重要的指标,但是对于需要快速迭代、水平扩展的云原生微服务架构应用而言,更快的启动速度就意味着更高的交付效率,和更加快速的回滚,尤其是面对较多应用的时候,可能仅仅才500ms的反应时间也会让用户感觉到延迟,从而造成用户的体验感变差。

3.在实际使用中占用资源会更少

在实际的运行中占用的资源更低的时候,也就代表了更高的部署密度和更低的计算成本,同时,在JVM启动时需要消耗大量CPU资源对字节码进行编译,降低启动时资源消耗,可以减少资源争抢,更好保障其他应用SLA。

4.数据没有固定的存储模式

在如今的实际使用中,云原生应用和服务既可以用JSON来处理数据,也可以用protocol buffer 或传统的 XML 来构造数据。很大程度上满足了不同的用户需求,无论是操作,还是实际都带来极大的便利性。

5.弹性扩展

云原生架构的主要特点是微服务、容器化、 DevOps 、持续交付四个主要的特点,也正因为如此它的资源是可以按照实际情况进行伸缩,这样不但提高资源的利用率,也大大降低了企业成本。

6.系统更加安全强壮

云原生架构依托于容器编排工具(K8S)与微服务的组合,应用就拥有了自动恢复能力、容错能力、故障隔离能力,让应用时刻处于可用的状态。

7.屏蔽底层差异

使用了容器化技术,应用运行于容器之中,应用就不需要考虑底层硬件的差异,只要是能运行容器镜像的硬件都可以运行程序,大大简化了开发工作量。同时对运维人员也非常友好,不需要再为环境问题而苦恼。对于应用程序来说, 云原生可以赋予其更快速开发上线的能力。应用程序可以更实时、更稳定、更频繁地被部署,而无需完全重新部署。并且,还可以针对特定的服务进行扩缩容,以节省资源。对于开发者来说,云原生提供的一些开箱即用的能力比如服务治理能力、DveOps,可以帮助我们更高效地进行开发。你不需要再花精力搭建复杂的持续交付环境,敏捷基础设施(如 K8S、Docke)开箱即用,自带一站式微服务开发解决方案。在不久的将来,掌握云原生技术会成为开发者必备的能力之一。

三、云原生时代开发者必须掌握哪些能力?

微服务:单体架构由于承载的业务庞大,服务内部逻辑变得复杂,扩展性非常差。这个时候,我们往往需要将单体架构拆分为整体更松散,模块更内聚的微服务架构。每个微服务都在运行在独立的线程下,它们之间通过轻量级通信机制(通常是 REST)进行通信。并且,各个微服务可以使用不同的技术栈,不同的存储技术。各个微服务独立部署,对于单个微服务的修改,我们仅仅需要重新部署对应的微服务,而不需要重新部署整个系统。并且,系统中不同的微服务访问压力不同,我们可以对具体的微服务进行扩容缩容,这样更节省资源,节约成本。

网关:是整个微服务架构的流量入口,负责认证授权、请求分发、认证授权、限流、API 管 理、负载均衡等工作,是微服务架构中非常重要的一个组件。

容器:容器技术是云原生发展的基石,以 Docker 为首的容器工具提出了“一次构建,到处运行”的口号。容器平台和工具有很多,Docker 占据了最大的市场份额,已经成为打包、部署和运行云原生应用程序的事实上的标准。

Kubernetes:对于一些大型的项目来说,一个应用程序的部署可能会涉及到成千上万台容器。这个时候,人工部署和管理容器就不太现实了。于是,由 Google 主导孕育的 Kubernetes(简称 K8s) 就出现了,它就是帮助我们来做这些事情的,可以方便我们自动部署、扩缩和管理容器化的应用程序,减少重复劳动和出错的可能性。K8s 被称为云原生时代的操作系统,云原生应用的优势与其提供的功能息息相关。

DevOps:DevOps 是一种软件交付的理念和方法。从名字可以看出,DevOps 将开发(Development)和运维(Operations)结合在一起。不过 DevOps 所代表的理念和实践要比这广阔的多。

DevOps关注的是如何实现应用程序的全生命周期(开发,测试,运维)自动化管理,从而实现更快速、更高质量、更频繁、更稳定的软件交付。DevOps 团队通常会使用微服务架构来构建应用程序,借助于持续集成和持续部署(CI/CD)来实施 DevOps。

ServiceMesh:Service Mesh(服务网格) 是 CNCF 推广的新一代微服务架构,是微服务时代的 TCP 协议,致力于解决微服务架构下的服务管理问题比如服务发现、负载均衡、服务监控,提供开箱即用的运维能力比如金丝雀发布、访问控制。

数字化转型是大趋势和必然选择,企业的发展也由平台技术驱动向应用服务驱动转变。应用上云的大潮不可阻挡,云原生是目前软件行业最大的趋势之一。随着云原生成为各行业数字化转型的必选项,软件开发、部署和运维的方式正在发生前所未有的改变。

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

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

相关文章

深入浅出DAX:数据分析

深入浅出DAX:数据分析 01、区间分析 1. 数据区间分析 在Power BI中,选择“主页”→“输入数据”,创建“区间辅助表”,如图1所示。 ■ 图1 区间辅助表 创建度量值M.区间次数,表达式如下: M.区间次数 VA…

POJ 2991 Crane 线段树

一、题目大意 我们有一台起重机的机械臂,它由多个节相连组成,如下所示。 起初的时候,所有的节之间的角度都是180度,是竖直的,我们可以扭转其中任意两个节的角度,每一次移动后题目需要输出题目最后一个点相…

干货 | 工商业用户负荷分析与预测系统项目

以下内容整理自2023年夏季学期大数据能力提升项目《大数据实践课》同学们所做的期末答辩汇报。 我们将从六个方面进行展示。 第一部分是项目背景与需求分析。在“双碳”目标的大背景下,能源电力行业面临着深刻的变革,负荷预测作用也更加突出。虚拟电厂由…

蓝牙无线IP网络多功能多媒体音柱带遥控

SV-29810T-蓝牙无线IP网络多功能多媒体音柱带遥控 蓝牙无线IP网络多功能多媒体音柱SV-29810T产品用途: ◆室外室内豪华型防水音柱式一体化网络音频解码扬声器,用于广播分区音频解码、声音还原作用◆应用场地如火车站、地铁、教堂、工厂、仓库、公园停车…

lv5 嵌入式开发-7 有名管道和无名管道

目录 1 进程间通信介绍 2 无名管道 2.1 无名管道特点 ​编辑 2.2 读无名管道 2.3 写无名管道 3 有名管道 3.1 有名管道特点 3.2 写有名管道 3.3 读有名管道 掌握:进程间通信方式介绍、无名管道特点、无名管道创建、无名管道读写特性;有名管道…

【面试题】——JavaIO篇(23题)

文章目录 1.什么是Java IO?2.如何从数据传输方式理解IO流?3.Java IO设计上使用了什么设计模式?4.什么是Java NIO?5.什么时BIO?6.什么是AIO?7.你怎么理解同步IO和异步IO?8.你怎么理解阻塞IO和非阻塞IO?9.IO中的输入流和输出流有…

Python项目实战:多线程并行计算 + 多进程并行计算

文章目录 一、简介:【进程 多进程】 【线程 多线程】1.1、系统支持的CPU核心处理器1.2、核心处理器的参数解析:12th Gen Intel( R ) Core( TM ) i7-12700 2.10 GHz 二、函数详解2.0、计算CPU核心数:os.cpu_count() mp.cpu_count()2.1、用…

MongoDB 解析:灵活文档数据库与 Docker Compose 部署

MongoDB 是一款开源、高性能的 NoSQL 数据库,以其无模式的文档存储格式(BSON)而著称,广泛应用于众多开源项目,包括但不限于 Yapi 等。它在大规模数据存储和实时数据处理方面表现出色,因此备受青睐。在本文中…

C++学习——优先级队列模拟实现与仿函数初步认识

目录 ​编辑 一,优先级队列 二,实现 1.构造priority_queue类 2.简单的top()与size()还有empty()函数 3.push函数 4.pop函数 5.构造函数 6.测试 三,仿函数 1.介绍 2.使用 一,优先级队列 优先级队列——priority_queue。这…

【C++】gnustl_static 与 c++_shared 的区别

参考:GNU与cSTL的区别与联系-爱代码爱编程​ gnustl_static 与 c_shared 的区别: 不同版本的 STL TSL是一个与STL兼容的多线程支持库。 STLport是一个可移植、高度兼容的STL实现。 SGI STL是最早的STL实现之一,对STL的发展起到了重要的作用…

深入MySQL数据库进阶实战:性能优化、高可用性与安全性

💂 个人网站:【工具大全】【游戏大全】【神级源码资源网】🤟 前端学习课程:👉【28个案例趣学前端】【400个JS面试题】💅 寻找学习交流、摸鱼划水的小伙伴,请点击【摸鱼学习交流群】 MySQL是世界上最流行的开…

Windows 下 MySQL 8.1.0 安装及配置图文指南,快速搭建实验学习环境

目录 下载 MySQL安装 MySQL配置 MySQL修改密码配置环境变量 卸载 MySQL开源项目微服务商城项目前后端分离项目 下载 MySQL 访问 MySQL 下载地址:https://dev.mysql.com/downloads/mysql/ 下载 MySQL 时,你可以选择 ZIP 包或 MSI 安装: ZIP包…

赴日IT课程分享 如何尽快就职日本IT公司?

想要做赴日IT工作,我们先要搞清楚一个问题,那就是日本IT行业的缺口真的很大吗?答案是肯定的,对于有3-5年实际开发经验,能独立做开发,日语口语也好,不需要协助就能独立跟日本人交流的人&#xff…

DeepFace【部署 01】轻量级人脸识别和面部属性分析框架安装使用详解(网盘分享模型文件)

DeepFace安装使用 1.安装1.1 官方的三种方式1.2 使用的方式 2.使用2.1 模型文件下载2.2 Facial Recognition2.3 Face Verification2.4 Face recognition2.5 Embeddings2.6 Face recognition models2.7 Similarity2.8 Facial Attribute Analysis2.9 Face Detectors 3.总结 Githu…

知网G4期刊-基础教育论坛-如何投稿?

《基础教育论坛》知网 3版5000字符 24年上半年刊期,可收中小学基础教育,幼儿教育等教育全科文章。 《基础教育论坛》主要刊登有关教育教学理论探讨及课程改革、教学改革、考试改革研究等方面的文章,为广大基础教育工作者提供学术交流的…

Lua学习笔记:debug.sethook函数

前言 本篇在讲什么 使用Lua的debug.setHook函数 本篇需要什么 对Lua语法有简单认知 依赖Sublime Text工具 本篇的特色 具有全流程的图文教学 重实践,轻理论,快速上手 提供全流程的源码内容 ★提高阅读体验★ 👉 ♠ 一级标题 &…

第五章:C语言的数组

文章目录 1、数组的理解2、各类数组的定义3、变长数组4、字符数组 1、数组的理解 一维数组:比如定义一个int a[3];,那么可以将其看成两部分,a【3】为①,int为②。意思就是有一个数组名字为a,里面包含3个(池&#xff0…

QT5自定义下拉框为QTreeView类型(树形分上下级)的下拉框(QComboBox)(超详细步骤)

项目开发中,很可能简单的QComboBox满足不了需求,就需要自定义QComboBox。 先看效果。 自定义ComboBox 1、先建立一个project,命名为CustomComboBox,建立一个project的过程不细说了。建立后的工程目录如下图: 2、在项目名CustomCo…

React 全栈体系(十六)

第八章 React 扩展 五、Context 1. 代码 /* index.jsx */ import React, { Component } from react import ./index.css//创建Context对象 const MyContext React.createContext() const {Provider,Consumer} MyContext export default class A extends Component {state …

蓝桥杯每日一题20223.9.26

4407. 扫雷 - AcWing题库 题目描述 分析 此题目使用map等都会超时,所以我们可以巧妙的使用哈希模拟散列表,哈希表初始化为-1首先将地雷读入哈希表,找到地雷的坐标在哈希表中对应的下标,如果没有则此地雷的位置第一次出现&#…