虚拟化技术、Docker、K8s笔记总结
一、虚拟化技术
是一种将物理资源(如服务器、存储设备、网络设备等)抽象、转换和分割成多个逻辑资源的技术。通过虚拟化技术,用户可以在单个物理设备上运行多个相互独立的虚拟环境,从而提高资源的利用率、降低运维成本和提高系统的可扩展性。以下是对虚拟化技术的总结:
类型:虚拟化技术主要分为两大类,即服务器虚拟化和桌面虚拟化。服务器虚拟化是将一个物理服务器分割成多个虚拟机,每个虚拟机可以运行不同的操作系统和应用程序。桌面虚拟化则是将用户的桌面环境虚拟化,使用户能够在任何设备上访问其个人桌面。
优点:
资源利用率高:通过虚拟化技术,可以将物理资源动态分配给多个虚拟机,从而提高资源的利用率。
降低成本:虚拟化技术可以减少硬件投资、降低能源消耗和维护成本。
系统可扩展性强:虚拟化技术可以轻松地添加或删除虚拟机,以满足业务需求的变化。
灵活性高:虚拟化技术允许用户在不同的虚拟环境中运行不同的操作系统和应用程序,提高了系统的灵活性。
高可用性:虚拟化技术可以实现虚拟机的快速迁移,确保业务的连续性。
缺点:
性能损失:虽然虚拟化技术已经取得了很大的进步,但在一些场景下,虚拟机的性能仍然无法与物理机相媲美。
管理复杂性:虚拟化环境下的管理和维护工作相对复杂,需要专门的知识和技能。
安全性问题:虚拟化技术可能会带来新的安全风险,如虚拟机逃逸、虚拟机间攻击等。
虚拟化技术的应用:
云计算:
虚拟化技术是云计算的基础,通过将计算资源、存储资源和网络资源进行虚拟化,实现资源的按需分配和灵活调度。
数据中心整合:通过虚拟化技术,可以将分散在不同地点的服务器、存储设备和网络设备整合到一个统一的平台上,降低运维成本和管理复杂性。
软件测试和开发:虚拟化技术可以为软件开发人员提供一个隔离的环境,以便在同一台物理机上运行多个不同的操作系统和应用程序。
桌面虚拟化:通过桌面虚拟化技术,用户可以在任何设备上访问其个人桌面,实现办公环境的移动性和灵活性。
二、Docker容器的优势主要体现在以下几个方面:
1、轻量级和快速启动:Docker容器共享主机操作系统的内核,无需模拟整个操作系统,因此相比于虚拟机更加轻量级。这使得容器的启动速度非常快,通常只需几秒钟,极大地提高了开发、测试和部署的效率。
2、隔离性和安全性:Docker提供了良好的隔离性,每个容器都有自己的文件系统、网络空间和进程空间,因此容器之间相互隔离,保证了应用程序的稳定性。同时,Docker的安全特性也确保了容器环境的安全性。
3、可移植性和跨平台性:Docker容器可以在不同的操作系统和云服务上运行,而不需要担心环境兼容性的问题。这大大提高了应用程序的可移植性,使其更容易在不同平台上部署和运行。
4、易于扩展和管理:Docker容器提供了简单易用的管理界面,使用户可以轻松地对容器进行扩展和管理。
5、资源占用少,性能优于通过Hypervisor层与内核层的虚拟化。
6、可重复使用和一致性:Docker容器可以在不同的实例上运行相同的程序,这大大简化了应用程序的管理和发布。
常用的Docker容器命令:
1、运行容器:使用docker run命令来创建并启动一个新的容器。例如,docker run -it --name my_container my_image将启动一个名为my_container的交互式容器,该容器基于my_image镜像。
2、列出容器:使用docker ps命令可以列出当前正在运行的容器。添加选项-a可以显示所有容器,包括未运行的;添加选项-f可以根据条件过滤显示的内容。
3、停止容器:可以使用docker stop命令来停止一个正在运行的容器,例如,docker stop my_container将停止my_container容器。
4、查看历史记录:使用docker logs命令可以查看一个容器的历史记录,例如,docker logs my_container将显示my_container容器的历史记录。
5、删除容器:可以使用docker rm命令来删除一个已停止的容器,例如,docker rm my_container将删除my_container容器。
6、查看容器信息:使用docker info命令可以查看Docker容器的相关信息,例如,系统的Docker服务状态、Docker版本和运行中的容器信息等。
三、Kubernetes(通常被称为K8s)的优势主要体现在以下几个方面
首先,K8s可以满足负载均衡和服务自愈的需求。如果某个节点发生故障,K8s能够自动重新创建之前运行在此节点上的pod,并在其他节点上运行,这大大提高了应用的可靠性。其次,K8s支持容器的自动扩缩容,当发现有节点工作不饱和时,K8s会重新分配pod,帮助我们节省开销,高效地利用内存、处理器等资源。此外,K8s也支持滚动升级和版本回滚,这意味着在更新应用程序时,不必停止正在运行的服务。
除此之外,K8s还具有以下优点:它跨平台运行,可在物理机、虚拟机和云平台上进行部署;具备自我修复能力,支持容器故障后自动重启、节点故障后重新调度容器到其他可用节点、健康状态检查失败后关闭容器并重新创建等自我修复机制;并且,K8s还提供了服务发现和负载均衡功能。
最后,值得一提的是,K8s支持多种数据存储系统,包括节点本地存储、网络存储系统等,满足了各种存储需求。同时,它还支持密钥和配置管理,对于敏感数据如用户名和密码、令牌、密钥等信息,Secret组件提供了足够的安全保障。因此,无论是从提高运维效率、优化资源利用,还是保障应用的可靠性和安全性等方面来看,Kubernetes都具有显著的优势。
Kubernetes(K8s)是一个开源的容器编排平台,用于自动化部署、扩展和管理容器化应用程序。
常用的K8s命令:
1、kubectl get:获取资源列表。例如,kubectl get pods可以列出所有Pod。
2、kubectl describe:显示资源的详细信息。例如,kubectl describe pod my-pod可以显示my-pod Pod的详细信息。
3、kubectl create:创建资源。例如,kubectl create deployment my-deployment --image=nginx:latest可以创建一个名为my-deployment的 Deployment,使用最新版本的Nginx镜像。
4、kubectl delete:删除资源。例如,kubectl delete deployment my-deployment可以删除名为my-deployment的Deployment。
5、kubectl apply:应用配置文件或目录中定义的资源。例如,kubectl apply -f my-deployment.yaml可以应用my-deployment.yaml文件中定义的资源。
6、kubectl edit:编辑资源的配置。例如,kubectl edit deployment my-deployment可以编辑名为my-deployment的Deployment的配置。
7、kubectl logs:查看容器日志。例如,kubectl logs my-pod可以查看名为my-pod的Pod中的容器日志。
8、kubectl exec:在容器内执行命令。例如,kubectl exec my-pod -- ls /app可以在名为my-pod的Pod内的/app目录下执行ls命令。
9、kubectl port-forward:将本地端口转发到集群中的服务。例如,kubectl port-forward service/my-service 8080:80可以将名为my-service的服务的端口80映射到本地的8080端口上。
相关文章:
虚拟化技术、Docker、K8s笔记总结
一、虚拟化技术 是一种将物理资源(如服务器、存储设备、网络设备等)抽象、转换和分割成多个逻辑资源的技术。通过虚拟化技术,用户可以在单个物理设备上运行多个相互独立的虚拟环境,从而提高资源的利用率、降低运维成本和提高系统…...

