【云原生_K8S系列】认识 Kubernetes

在当今数字化转型的浪潮中,企业对于构建高效、灵活的软件架构有了更高的期望。而在这个迅速变化的环境中,容器化技术如雨后春笋般涌现,为解决传统部署和管理软件所带来的挑战提供了一种全新的解决方案。在众多容器编排工具中,Kubernetes (K8s) 凭借其强大的功能和社区支持,成为了企业级容器调度平台的首选。

什么是 Kubernetes?

Kubernetes 这个名字源于希腊语,意为“舵手”或“飞行员”。k8s 这个缩写是因为 k 和 s 之间有八个字符的关系。Kubernetes 是一种开源的容器编排引擎,由 Google 开发并于 2014 年首次发布,现已成为 Cloud Native Computing Foundation(CNCF)的毕业项目。简单来说,Kubernetes 允许用户在一个集群中自动化地部署、扩展和管理容器化的应用程序。

在 Kubernetes 中,用户可以将应用程序打包成独立的、轻量级的容器,并利用 Kubernetes 提供的丰富功能,如自动负载均衡、自我修复、自动伸缩等,快速而高效地部署和管理这些容器。这种基于容器的架构不仅使得应用程序更易于迁移和扩展,还提供了更高的灵活性和可靠性,有助于降低开发和运维的成本。

为什么需要 Kubernetes?

随着软件系统的规模不断扩大,传统的部署和管理方式已经无法满足日益增长的需求。传统的部署方式通常依赖于手动操作和静态配置,这种方式不仅效率低下,而且容易出错,难以应对快速变化的业务需求。而容器化技术的出现为这一困境提供了一个全新的解决方案。

应用部署的三大阶段

传统部署

程序员/运维工程师手动操作部署应用,直接将应用部署在目标机器上,由于资源不隔离,容易出现资源争抢、依赖冲突等各方面问题。

虚拟化部署

利用 OpenStaskVMware 等虚拟化技术,将一台目标机器虚拟化为多个虚拟机器,按照需求将应用部署到不同的虚拟机中,对虚拟机进行动态的水平扩容等管理操作。
相对传统部署自动化、资源隔离的能力提升了,带来的问题是虚拟化的逻辑过重,导致效率不高,且耗费资源较多

容器化部署

可以理解为轻量级的虚拟化,完美弥补虚拟化技术过重的问题,且由于直接共享主机硬件资源,只是通过系统提供的命名空间等技术实现资源隔离,损耗更小,且效率更高

K8S特点

  1. 自动化部署与扩展
    • Kubernetes 具有自动化部署和扩展功能,可以根据需求动态地调整容器的数量和资源分配,确保应用程序能够按需扩展,同时保持高可用性。
  2. 统一管理
    • Kubernetes 提供了统一的管理平台,可以管理多个应用程序、多个环境和多个集群,简化了部署和管理的复杂性,提高了操作效率。
  3. 弹性伸缩
    • Kubernetes 允许用户根据应用程序的负载情况动态地伸缩集群规模,从而实现资源的最优利用,提高了资源利用率和成本效益。
  4. 自我修复
    • Kubernetes 具有自我修复功能,可以自动检测和恢复容器和节点的故障,确保应用程序能够持续可用,提高了系统的稳定性和可靠性。
  5. 服务发现与负载均衡
    • Kubernetes 提供了服务发现和负载均衡的功能,可以自动管理应用程序之间的通信和流量分发,确保应用程序能够顺利地运行并满足用户需求。

企业级容器调度平台

Apache Mesos

Apache Mesos

基本概念

Mesos 是一个分布式调度系统内核,早于 Docker 产生,Mesos 作为资源管理器,从 DC/OS (数据中心操作系统)的角度提供资源视图。主/从结构工作模式,主节点分配任务,并用从节点上的 Executor 负责执行,通过 Zookeeper 给主节点提供服务注册、服务发现功能。通过 Framework Marathon 提供容器调度的能力。

优势

经过时间的检验,作为资源管理器的 Apache Mesos 在容器之前就已经出现很久了,支持运行容器化化和非容器化的工作负载。可以支持应用程序的健康检查,开放的架构。支持多个框架和多个调度器,通过不同的 Framework 可以运行 Haddop/Spark/MPI等多种不同的任务。
支持超大型规模的节点管理,模拟测试支持超过 5w+ 节点,在大规模上拥有较大优势。

Docker SwarmDocker Swarm

基本概念

