K8S相关核心概念

news/2025/2/21 4:38:23/

个人笔记:

要弄明白k8s的细节,需要知道k8s是个什么东西。它的主要功能,就是容器的调度--也就是把部署实例,根据整体资源的使用状况,部署到任何地方

注意任何这两个字,预示着你并不能够通过常规的IP、端口方式访问部署的实例。复杂性由此而生。 我们学k8s,就要看它要调度哪些资源。以传统的感觉来看,无非就是cpu、内存、网络、io等。在了解怎么对这些资源调度之前,先要搞懂什么叫Pod,这可是k8s的核心概念之一。 搞不懂Pod,就没法玩k8s。

1、K8S怎么发展来的:

在过去,多数的应用都是大型单体应用,以单个进程或几个进程的方式,运行
于几台服务器之上。这些应用的发布周期长,而且迭代也不频繁。每个发布周期结
束前, 开发者会把应用程序打包后交付给运维团队,运维人员再处理部署、监控事直,
并且在硬件发生故障时于动迁移应用。
今天, 大型单体应用正被逐渐分解成小的、可独立运行的组件,我们称之为微
服务。微服务彼此之间解耦, 所以它们可以被独立开发、部署、升级、伸缩。这使
得我们可以对每一个微服务实现快速迭代, 并且迭代的速度可以和市场需求变化的
速度保持一致。
但是, 随着部署组件的增多和数据中心的增长,配置、管理并保持系统的
正常运行变得越来越困难。如果我们想要获得足够高的资源利用率并降低硬件成
本,把组件部署在什么地方变得越来越难以决策。手动做所有的事情,显然不太可行。
我们需要一些自动化的措施,包括自动调度、配置、监管和故障处理。这正是
Kubernetes 的用武之地。
Kubernetes 使开发者可以自主部署应用,并且控制部署的频率,完全脱离运维
团队的帮助。Kubemetes 同时能让运维团队监控整个系统,并且在硬件故障时重新
调度应用。系统管理员的工作重心,从监管应用转移到了监管Kubernetes ,以及剩
余的系统资源,因为Kubernetes 会帮助监管所有的应用。

2、Pod pod是k8s调度的最小单元,包含一个或者多个容器(这里的容器你可以暂时认为是docker)。 Pod拥有一个唯一的IP地址,在包含多个容器的时候,依然是拥有一个IP地址,它是怎么办到的呢? xjjdog之前写过两篇Docker原理的文章,指出其中两个使用到的底层技术,就是namespace和cgroup,k8s在使用多个容器的时候,用到的就是共享namespace,这样Pod里的容器就可以通过localhost通信了,就像两个进程一样。同理的,Pod 可以挂载多个共享的存储卷(Volume),这时内部的各个容器就可以访问共享的 Volume 进行数据的读写。

3、微服务的扩容:
面向单体系统,扩容针对的是整个系统,而面向微服务架构,扩容却只需要针
对单个服务,这意味着你可以选择仅扩容那些需要更多资源的服务而保持其他的服
务仍然维持在原来的规模。如图1.2 所示,三种组件都被复制了多个,并以多进程
的方式部署在不同的服务器上,而另外的组件只能以单体进程应用运行。当单体应
用因为其中一部分无法扩容而整体被限制扩容时,可以把应用拆分成多个微服务,
将那些能进行扩容的组件进行水平扩展,不能进行扩容的组件进行垂直扩展。

 

 

4、Kubernetes 的核心功能
图1.8 展示了一幅最简单的Kubernetes 系统图。整个系统由一个主节点和若干
个工作节点组成。开发者把一个应用列表提交到主节点, Kubernetes 会将它们部署
到集群的工作节点。组件被部署在哪个节点对于开发者和系统管理员来说都不用
关心。

5、 

参考链接:

图解 K8s 核心概念和术语 - 后端进阶 - 博客园 (cnblogs.com)

k8s主要概念大梳理! - 腾讯云开发者社区-腾讯云 (tencent.com)


http://www.ppmy.cn/news/61986.html

相关文章

P1058 [NOIP2008 普及组] 立体图

题目描述 小渊是个聪明的孩子,他经常会给周围的小朋友们讲些自己认为有趣的内容。最近,他准备给小朋友们讲解立体图,请你帮他画出立体图。 小渊有一块面积为 ��mn 的矩形区域,上面有 �&#x…

Blender渲染动画太慢怎么办?用云渲染啊!

1995 年,荷兰开发者 Ton Roosendaal 开发了三维制作软件 Blender ,这是一款功能强大的 3D 创建工具,用于创建 3D 图形、交互式 3D 应用程序、视频游戏、虚拟现实视频和动画。它自 2002 年以来一直作为开源软件提供,可在 macOS、Li…

开源音频处理库AudioLDM

环境 windows 10 64bitAudioLDM 0.1.1anaconda with python 3.8nvidia gtx 1070Ti 简介 AudioLDM 是一个开源的音频处理库,它可以用于实现语音识别、语音合成、语音转换等应用,很多 AIGC 大模型都在用它。该库提供了一组音频信号处理算法,包括…

什么叫用空间换时间,用时间换空间

什么叫做用空间换时间 用空间换时间是指为了提高程序或算法的效率,将计算机程序中的时间复杂度转化为空间复杂度,即通过使用更多的空间来减少程序运行所需的时间。这种技术在某些情况下可以大幅缩短程序的执行时间,但也会导致程序需要更大的…

为何ChatGPT一出现让巨头们都坐不住?

近几个月来,ChatGPT都是当仁不让的舆论话题。 上一次AI在全球范围内引起轰动,还是谷歌的AI机器人AlphaGO下棋战胜围棋世界冠军的时候。 ChatGPT的出现,让国内外几乎所有的科技巨头都坐立不安。 2月1日,谷歌母公司Alphabet首席执…

Loadrunner性能测试(一)

备注:电脑最好安装有IE浏览器 一、下载安装包 链接:https://pan.baidu.com/s/1f5Sw0QK5zrLCU1EbN01evg?pwdbite 提取码:bite 包含的文件有: 二、安装loadrunner 注意,以下教程仅展示需要特别注意的步骤&#x…

SVG的一些基础知识,包括SVG坐标系统、支持的几何图形和样式,动画的基础知识,包括基本动画和路径动画

SVG(可缩放矢量图形)是一种使用XML格式定义的图像格式,它可以将二维图像呈现为任意大小的图像,而不会产生像素化。由于它的矢量设计,SVG成为了实现各种图形和动画的理想平台。在本文中,我们将探讨如何使用S…

Go 语言数据类型

Go 语言数据类型 在 Go 编程语言中,数据类型用于声明函数和变量。 数据类型的出现是为了把数据分成所需内存大小不同的数据,编程的时候需要用大数据的时候才需要申请大内存,就可以充分利用内存。 Go 语言按类别有以下几种数据类型&#xf…