基于springboot+vue的在线拍卖系统(前后端分离)
博主主页:猫头鹰源码 博主简介:Java领域优质创作者、CSDN博客专家、公司架构师、全网粉丝5万、专注Java技术领域和毕业设计项目实战 主要内容:毕业设计(Javaweb项目|小程序等)、简历模板、学习资料、面试题库、技术咨询 文末联系获取 项目背景…...
【征服redis3】一文征服redis的jedis客户端
使用数据库的时候,我们可以用JDBC来实现mysql数据库与java程序之间的通信,为了提高通信效率,我们有了数据库连接池比如druid等等。而我们想通过Java程序控制redis,同样可以借助一些工具来实现,这就是redis客户端&#…...
Python如何操作RabbitMQ实现direct关键字发布订阅模式?有录播直播私教课视频教程
direct关键字发布订阅模式 基本用法 发布者 import json from rabbitmq import pika import rabbitmq# 建立连接 credentials rabbitmq.PlainCredentials(zhangdapeng,zhangdapeng520, ) # mq用户名和密码 connection_target rabbitmq.ConnectionParameters(host127.0.0.…...
如何应用数据图表了解家里的 Unifi 网络状况?
1. 前言 自从之前写了《【让 IT 更简单】使用 Ubiquiti 全家桶对朋友家进行网络改造》 《【Rethinking IT】如何结合 Unifi 和 MikroTik 设备打造家庭网络》两篇文章后,相信给各位正在用 Unifi 或者打算使用 Unifi 的朋友应该有所帮助。 那么,今天我就…...