Docker Swarm 是一个由 Docker 开发的调度框架。由 Docker 自身开发的好处之一就是标准 Docker API 的使用,Swarm 由多个代理(Agent)组成,把这些代理称之为节点(Node)。这些节点就是主机,这些主机在启动 Docker Daemon 的时候就会打开相应的端口,以此支持 Docker 远程 API。这些机器会根据 Swarm 调度器分配给它们的任务,拉取和运行不同的镜像。

优势

从 Docker1.12 版本开始,Swarm 随 Docker 一起默认安装发布。由于随 Docker 引擎一起发布,无需额外安装,配置简单。支持服务注册、服务发现,内置 Overlay Network 以及 Load Balancer。与 Docker CLI 非常类似的操作命令,对熟悉 Docker 的人非常容易上手学习。
入门门槛、学习成本较低,使用更便捷,适用于中小型系统。

Google Kubernetes

Kubernetes

基本概念

Kubernetes 是基于 Google 在过去十五年来大量生产环境中运行工作负载的经验。Kubernetes 的实现参考了 Google 内部的资源调度框架,但并不是 Borg 的内部容器编排系统的开源,而是借鉴 Google 从运行 Borg 获得的经验教训,形成了 Kubernetes 项目。
它使用 Label 和 Pod 的概念来将容器划分为逻辑单元。Pods 是同地协作(co-located)容器的集合,这些容器被共同部署和调度,形成了一个服务,这是 Kubernetes 和其他两个框架的主要区别。相比于基于相似度的容器调度方式(就像 Swarm 和Mesos),这个方法简化了对集群的管理。

优势

最流行等容器编排解决方案框架,基于 Google 庞大的生态圈及社区产生的产品。通过 Pods 这一抽象的概念,解决 Container 之间的依赖于通信问题。Pods,Services,Deployments 是独立部署的部分,可以通过 Selector 提供更多的灵活性。内置服务注册表和负载平衡。
适用度更广,功能更强大,相较于 Mesos 来说节点规模较小

总结

Kubernetes作为一种高度灵活和可扩展的容器编排引擎,已经成为了云原生应用开发和部署的首选工具。通过本文的介绍,相信大家对Kubernetes有了初步的了解。

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

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

相关文章

JavaScript--作用域是什么

作用域是什么 编译原理 在传统的编译语言中,程序中的一段源代码在执行之前会经历三个步骤。成为编译 分词/词法分析 这个过程由字符组成的字符串分解成有意义的代码块,这些代码块成为词法单元。 分词和词法分析之间的主要差异在于词法单元的识别是有…

【网络协议】应用层协议HTTPS

文章目录 为什么引入HTTPS?基本概念加密的基本过程对称加密非对称加密中间人攻击证书 为什么引入HTTPS? 由于HTTP协议在网络传输中是明文传输的,那么当传输一些机密的文件或着对钱的操作时,就会有泄密的风险,从而引入…

项目构建工具maven

一、概述 1、maven是apache的一个开源项目,是一个优秀的项目构建/管理工具 2、apache(软件基金会、非盈利组织、管理维护一些开源项目) 二、功能 1、管理项目中jar包和jar包与jar包之间的依赖 2、完成项目编译、测试、打包 三、核心文件 pom.xml:在里面配置相…

5.28 学习总结

一.CSS学习(一) 一、CSS简介 1、什么是CSS CSS:Cascading Style Sheet 层叠样式表是一组样式设置的规则,用于控制页面的外观样式 2、为什么使用CSS 实现内容与样式的分离,便于团队开发样式复用,便于网站的后期维护页面的精确…

Leecode热题100---二分查找---搜索插入位置

