docker与k8s的异同
容器化技术已经成为现代云计算和DevOps的核心组成部分,而 Docker 和 Kubernetes(K8S) 是其中最重要的两个工具。很多人对它们的定位和关系感到困惑: Docker 负责什么? Kubernetes 又负责什么? 它们的网络模型有何不同? 本文将从 架构定位、核心功能、网络模型 三个方面深入对比,帮助你彻底理解二者的关系与差异。 1. Docker 与 Kubernetes 的定位与关系(1) Docker:单机容器运行时 核心功能: 创建、运行和管理单个容器(应用打包与隔离)。 提供镜像构建(Dockerfile)和分发(Docker Hub)。 适用场景: 本地开发、测试环境。 单机部署简单应用。 (2) Kubernetes:容器编排系统 核心功能: 管理多个容器化应用的部署、伸缩、负载均衡。 自动化运维(自愈、滚动更新、服务发现)。 适用场景: 生产环境的大规模集群管理。 微服务架构(数百个容器的协同)。 类比理解: Docker...
doc与docx的历史
在 Linux 系统上处理 Microsoft Word 文档时,我们经常会遇到两种格式:.doc 和 .docx。由于兼容性问题,有时需要将旧版 .doc 转换为 .docx 才能正常编辑。本文将详细介绍这两种格式的历史、区别,并讲解如何使用 LibreOffice 进行转换。 1. DOC 与 DOCX 的历史与区别(1) DOC 格式(1990s–2007) 诞生:DOC 是 Microsoft Word 的专有二进制格式,最早随 Word 1.0(1983)推出,并在 Word 97–2003 成为主流。 特点: 二进制存储(不可直接阅读)。 文件体积较大(未优化压缩)。 兼容性问题较多(不同 Word 版本可能显示不同)。 现状: 已淘汰,但仍有一些旧文档使用。 (2) DOCX 格式(2007–至今) 诞生:DOCX 是 Microsoft Office 2007 引入的 Office Open XML (OOXML) 格式,现为 Word 默认格式。 特点: 基于 XML(结构化文本,可解压查看内容)。 采用 ZIP...
打包与压缩
在软件开发、数据备份和文件传输中,我们经常会遇到各种归档和压缩格式,如 ZIP、TAR、TAR.GZ、RAR、7Z 等。这些格式有些是纯打包,有些是纯压缩,有些则是打包+压缩的组合。本文将详细解析它们的区别、适用场景及优缺点。 1. 基础概念:打包 vs 压缩在讨论具体格式之前,先明确两个核心概念: 打包(Archiving):将多个文件或目录合并成一个文件,但不进行压缩。特点:保留文件结构、权限、元数据,但文件大小不变。典型格式:TAR、CPIO。 压缩(Compression):通过算法减少文件体积,但不涉及多文件管理。特点:文件变小,但通常只能压缩单个文件(除非先打包)。典型格式:GZ、BZ2、XZ、ZSTD。 关键区别: 打包 = 合并文件(如 tar) 压缩 = 减小体积(如 gzip) 打包+压缩 = 先打包再压缩(如 tar.gz) 2. 常见归档/压缩格式详解(1) 纯打包格式TAR (Tape Archive) 特点: Unix/Linux...
包装函数的一些用法
在 Python 开发中,经常会遇到需要对函数进行扩展或修改其行为的情况,但又不希望直接修改函数本身的代码。这时,包装函数(也称为装饰器)就派上了大用场。它是一种非常优雅且强大的工具,能够以一种简洁的方式增强函数的功能。 一、包装函数的基本概念包装函数本质上是一个返回函数的高阶函数。它接收一个函数作为参数,对其进行包装,然后返回一个新的函数。通过使用 @ 符号,可以很方便地将包装函数应用到目标函数上。 在 Python 中,通常使用 functools.wraps 来保留被包装函数的元信息(如函数名、文档字符串等),以确保在使用装饰器后,函数的这些信息不会丢失。 二、应用场景:系统参数与用户参数的结合代码示例中,包装函数被用来解决一个非常实用的问题:当系统中需要调用一个函数时,这个函数的参数既包括用户提供的参数,也包括系统配置的参数。如果直接在每次调用时手动添加这些参数,代码会变得冗长且难以维护。而通过使用包装函数,可以将系统参数封装起来,让用户在调用时只需传入自己的参数即可。 12345678910111213141516171819202122232425from...
使用python进行mysql数据迁移
Alembic是一个数据库管理工具,用于管理数据库迁移。它允许你创建、应用和撤销数据库迁移,以便在数据库结构发生变化时保持版本控制。任何有关数据库变动都需要使用这个库来进行操作。这是一个python库,版本已经记录在项目下的requirements.txt文件当中。 新增字段操作如下在使用 Alembic 进行数据库迁移时,你需要通过 Alembic 的迁移脚本来实现对表结构的修改,同时确保原始数据不会被删除。以下是基于你的需求,使用 Alembic 添加一个新字段 usr_id 并设置默认值为 0 的详细步骤: 1. 初始化 Alembic 环境如果你还没有初始化 Alembic,需要先在项目中初始化它: 1alembic init alembic 这会在项目中创建一个 alembic 文件夹,其中包含 Alembic 的配置文件和迁移脚本模板。 2. 配置 Alembic编辑 alembic.ini 文件,确保其中的 sqlalchemy.url 配置正确指向你的数据库: 1sqlalchemy.url =...
pyhon包的离线更新与迁移
如何使用 Conda 和 Pip 离线下载 Python 包在某些情况下,可能需要在没有网络连接的环境中安装 Python 包,例如在公司内网或安全环境中。为了实现这一目标,可以使用 Conda 和 Pip 提供的离线下载功能,提前将所需的包下载到本地,然后在目标环境中进行安装。以下是一个简单的指南,帮助你在离线环境中高效地管理 Python 包。 第一步:离线下载包使用 Pip 下载Pip 提供了一个非常方便的选项来离线下载包及其依赖。你可以使用以下命令下载指定的包及其依赖: 1pip download package_name 如果你有一个 requirements.txt 文件,包含多个包的依赖,可以使用以下命令一次性下载所有包: 1pip download -r requirements.txt 这会将所有包及其依赖下载到当前目录。你也可以指定下载路径,例如: 1pip download -r requirements.txt -d /path/to/download 这样,所有下载的 .whl 文件和 .tar.gz 文件都会保存到指定的目录中。 使用...
VLLM-多机多卡推理部署
本教程将指导如何在多机多卡环境中部署 vLLM 推理服务,以实现高效的分布式推理。假设你已经安装了 Docker 和下载好了模型文件,并且两台服务器的模型存放路径一致。 1. 安装 NVIDIA Container Toolkit在开始之前,确保你的服务器已经安装了 NVIDIA Container Toolkit,以便 Docker 能够使用 GPU 资源。 1.1 添加 NVIDIA 容器工具包仓库运行以下命令,添加 NVIDIA 容器工具包的官方仓库: 1234curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg \ && curl -s -L https://mirrors.ustc.edu.cn/libnvidia-container/stable/deb/nvidia-container-toolkit.list |...
docker-容器网络通信问题
问题背景在Docker容器化部署中,你是否遇到过以下问题? 容器IP地址动态变化(如 172.17.0.2、172.18.0.5),硬编码IP导致服务频繁断连 端口映射混乱(如 9001:9000),维护文档难以跟踪实际服务端口 多容器通信需手动维护IP列表,扩容时配置复杂度指数级上升 这些问题本质源于对Docker网络模型的误解。 一、问题根源分析1. Docker默认网络的局限性 **默认网桥bridge**:所有容器共享同一网段,但 无内置DNS服务,只能通过IP通信 IP动态分配:容器重启或重建后IP可能变化,导致依赖IP的配置失效 端口映射暴露过多:-p参数将容器端口映射到宿主机,易引发端口冲突 2. 传统解决方案的缺陷 静态IP绑定:通过--ip固定IP,但违背容器动态伸缩的设计理念 Host网络模式:容器直接使用宿主机网络,丧失隔离性,安全隐患大 手动维护IP列表:通过脚本或配置文件记录IP,维护成本高且易出错 二、标准化解决方案核心原则✅ 以容器名代替IP:利用Docker内置DNS实现服务发现✅...
单节点k8s安装部署文档
在 Ubuntu 中使用阿里源部署单节点 Kubernetes 集群本教程是在 Ubuntu 操作系统中使用阿里云镜像源部署单节点 Kubernetes 集群。将使用 kubeadm 工具进行部署。 前提条件: 已安装 Docker (本教程省略 Docker 安装步骤) Ubuntu 操作系统 (当前版本:Linux shumo-ai 5.11.0-27-generic #29~20.04.1-Ubuntu SMP Wed Aug 11 15:58:17 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux) 官方建议至少 2GB RAM 和 2 CPU 核心 稳定的网络连接(当前教程为联网教程) root 或具有 sudo 权限的用户 步骤 1: 更新系统并安装依赖 更新系统软件包列表: 1sudo apt update 安装必要的依赖包: 1sudo apt install -y apt-transport-https ca-certificates curl software-properties-common 步骤 2: 添加阿里云...