新版K8s:v1.28拉取Harbor仓库镜像以及本地镜像(docker弃用改用containerd,纯纯踩坑)
目录 一、项目概述二、环境三、项目样式Harborkuboard运行样式 四、核心点Harbor安装config.toml文件修改(containerd)ctr、nerdctl相关命令kuboard工作负载 五、总结 一、项目概述 使用Kuboard作为k8s集群的管理平台,Harbor作为镜像仓库,拉取Harbor镜像…...

Unity URP切换品质和Feature开关的性能问题
现在对我的项目进行安卓端发布,需要切换品质和一些Feature开关。 我是这样做的。 划分品质 首先Renerer分为2个Android和PC,图中其他不用参考。 每个副本的URP Asset分为pc和android,例如图中的 hall和hall_android。 我们可以看到hall用的…...
jmeter解决返回unicode编辑
一般乱码有两种方法来解决: 1、修改配置文件jmeter.properties中默认编码格式ISO-8859-1(不支持中文),修改为utf-8 sampleresult.default.encoding utf-82、添加BeanShell PostProcessor加入 prev.setDataEncoding("utf-8")3、还有一种返回…...

C# 基础入门
第二章 C# 语法基础 2-1 C# 中的关键字 关键字,是一些被C#规定了用途的重要单词。 在Visual Studio的开发环境中,关键字被标识为蓝色,下图代码中,用红方框圈出的单词就是关键字。 关键字 class ,这个关键字的用途是…...
PHP 支付宝(单笔转账到银行账户接口)
alipay.fund.trans.tobank.transfer(单笔转账到银行账户接口) 小程序文档 - 支付宝文档中心 一、下载支付宝SDK,现有版本v1、v2、v3 https://github.com/alipay/alipay-sdk-php-all github 慢的话,DNS 直达即可 140.82.112.3 github.com 【host文…...
【Java万花筒】Java安全卫士:从密码学到Web应用攻击
Java安全锦囊:从Web应用攻击到加密算法,助你建立强固的开发堡垒 前言 在当今数字化时代,安全性至关重要,特别是对于Java开发者而言。本文将深入探讨Java安全与加密领域的关键库和技术,包括Bouncy Castle、Jasypt、Ke…...

redis安装-Linux为例
可以下载一个Shell或者MobaXterm工具,便于操作 在redis官网下载压缩包 开始安装 安装依赖 yum install -y gcc tcl切换目录 切换目录后直接把redis安装包拖到/user/local/src/下 cd /user/local/src/解压然后安装 #解压 tar -zxvf redis-7.2.4.tar.gz #安装 …...
iOS长按时无法保存图片问题解决方案
在使用iOS设备的用户中,相信很多人都有过在浏览网页时遇到长按时无法保存图片的困扰。这主要是因为网页开发者为了保护版权或隐私,默认屏蔽掉了图片长按时保存的功能。 具体来说,问题出在-webkit-touch-callout这个CSS属性上。这个属性用于定…...
Datawhale 强化学习笔记(一)
参考 在线阅读文档 github 教程 开源框架 JoyRL datawhalechina/joyrl: An easier PyTorch deep reinforcement learning library. (github.com) 策略梯度算法的两种不同的推导版本。 强化学习中的一些核心问题,比如优化值的估计、解决探索与利用等问题。 从传统强…...

首届PolarDB开发者大会在京举办,阿里云李飞飞:云数据库加速迈向智能化
1月17日,阿里云PolarDB开发者大会在京举办,中国首款自研云原生数据库PolarDB发布“三层分离”新版本,基于智能决策实现查询性能10倍提升、节省50%成本。此外,阿里云全新推出数据库场景体验馆、训练营等系列新举措,广大…...
003-90-15【SparkSQLDFDS】慈航寺庙山脚下八卦田旁油菜花海深处人家王大爷家女儿用GPT学习DataSet的基本操作
003-90-14【SparkSQL&DF&DS】慈航寺庙山脚下八卦田旁油菜花海深处人家王大爷家女儿用GPT学习DataSet的基本操作 【SparkSQL&DF&DS】Dataset 的创建和使用 【SparkSQL&DF&DS】2,Dataset 的创建和使用1, 创建2, show3, map4, as5, select6 f…...

