【Kubernetes】K8s中Container(容器)、Pod(小组)和node(节点)概念讲解

Kubernetes学习之路

第一章 Kubernetes学习入门之Container(容器)、Pod(小组)和node(节点)概念


文章目录

  • Kubernetes学习之路
  • 前言
  • 一、Container(容器)
  • 二、Pod(小组)
    • 1.单容器 Pod
    • 2.多容器 Pod
  • 三、Container(容器)和 Pod (小组)的关系
  • 四、node(节点)
  • 总结


前言

在 Kubernetes 中,Pod 是一个包含一个或多个容器(Container)的调度单元。因此,可以说一个 Pod 包含了一个或多个容器(Container)。具体来说:

单容器 Pod:如果 Pod 只有一个容器(Container),那么这个 Pod 实际上就只包含一个容器(Container)。
多容器 Pod:如果 Pod 中有多个容器(Container),这些容器(Container)在同一个 Pod 内部共享网络和存储资源,并且它们通常一起运行以实现某种共同的功能或服务。

简言之,Pod 是 Kubernetes 中的一个封装单位,里面可以包含一个或多个容器(Container)。通过这种方式,Kubernetes 可以管理和协调容器的运行环境和资源共享。而node是节点,一个节点又包含多个pod

一、Container(容器)

定义:容器是一个轻量级的、独立的执行环境,封装了应用程序(app)及其所有依赖,包括库、配置文件和环境变量。容器通过虚拟化技术共享操作系统内核,但彼此之间相互隔离。它使用namespace隔离不同的软件运行环境,并通过镜像自包含软件的运行环境,从而使得容器可以很方便的在任何地方运行。

功能:容器可以在任何支持容器的环境中运行,确保应用程序在不同环境中的一致性。它们提供了快速的启动时间、低开销和高效的资源利用。

在Kubernetes必须要使用Pod来管理容器,每个Pod可以包含一个或多个容器。

二、Pod(小组)

定义:Pod 是 Kubernetes 中的一个基本调度单元,它是一个或多个容器的集合,这些容器共享网络和存储资源。

功能

  • 共享网络:Pod 中的所有容器共享一个 IP 地址和端口空间,这意味着它们可以通过 localhost 直接通信。
  • 共享存储:Pod 中的容器可以挂载同一个存储卷,实现数据的共享和持久化。
  • 调度:Kubernetes 调度器会将 Pod 分配到集群中的节点上运行。
  • 生命周期管理:Pod 提供了一个生命周期管理的视角,可以通过它来管理容器的启动、停止和滚动更新等。
    在这里插入图片描述

1.单容器 Pod

单容器 Pod 是 Kubernetes 中最简单的 Pod 类型,其中仅包含一个容器。这个容器运行应用程序或服务,Pod 提供容器所需的环境和资源。单容器 Pod 的配置相对简单,适用于没有特殊需求的场景。以下是一个简单的单容器 Pod

示例:运行一个 Nginx 服务器
假设你要部署一个 Web 服务器,使用 Nginx 作为容器化的 Web 服务器。

YAML 配置示例

apiVersion: v1
kind: Pod
metadata:name: nginx-pod
spec:containers:- name: nginximage: nginx:latestports:- containerPort: 80

解释

  • metadata.name:Pod 的名称为 nginx-pod。
  • spec.containers:定义了一个容器的列表,这里只有一个容器。
  • name:容器的名称为 nginx。
  • image:指定容器使用的镜像,这里是 nginx:latest。
  • ports:指定容器暴露的端口,这里是 80(Nginx 的默认端口)。

优势
简化管理:单容器 Pod 比多容器 Pod 更简单,适合那些不需要多个协同工作的容器的应用场景。
资源隔离:虽然单容器 Pod 不需要处理多个容器的协作,但它仍然提供了与其他 Pod 的资源隔离。
快速部署:设置和管理较为简单,适合快速启动和测试应用。
在实际使用中,单容器 Pod 常用于简单的应用服务、实验性项目、学习和测试等场景。

2.多容器 Pod

在 Kubernetes 中,多容器 Pod 是一种常见的设计模式,通常用于需要多个容器协同工作的场景。以下是一个常见的多容器 Pod 案例:

示例:日志收集
假设你有一个应用程序容器和一个日志收集容器。应用程序容器运行实际的应用,而日志收集容器负责从应用程序容器中提取日志并将其发送到日志存储服务。

  1. 应用程序容器:运行 Web 服务器应用,如 Nginx。
  2. 日志收集容器:一个专门的日志代理容器,比如 Fluentd,用于收集和处理日志。

YAML 配置示例
以下是一个 Kubernetes Pod 的 YAML 配置示例,展示了如何在同一个 Pod 中运行这两个容器:

apiVersion: v1
kind: Pod
metadata:name: webserver-logging
spec:containers:- name: webserverimage: nginx:latestvolumeMounts:- name: log-volumemountPath: /var/log/nginx- name: log-collectorimage: fluentd:latestvolumeMounts:- name: log-volumemountPath: /var/log/nginxvolumes:- name: log-volumeemptyDir: {}

解释

  • webserver 容器:运行 Nginx 服务器,并将日志写入 /var/log/nginx 目录。
  • log-collector 容器:运行 Fluentd 代理,从与 webserver 容器相同的日志目录 /var/log/nginx
    中读取日志,并将其发送到日志存储服务。

优势
资源共享:这两个容器共享同一个卷 log-volume,允许 log-collector 直接访问 webserver 的日志。
简化配置:通过在同一个 Pod 内部运行这两个容器,可以确保它们在同一个网络和存储上下文中运行,简化了配置和通信。
这种多容器 Pod 设计模式非常适合需要紧密集成和协作的场景,比如日志收集、监控、数据处理等。

三、Container(容器)和 Pod (小组)的关系

容器是 Pod 的组成部分:在 Kubernetes 中,一个 Pod 可能包含一个或多个容器。多个容器在同一个 Pod 中通常具有紧密的协作关系,比如一个容器提供服务,另一个容器处理日志。
Pod 提供容器的共享资源:所有在同一 Pod 中的容器共享网络和存储资源,提供了容器之间的协作机制。
所以分为单容器 Pod和多容器 Pod

四、node(节点)

Node是Pod真正运行的主机,可以物理机,也可以是虚拟机。为了管理Pod,每个Node节点上至少要运行container runtime(比如docker或者rkt)、kubelet和kube-proxy服务。
在这里插入图片描述
Node 是 Kubernetes 集群中的一个物理或虚拟机器,它是运行 Pod 的计算资源的提供者。Node 可以是物理服务器、虚拟机,或者云服务提供的计算实例。每个 Node 上都运行一个 Kubernetes 组件——kubelet,它负责管理 Node 上的 Pods 和容器的生命周期。

Node 的主要作用包括

  • 资源提供:提供 CPU、内存、存储等资源供 Pods 使用。
  • 调度目标:Pods 被调度到特定的 Node 上执行。
  • 管理与监控:通过 kubelet 监控和管理 Node 上的 Pods 和容器。

总结

Pod 是在 Node 上运行的容器组,而容器是 Pod 内部实际运行应用程序的单元。Node 提供了运行这些 Pods 和 Containers 的基础设施和资源。

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

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

相关文章

CSS的动画效果

动画效果 语法: 创建动画:keyframes 调用动画:animation animation参数值 参数值效果animation-name规定 keyframes 动画的名称。animation-duration规定动画完成一个周期所花费的秒或毫秒。默认是 0animation-timing-function规定动画的速…

遥感反演保姆级教程:SPSS筛选因子之后如何采用python建模和反演整个研究区?(以反演生物量为例)

SPSS筛选因子之后如何采用python建模和反演整个研究区?(以反演生物量为例) 引言 在遥感数据分析中,因子筛选和建模是关键步骤。筛选出与目标变量(如生物量)显著相关的因子,不仅可以提高模型的预测精度&a…

某音作品列表,视频列表

声明:文章仅用于学习交流,如有侵权请联系删除 今天分享下某音app作品列表采集方法,我只详细说一下大步骤,细节就不多说了,留着大家去试吧 我们通过Fiddler 快捷方式 配置好代理 打开抖音进行抓包,随便找个达人打开主…

了解Redis数据持久化(中)

3.5写时复制 Redis在使用RDB方式进行持久化时,会用到写时复制机制。写时复制的效果: bgsave子进程相当于复制了原始数据,而主线程仍然可以修改原来的数据。 对Redis来说,主线程fork出bgsave子进程后,bgsave子进程实际是复制了主线…

Jmeter 性能测试实战教程