题目: 给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。 nums 为 无重复元素 的 升序 排列数组 常规思路: class Solution { public:int f…

MySQL--复合查询

之前学过了基本的查询,虽然已经够80%的使用场景了,但是依旧需要了解剩下的20%。 一、多表笛卡尔积(多表查询) 以前我们使用基本查询的时候,from后面就跟一张表名,在多表查询这里,from后面可以跟…

跟进2年弄丢1.8亿,你的大客管理错在哪里?

数量并非目的之所在,质量才是根本之道。重视1%的超级用户,才是提高效率的关键所在。 ——凯文凯利 在当今的商业环境中,大客户已成为销售服务型企业最宝贵的资产。他们不仅贡献了企业收入的重要一环,…

监管端..

文章目录 1. 登录流程2. 日志AOP 1. 登录流程 使用账号(手机号)、密码、验证码。登录就是获取token的,输入的账号密码用RSA加密(非对称) 首先输入账号密码,在发送手机验证码时候先校验账号密码有没有输入…

AI智能体研发之路-模型篇(三):中文大模型开、闭源之争

博客导读: 《AI—工程篇》 AI智能体研发之路-工程篇(一):Docker助力AI智能体开发提效 AI智能体研发之路-工程篇(二):Dify智能体开发平台一键部署 AI智能体研发之路-工程篇(三&am…

kafka-消费者组偏移量重置

文章目录 1、消费者组偏移量重置1.1、列出所有的消费者组1.2、查看 my_group1 组的详细信息1.3、获取 kafka-consumer-groups.sh 的帮助信息1.4、 偏移量重置1.5、再次查看 my_group1 组的详细信息 1、消费者组偏移量重置 1.1、列出所有的消费者组 [rootlocalhost ~]# kafka-…

光伏智慧化运营解决方案的应用和价值

在社会对新能源需求的不断扩大,光伏已经成为了可再生能源的重要组成部分,随着光伏电站数量和规模的不断扩大,相关企业和用户都就开始关注如何能够高效精准的进行电站管理,对此,鹧鸪云提出了光伏智慧化运营解决方案&…

Docker 入门版

目录 1. 关于Docker 2. Dockr run命令中常见参数解读 3. Docker常见命令 4. Docker 数据卷 5. Docker本地目录挂载 6. 自定义镜像 Dockerfile 语法 自定义镜像模板 Demo 7. Docker网络 1. 关于Docker 在docker里面下载东西,就是相当于绿色面安装板&#x…

B站广告推广引流哪里能做?

哔哩哔哩(B站)作为国内领先的年轻人文化社区与视频平台,其独特的二次元文化氛围和高度活跃的用户群体,成为了众多品牌寻求突破、触达年轻消费群体的理想阵地。在这样一个充满活力但又竞争激烈的平台上有效推广,吸引并留…

2024/5/28 P1247 取火柴游戏

取火柴游戏 题目描述 输入 k k k 及 k k k 个整数 n 1 , n 2 , ⋯ , n k n_1,n_2,\cdots,n_k n1​,n2​,⋯,nk​,表示有 k k k 堆火柴棒,第 i i i 堆火柴棒的根数为 n i n_i ni​;接着便是你和计算机取火柴棒的对弈游戏。取的规则如下&…

编译安装Apache httpd服务

目录 1.初始化设置,将Apache所需软件包传到 /opt 目录下 (1)关闭防火墙 (2)上传软件包到/opt目录 2.安装环境依赖包 3.配置软件模块 4.编译及安装 5.优化配置文件路径,并把httpd服务的可执行程序文件…

设置AXI主寄存器切片和AXI数据FIFO

设置AXI主寄存器切片和AXI数据FIFO 打开MHS文件&#xff0c;并为每个AXI主机设置启用寄存器切片/启用数据FIFO。到 确定正确的设置&#xff0c;使用下表中的信息搜索MHS。 进行搜索时&#xff0c;将<intf_name>替换为相关的BUS_INTERFACE名称。 例如&#xff0c;BUS_INTE…

AI开发初体验:昇腾加持,OrangePi AIpro 开发板

文章目录 一、前言二、板子介绍2.1 拆箱2.2 板子规格2.2.1 常规项目2.2.2 扩展项目2.2.3 操作系统 2.3 点板画面 三、AI程序初体验3.1 新奇的地方3.2 运行第一个AI程序3.2.1 硬件连接3.2.2 串口连接3.2.3 开启外部IP端口3.2.4 查询板子IP地址3.2.5 了解 juypter lab 启动脚本&a…

前端响应式期末作品

网页设计成品_前端响应式 主题&#xff1a;租房网站&#xff0c;共6个html页面&#xff0c;包含首页&#xff0c;登录注册&#xff0c;租房新闻&#xff0c;租房精选&#xff0c;租房详情&#xff0c;数据可视化页面&#xff08;可以修改内容&#xff09; 采用技术&#xff1a;…

webserver服务器从零搭建到上线(九)|⭐️EventLoop类(一)——详解成员变量、简述成员方法

在本节中&#xff0c;我们一起来仔细探讨一下EpollPoller类。该类可以说是muduo库中最最核心的类了&#xff0c;一定要搞懂&#xff01; 文章目录 私有成员using ChannelList std::vector<Channel*>looping_、quit_threadId_pollReturnTime_、poller_wakeup_fd、wakeupC…

音视频集市应用融合平台方案

音视频应用即有深度又有广度&#xff0c;如何让一个平台拥有更多功能更灵活的拓展能力&#xff0c;从单体模块化&#xff0c;多插件到微服务都有大量的实践。 笔者在实际开发过程也同样面对这些纷繁复杂而又必须共容共通需求的挑战。 在实战开发了大量从服务端到设备端再到浏览…