容器和K8s常见概念

news2025/2/9 1:50:37

【容器】

1、Open Container Initiative(OCI):制定和推动容器格式和运行时的开放标准。容器运行时需要遵循此标准。主要的产出物包括:

  • OCI Image Specification: 定义容器镜像格式的规范,统一描述容器镜像的内容和结构。
  • OCI Runtime Specification: 定义容器运行时的规范,包括容器的创建、启动、停止以及生命周期管理等方面的标准。
  • OCI Distribution Specification: 定义容器镜像的分发规范,使得镜像可以便捷地从各种来源获取和使用。

2、常见容器运行时:containerd(docker)、cri-o(CRI-O 是为 Kubernetes 设计的一个独立的容器运行时,而不是专门为 Docker 设计的。)
3、runc:对符合 Open Container Initiative(OCI)规范的容器运行时的管理工具。实现Linux上容器的隔离,namespace、cgroup以及其他系统级别隔离,还有容器的生命周期管理。
4、容器运行时和runc关系:运行时会调用runc。
5、市面上的很多容器标准都是基于runc实现的,比如Pouch 是由阿里巴巴开源的轻量级容器引擎,遵循 OCI 标准,并且支持 Kubernetes CRI(容器运行时接口)。

【Docker】

1、docker组件:

https://learn.lianglianglee.com/%E4%B8%93%E6%A0%8F/%E7%94%B1%E6%B5%85%E5%85%A5%E6%B7%B1%E5%90%83%E9%80%8F%20Docker-%E5%AE%8C/11%20%20%E7%BB%84%E4%BB%B6%E7%BB%84%E6%88%90%EF%BC%9A%E5%89%96%E6%9E%90%20Docker%20%E7%BB%84%E4%BB%B6%E4%BD%9C%E7%94%A8%E5%8F%8A%E5%85%B6%E5%BA%95%E5%B1%82%E5%B7%A5%E4%BD%9C%E5%8E%9F%E7%90%86.md

2、Docker 最初使用了自己的容器运行时,但后来将其核心容器运行时组件 containerd 开源,其默认的容器运行时切换为 containerd。

【K8s】

1、Kubernetes 使用 CRI(Container Runtime Interface)作为容器运行时的接口,通过该接口与容器运行时进行通信。