代码随想录-刷题第五十七天
42. 接雨水 题目链接:42. 接雨水 思路:本题十分经典,使用单调栈需要理解的几个问题: 首先单调栈是按照行方向来计算雨水,如图: 使用单调栈内元素的顺序 从大到小还是从小到大呢? 从栈头&…...
flutter 播放SVGA动图
SVGAPlayer-Flutter:这是一个轻量级的动画渲染库,可以通过Flutter CustomPainter原生渲染动画,为您带来高性能,低成本的动画体验123。 您可以按照以下步骤使用 SVGAPlayer-Flutter 插件: 1.在 pubspec.yaml 文件中添…...

鸿蒙开发软件汉化
一、打开设置 File>Settings>Plugins>Marketplace,输入Chinese搜索插件(有的人是搜不到的),但别慌,选择Marketplace傍边的 Installed 按钮,里面就有Chinese插件(如果搜索出来的东西比较多往下就可…...

Three.js Tri-panner (三面贴图) 材质 两种实现方式
文章目录 介绍自定义shaderNodeMaterial骨骼材质特殊处理 介绍 Tri-panner 在babylonjs中有支持 但是three.js目前的基础材质并不支持 需要自己定义shader 或者使用目前还没有什么完善的文档的 NodeMaterial 下面展示两种实现方式 自定义shader /*** description: 替换三角面…...
R语言AI模型部署方案:精准离线运行详解
R语言AI模型部署方案:精准离线运行详解 一、项目概述 本文将构建一个完整的R语言AI部署解决方案,实现鸢尾花分类模型的训练、保存、离线部署和预测功能。核心特点: 100%离线运行能力自包含环境依赖生产级错误处理跨平台兼容性模型版本管理# 文件结构说明 Iris_AI_Deployme…...
JVM垃圾回收机制全解析
Java虚拟机(JVM)中的垃圾收集器(Garbage Collector,简称GC)是用于自动管理内存的机制。它负责识别和清除不再被程序使用的对象,从而释放内存空间,避免内存泄漏和内存溢出等问题。垃圾收集器在Ja…...
React Native在HarmonyOS 5.0阅读类应用开发中的实践
一、技术选型背景 随着HarmonyOS 5.0对Web兼容层的增强,React Native作为跨平台框架可通过重新编译ArkTS组件实现85%以上的代码复用率。阅读类应用具有UI复杂度低、数据流清晰的特点。 二、核心实现方案 1. 环境配置 (1)使用React Native…...
JDK 17 新特性
#JDK 17 新特性 /**************** 文本块 *****************/ python/scala中早就支持,不稀奇 String json “”" { “name”: “Java”, “version”: 17 } “”"; /**************** Switch 语句 -> 表达式 *****************/ 挺好的ÿ…...

华硕a豆14 Air香氛版,美学与科技的馨香融合
在快节奏的现代生活中,我们渴望一个能激发创想、愉悦感官的工作与生活伙伴,它不仅是冰冷的科技工具,更能触动我们内心深处的细腻情感。正是在这样的期许下,华硕a豆14 Air香氛版翩然而至,它以一种前所未有的方式&#x…...

嵌入式学习笔记DAY33(网络编程——TCP)
一、网络架构 C/S (client/server 客户端/服务器):由客户端和服务器端两个部分组成。客户端通常是用户使用的应用程序,负责提供用户界面和交互逻辑 ,接收用户输入,向服务器发送请求,并展示服务…...
IP如何挑?2025年海外专线IP如何购买?
你花了时间和预算买了IP,结果IP质量不佳,项目效率低下不说,还可能带来莫名的网络问题,是不是太闹心了?尤其是在面对海外专线IP时,到底怎么才能买到适合自己的呢?所以,挑IP绝对是个技…...

面向无人机海岸带生态系统监测的语义分割基准数据集
描述:海岸带生态系统的监测是维护生态平衡和可持续发展的重要任务。语义分割技术在遥感影像中的应用为海岸带生态系统的精准监测提供了有效手段。然而,目前该领域仍面临一个挑战,即缺乏公开的专门面向海岸带生态系统的语义分割基准数据集。受…...

R 语言科研绘图第 55 期 --- 网络图-聚类
在发表科研论文的过程中,科研绘图是必不可少的,一张好看的图形会是文章很大的加分项。 为了便于使用,本系列文章介绍的所有绘图都已收录到了 sciRplot 项目中,获取方式: R 语言科研绘图模板 --- sciRplothttps://mp.…...
MinIO Docker 部署:仅开放一个端口
MinIO Docker 部署:仅开放一个端口 在实际的服务器部署中,出于安全和管理的考虑,我们可能只能开放一个端口。MinIO 是一个高性能的对象存储服务,支持 Docker 部署,但默认情况下它需要两个端口:一个是 API 端口(用于存储和访问数据),另一个是控制台端口(用于管理界面…...