一、性能测试流程 进行性能测试前,我们首先需要了解一下性能测试大致分为哪些流程,这样才能保证测试过程有序开展: 1、性能需求分析 了解哪些业务需要(一般都是用户量大的核心业务,比如登录,查询等功能&…

go国内源设置

一、背景 部分网络环境不稳定、丢包或无法连外网,在编译go代码时,需要更新相关依赖,可通过设置go国内源地址来更新。 二、国内可用镜像源 2.1 镜像源一 https://goproxy.cn 2.2 镜像源二 https://goproxy.io 2.3 镜像源三 https://gop…

使用vagrant、virtualbox、快速创建kali linux

使用vagrant、virtualbox、快速创建kali linux 初始化kali下载vagrant相应镜像vagrant添加相应镜像创建vagrantfile在vagrantfile根目录执行cmd虚拟机登录密码修改sshd配置 用shell远程链接(可选)可视化界面设置成中文创建成功展示图 添加实体网卡使用kali 破解WiFi密码解决 on…

爆改YOLOv8 | 利用MB-TaylorFormer提高YOLOv8图像去雾检测

1,本文介绍 MB-TaylorFormer是一种新型多支路线性Transformer网络,用于图像去雾任务。它通过泰勒展开改进了softmax-attention,使用多支路和多尺度结构以获取多层次和多尺度的信息,且比传统方法在性能、计算量和网络重量上更优。…

Redis面试都卷到C语言去了。。。

Redis 面试都卷到 C 去了。有个小伙伴在前两天找松哥模面的时候如是说到。 是啊,没办法,自从 Java 八股文这个概念被提出来并且逐步在 Java 程序员中强化之后,现在各种各样的八股文手册,有免费的有付费的,琳琅满目。 …

秃姐学AI系列之:GoogLeNet + 代码实现

目录 GoogLeNet —— 含并行连结的网络 卷积层超参数 Inception块:小学生才做选择,我全要! 为什么要用Inception块? GoogLeNet架构 详细展开每个Stage Stage 1 & 2 Stage 3 Stage 4 & 5 Inception 有各种后续变…

CocosCreator3.8 IOS 构建插屏无法去除的解决方案

CocosCreator3.8 IOS 构建插屏无法去除的解决方案 在实际项目开发过程中,我们通常无需CocosCreator 自带的插屏,一般采用自定义加载页面。 然后在构建IOS 项目时,启用(禁用)插屏无法操作,如下图所示&#…

Unity Protobuf3 GC 问题(反序列化)

背景:Unity接入的是 Google Protobuf 3.21.12 版本,排查下来反序列化过程中的一些GC点,处理了几个严重的,网上也有一些分析,这里就不一一展开,默认读者已经略知一二了。 如果下面有任何问题请评论区留言提…

Web攻防之应急响应(一)

目录 1. 前言 2. 靶场准备 3. 应急场景 4. 应急实战 4.1 查看服务器开放端口 4.2 通过远程链接工具连接服务器 4.3 寻找中间件日志 4.4. 查看并下载日志 4.5 初步分析日志 4.6 查看安全分析报告 4.6 从被篡改的页面开始 4.6 通过修改的文件时间进一步分析日志信息 4.…

如何给10000张图片快速打标签,一招教你节省上千小时!看这期就够了!免费素材管理插件分享

如果给1万张图片打标签,你会怎么做?如果你用过eagle或者billfish的话,那么你一定知道,他们都没有支持用AI来自动给素材打标签。 一旦我们素材多起来的时候,手动输入,键盘都要打冒烟了,效率太低…

企业级NoSql数据库Redis集群

数据库主要分为两大类:关系型数据库与 NoSQL 数据库 关系型数据库 ,是建立在关系模型基础上的数据库,其借助于集合代数等数学概念和方法来处理数据库 中的数据主流的 MySQL 、 Oracle 、 MS SQL Server 和 DB2 都属于这类传统数据库。 …

中仕公考怎么样?2025国考报名流程介绍!

现在是八月下旬,距离2025年国考的开始日期越来越近,今天来给大家分享一下国考报名的流程,希望大家提前做个了解。 报考时间(参考去年) 职位表发布:24年10月中旬 网上报名:24年10月中下旬 报名确认:24年…

昂科烧录器支持Melexis迈来芯的位置传感器MLX90365KDC

芯片烧录行业领导者-昂科技术近日发布最新的烧录软件更新及新增支持的芯片型号列表,其中Melexis迈来芯的位置传感器MLX90365KDC已经被昂科的通用烧录平台AP8000所支持。 MLX90365KDC是第II代Triaxis位置传感器IC。 这款单片器件可凭借其表面的集磁点(IMC)&#xf…

ai变声:视频怎么变音?分享6个语音变声器,视频变声不再难!

想过如何让自己的直播内容更吸引人吗?你是否希望通过变声器来打造独特的声音效果?或者,如何用创意声音提升观众的互动体验呢?随着直播行业的不断发展,每位主播都在努力寻找吸引观众的独特方式,而变声器正是…

鸿蒙南向开发:测试框架xdevice核心组件

简介 xdevice是OpenHarmony中为测试框架的核心组件,提供用例执行所依赖的相关服务。 xdevice主要包括以下几个主要模块: command,用户与测试平台命令行交互模块,提供用户输入命令解析,命令处理。config,…

【机器学习】梯度下降算法

梯度下降算法 这篇博客更加详细,以下只是我个人的理解 梯度下降算法原理讲解——机器学习-CSDN博客 梯度下降算法是一种优化算法,通过梯度下降找到函数最小值时的自变量值。 其基本思想是沿着梯度方向的反方向更新参数,直到逼近函数的极值…