2、概论 : Kubernetes中概念的简要概述:

  • Cluster : 集群是指由Kubernetes使用一系列的物理机、虚拟机和其他基础资源来运行你的应用程序。
  • Node : 一个node就是一个运行着Kubernetes的物理机或虚拟机,并且pod可以在其上面被调度。.
  • Pod : 一个pod对应一个由相关容器和卷组成的容器组 (了解Pod详情
  • Label : 一个label是一个被附加到资源上的键/值对,譬如附加到一个Pod上,为它传递一个用户自定的并且可识别的属性.Label还可以被应用来组织和选择子网中的资源(了解Label详情)
  • selector是一个通过匹配labels来定义资源之间关系得表达式,例如为一个负载均衡的service指定所目标Pod.(了解selector详情)
  • Replication Controller : replication controller 是为了保证一定数量被指定的Pod的复制品在任何时间都能正常工作.它不仅允许复制的系统易于扩展,还会处理当pod在机器在重启或发生故障的时候再次创建一个(了解Replication Controller详情)
  • Service : 一个service定义了访问pod的方式,就像单个固定的IP地址和与其相对应的DNS名之间的关系。(了解Service详情)
  • Volume: 一个volume是一个目录,可能会被容器作为未见系统的一部分来访问。(了解Volume详情)
  • Kubernetes volume 构建在Docker Volumes之上,并且支持添加和配置volume目录或者其他存储设备。
  • Secret : Secret 存储了敏感数据,例如能允许容器接收请求的权限令牌。
  • Name : 用户为Kubernetes中资源定义的名字
  • Namespace : Namespace 好比一个资源名字的前缀。它帮助不同的项目、团队或是客户可以共享cluster,例如防止相互独立的团队间出现命名冲突
  • Annotation : 相对于label来说可以容纳更大的键值对,它对我们来说可能是不可读的数据,只是为了存储不可识别的辅助数据,尤其是一些被工具或系统扩展用来操作的数据

【总结】

搬运图:

【进一步理解】

1、kubectl describe node xxx,一般会看到的返回:

Container Runtime Version: docker://18.9.0        这是传统的 Docker 引擎运行时。

Container Runtime Version: containerd://1.5.8        docker切换到containerd运行时。

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

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

相关文章

软考高级架构师:嵌入式系统的内核架构

作者:明明如月学长, CSDN 博客专家,大厂高级 Java 工程师,《性能优化方法论》作者、《解锁大厂思维:剖析《阿里巴巴Java开发手册》》、《再学经典:《Effective Java》独家解析》专栏作者。 热门文章推荐&am…

【C++进阶】哈希思想之哈希表和哈希桶模拟实现unordered_map和unordered_set

哈希表和哈希桶 一,什么是哈希二,关联式容器unordered_map/set1. unordered_map2. unordered_set 三,哈希的结构1. 哈希函数2. 哈希冲突 四,哈希表(闭散列)及其模拟实现五,哈希桶(开…

Android JNI调试总结

1、确保NDK和CMake已经安装 新建能编译APK的工程,工程中添加相关ndk目录 2、添加C模块 添加完成后,工程目录自动更新,build.gradle导入了so编译器 修改build.gradle中添加相关gcc编译器如下 externalNativeBuild { cmake { abiFilters a…

零信任安全模型:构建未来数字世界的安全基石

在数字化转型的浪潮中,云原生技术已成为推动企业创新和灵活性的关键力量💡。然而,随着技术的进步和应用的广泛,网络安全威胁也日益严峻🔓,传统的网络安全模型已经难以应对复杂多变的网络环境。在这样的背景…

webpack环境配置分类结合vue使用

文件目录结构 按照目录结构创建好文件 控制台执行: npm install /config/webpack.common.jsconst path require(path) const {merge} require(webpack-merge) const {CleanWebpackPlugin} require(clean-webpack-plugin) const { VueLoaderPlugin } require(vue-loader); c…

Spring Security——11,自定义权限校验方法

自定义权限校验方法 一键三连有没有捏~~ 我们也可以定义自己的权限校验方法,在PreAuthorize注解中使用我们的方法。 自定义一个权限检验方法: 在SPEL表达式中使用 ex相当于获取容器中bean的名字未ex的对象。然后再调用这个对象的 hasAuthority方法&am…

中文地址分词器源码阅读(jiedi)

文章目录 structure.p文件pd.read_excelenumerate思维导图核心源码讲解jiedi.pytrain.py 总结 structure 点击左边的Structure按钮就如Structure界面。从Structure我们可以看出当前代码文件中有多少个全局变量、函数、类以及类中有多少个成员变量和成员函数。 其中V图标表示全…

mid转MP3怎么转?一分钟搞定~

MIDI(Musical Instrument Digital Interface)文件格式的诞生可以追溯到上世纪80年代,音频技术迅速崛起。为了让不同音乐设备之间能够互相通信,MIDI格式成为了音乐的标准。它不同于常见的音频文件格式,不包含实际的声音…

基于java web的超市管理系统

摘要 随着社会经济的不断发展,人们的生活水平不断提高。越来越多的零售行业得到了快速的发展,以最常见的超市最为明显。零售行业繁荣的背后也随之带来了许多行业隐患,越来越激烈的行业竞争不断的要求经营者更加高要求的管理超市内部的整个供…

CleanMyMac有必要购买吗?有哪些功能

作为一位产品营销专家,对各类软件产品的功能和特点都有深入的研究,对于CleanMyMac这款产品也有深入了解。CleanMyMac是一款专为Mac用户设计的系统清理与优化软件,旨在帮助用户解决Mac电脑使用过程中的各种问题,让电脑恢复如新的状…

Linux系统中网络协议栈优化

在现代计算机网络中,网络协议栈是实现网络通信的核心组件之一。在Linux系统中,网络协议栈的优化对于提高网络性能、降低延迟、增强安全性等方面至关重要。本文将深入探讨Linux系统中网络协议栈的优化方法和技术,包括使用更快的网络协议栈和禁…

基于Arduino nano配置银燕电调

1 目的 配置电调,设置电机转动方向,使得CW电机朝顺时针方向转动,CCW电机朝逆时针转动。 2 步骤 硬件 Arduino nano板子及USB线变阻器银燕电调EMAX Bullet 20A朗宇电机 2205 2300KV格氏电池3S杜邦线若干接线端子 软件 BLHeliSuite 注意…

【LeetCode: 21. 合并两个有序链表 + 链表】

🚀 算法题 🚀 🌲 算法刷题专栏 | 面试必备算法 | 面试高频算法 🍀 🌲 越难的东西,越要努力坚持,因为它具有很高的价值,算法就是这样✨ 🌲 作者简介:硕风和炜,…

Redis实现高可用持久化与性能管理

前言 在生产环境中,为了实现Redis的高可用性,可以采用持久化、主从复制、哨兵模式和 Cluster集群的方法确保数据的持久性和可靠性。这里首先介绍一下使用持久化实现服务器的高可用。主从复制、哨兵模式和集群介绍请参考:Redis主从复制、哨兵…

STL库 —— vector 的编写

一、成员变量 二、容量成员 2.1 size 函数 我们在定义私有成员时就会发现,其中 _finish 相当于 string 中的 size 的地址, _endofstorage 相当于 string 中的 capacity 的地址,所以 size 函数和 capacity 函数其实基本没有改变。 size_t s…

MIT6.828 Lab1 Xv6 and Unix utilities

2023MIT6.828 lab-1 官方地址 一、sleep 实验内容 调用sleep(系统调用)编写用户级别程序能暂停特定时常的系统滴答程序保存在user/sleep.c 实验过程 xv6的参数传递 查看官方文档提示的文件中,多采用如下定义: int main(in…

如何在nuxt中优雅使用swiper,实现过渡反向+贴合无缝+循环播放【核心代码分析】

视频效果 20240402-1723 图片效果 技术栈 Nuxt3 + Swiper11 Nuxt3 Nuxt: The Intuitive Vue Framework Nuxt Swiper11 Swiper - The Most Modern Mobile Touch Slider (swiperjs.com) 当然你也可以是使用nuxt-swiper Nuxt-Swiper GitHub - cpreston321/nuxt-swiper: Swi…

CPU+GPU+NPU三位一体AI边缘控制器,三屏异显,搭载RK3588处理器

XMS-201采用了Rockchip RK3588八核64位处理器,集成ARM Mali-G610 MP4四核GPU,内置AI加速器NPU,可提供6Tops算力,支持主流的深度学习框架;性能强劲的RK3588可为各类AI应用场景带来更强大的性能表现,适用于机…

【40分钟速成智能风控1】互联网金融风险管理简介

目录 瓦联网金融的发展和现状 风险管理类型划分 欺诈风险 第一方和第三方 账户级和交易级 个人和团伙 互联网金融是传统金融业务与新兴互联网技术结合的一个交叉领域,例如互联网公司开展的金融业务,或者金融机构的线上化服务,都属于互联…

Brain.js 的力量:构建多样化的人工智能应用程序

机器学习(ML)是人工智能 (AI) 的一种形式,旨在构建可以从处理的数据中学习或使用数据更好地执行的系统。人工智能是模仿人类智能的系统或机器的总称。 机器学习(ML)与复杂的数学纠缠在一起,让大多数初学者…