首页/云/云与容器速查

云与容器速查

VPC / 安全组 / 计算存储 / 计费 + Docker / K8s 命令与容器排障:云平台与容器平台双栈速查,含三厂对照。

共 340 条更新于 2026-10-12所属领域:云
共 340 条

云基础概念

区域、可用区、账号体系与资源模型

VPC 专有网络基础概念热门

VPC 是云上逻辑隔离的私有网络,用户自定义网段、子网、路由与网关;所有云资源的网络边界默认就是 VPC,是网络规划的第一块地基。

区域与可用区 Region/AZ热门

Region 是云平台独立的地理区域,AZ 是区域内电力与网络隔离的机房集群;资源创建在选定区域,访问延迟与容灾拓扑都由它决定。

负载均衡 SLB/CLB/ELB热门

负载均衡把访问请求分发到多台后端服务器,提供公网/私网入口、健康检查与 TLS 卸载,是云上高可用业务的标准入口层。

安全组概念与作用热门

安全组是作用在实例网卡上的虚拟防火墙,通过规则控制进出流量(协议、端口、来源、策略);实例可加入多个安全组,规则叠加生效。

对象存储 OSS/COS/OBS热门

对象存储用 HTTP(S) API 存取图片、视频、备份、日志等海量非结构化数据,以 Bucket 组织数据、按量计费、容量近乎无限。

交换机/子网 Subnet 概念热门

子网(阿里云称交换机 vSwitch)是 VPC 网段的细分并绑定一个可用区;实例、负载均衡、NAT 网关等资源都从所属子网分配内网地址。

弹性公网 IP EIP热门

EIP 是可独立购买、随时绑定与解绑的公网地址,可挂到 ECS、NAT 网关、负载均衡等资源上,是云上对外服务与出网的主要方式。

访问控制 RAM/CAM/IAM热门

云账号的权限系统:通过子用户、角色与策略控制谁能对哪些资源做哪些操作;生产环境严禁业务程序共用主账号 AccessKey。

NAT 网关

NAT 网关让 VPC 内没有公网 IP 的实例访问互联网(SNAT),也能把公网请求转发到指定内网主机(DNAT),是内网机器出网的标准做法。

多可用区部署与容灾设计

把业务实例分散到同地域多个可用区,配合负载均衡与跨 AZ 数据库主备抵御单机房故障;代价是跨 AZ 延迟与流量成本。

快照 Snapshot

快照是云盘某一时刻的块级备份,可用于数据回滚与创建镜像;增量快照首份全量、后续只存变化块,是云上数据安全的第一道防线。

常用地域代码对照(三厂)

调用 API/CLI 使用地域代码而非城市名:阿里云 cn-<城市>、腾讯云 ap-<城市>、华为云 cn-<方向>-<序号>,写法各不相同。

API / CLI / SDK 自动化运维

云平台全部功能都对应 OpenAPI;官方 CLI(aliyun、tccli、hcloud)与各语言 SDK 适合批量查询、脚本化变更与 CI/CD 集成。

镜像 Image

镜像是云服务器的装机模板:公共镜像、自定义镜像、共享镜像、镜像市场;批量部署与弹性扩容都从镜像开始。

CDN 内容分发网络

把静态资源缓存到边缘节点,用户就近访问、降低源站压力;动静态分离加缓存规则是网站提速与省带宽的第一手段。

混合云 Hybrid Cloud

把本地 IDC 与云上 VPC 通过 VPN/专线打通,数据与业务按需分布在两侧;兼顾存量资产、弹性和数据合规,是最常见的上云形态。

账号体系:主账号、子账号与企业账号

主账号拥有全部资源的最终所有权与账单;子账号(RAM 用户/协作者)承担日常运维;多业务线可用多账号加资源目录实现隔离与集中结算。

云监控 CloudMonitor

云平台自带主机与云产品监控:CPU、网络、磁盘 IO、云盘指标与告警规则;内存和磁盘使用率通常需要安装监控 Agent 才能采集。

容灾方案分级:从备份到双活

按 RTO/RPO 与投入把容灾分为备份恢复、冷备、温备、热备、双活五级;业务重要性决定级别,级别决定预算。

服务接入点 Endpoint

每个云服务在每个地域都有访问域名 Endpoint,SDK/CLI 靠它定位服务;公网、内网与 VPC 私网 Endpoint 各不相同,用错既慢又贵。

三厂术语对照:计算与实例

同一能力三厂命名不同,跨云迁移与混部前先看对照:云服务器、快照、弹性伸缩、竞价实例的叫法差异最大。

弹性伸缩 Auto Scaling

按 CPU/内存等指标或定时策略自动增减实例,并自动挂载到负载均衡后端;高峰扩容、低谷缩容,兼顾可用性与成本。

云解析 DNS

域名托管解析服务:A/CNAME/MX/TXT 记录、按线路智能解析、权重与健康检查;三厂为云解析 DNS、DNSPod、云解析服务 DNS。

标签 Tag 资源分类

用 Key-Value 标签给资源打上项目、环境、负责人等维度,支撑分账账单、批量检索、自动化运维与权限范围控制。

三厂术语对照:网络

VPC、子网、安全组、EIP、负载均衡、NAT 网关在三厂叫法有微差,最容易被卡住的是交换机与负载均衡的命名差异。

三厂术语对照:存储

对象存储、文件存储、云硬盘三厂命名与规格体系差异明显(OSS/COS/OBS、NAS/CFS/SFS、云盘/云硬盘),性能档位也不可直接对比。

云企业网/云联网:多 VPC 互联

把多个 VPC、多个地域乃至多云连成一张内网,自动学习路由、按带宽包计费;三厂为云企业网 CEN、云联网 CCN、企业路由器 ER。

SLA 与可用性指标

云厂商用 SLA 承诺可用性(如 ECS 单实例 99.975%、多可用区 99.995%),并以 RTO/RPO 描述灾备目标;架构设计要按 SLA 反推冗余级别。

无服务器计算 Serverless

无需管理服务器的执行环境:函数计算按调用与资源用量计费,事件驱动自动扩缩容;适合突发流量、定时任务与事件处理。

配额 Quota 与提额

云账号对 vCPU、EIP、安全组规则、NAT 条目等资源都有默认配额且按地域生效;扩容前先查询剩余配额,不够就提工单申请。

三厂术语对照:安全与管理

访问控制、云监控、WAF、堡垒机、DDoS 防护、云防火墙的命名对照;安全产品选型和等保合规方案设计时直接查表。

VPN 网关(IPsec VPN)

通过 IPsec 隧道把 VPC 与本地机房或其他云私网打通,走公网加密传输;成本低于专线,适合中小带宽互联与过渡方案。

对等连接 VPC Peering

把两个 VPC 私网直连,流量走云内骨干网络不走公网;适合少量 VPC 点对点互联,规模变大应改用 CEN/CCN/ER。

同城双活

同城两个机房(或两个可用区)同时承载流量,机房级故障时秒级-分钟级切换;延迟要求通常小于 2ms 才能做到真正的双活。

上云迁移流程与工具

迁移不是搬机器而是搬业务:评估→割接方案→网络打通→数据同步→试运行→正式切换→回滚预案,缺一步都可能翻车。

资源编排 IaC:ROS / Terraform / RFS

用声明式模板描述云资源并用版本管理,实现可重复、可评审、可回滚的资源交付;比控制台点选可靠一个量级。

专线接入 Express Connect

通过物理专线连接本地 IDC 与云上 VPC,延迟稳定、带宽独享,是政企与金融混合云互联的正式方案;三厂为高速通道/专线接入/云专线。

多云架构与多厂商选型

同时使用两家以上云厂商的服务分散风险、避免锁定并满足合规;代价是网络、IAM、运维与成本模型全部要乘二,需要抽象层兜底。

异地灾备

在同城双活之外再加一个异地中心,抵御地震、洪水、大范围断电等区域级故障;数据采用异步复制,RPO 通常为分钟级。

云架构设计原则(Well-Architected)

云上架构的六个支柱:高可用、弹性、安全、成本、运维、性能;每个设计决策都应在这些维度上显式权衡。

资源组/项目分组管理

在账号内按业务或团队把资源分组(资源组、项目、企业项目),配合权限与标签实现按组查看、分权与分账。

裸金属服务器 Bare Metal

没有虚拟化层的独占物理服务器,可通过云控制台/API 管理并与 VPC、镜像、云盘体系打通;适合对性能、硬件或授权有强要求的场景。

云成本治理 FinOps

把云支出可视化、责任到人、持续优化:分账标签管住归属,预算告警管住预期,资源巡检管住浪费。

边缘计算与边缘节点

把计算推进到离用户更近的边缘节点:CDN 边缘函数处理轻量逻辑,边缘节点服务交付完整虚拟机/容器能力,降低延迟与回源压力。

计算与存储

云服务器规格、镜像、云盘与对象存储

云服务器 ECS/CVM 基础概念热门

云服务器是弹性可伸缩的计算服务:实例由 vCPU、内存、镜像、云盘与网络组成,秒级创建、按量或包年包月计费、随时变配。

实例规格族总览与分类

规格族按 CPU:内存比与硬件特性划分:通用型、计算型、内存型、突发型、本地盘型、GPU 型、裸金属;选族先于选尺寸。

云盘类型总览与三厂对照

云盘分档决定性能与价格:高端 ESSD(PL 档)/增强型 SSD/超高 IO,中端 SSD/SSD 云硬盘,入门高效/高性能/高 IO;普通盘基本退市。

通用型规格 g:默认首选

通用型 1:4 的 CPU 内存比适合大多数场景:Web 服务、中小数据库、容器运行时、开发测试;没有特殊瓶颈时从它开始选。

挂载数据盘并初始化

新数据盘使用五步:挂载到实例 → lsblk 核实 → 分区/格式化 → mount 到目录 → 写入 fstab 持久化。格式化前核对盘符是铁律。

存储桶 Bucket 管理

Bucket 是对象存储的顶级容器:名称全局唯一、归属固定地域、权限默认私有;桶名一旦选定不能修改,地域也不能迁移。

云计费模式总览:包年包月/按量/抢占

三种计费模式覆盖不同负载形态:长期稳定用包年包月最省,波动弹性用按量付费,容错任务用抢占式最便宜但可能被回收。

实例规格命名解读(ecs.g7.xlarge)

规格名结构固定:产品.系列+代际.尺寸;尺寸决定 vCPU 数(large=2、xlarge=4、2xlarge=8),内存由系列比例决定。

ESSD PL 档位性能解读

ESSD 的 PL0-PL3 档位对应单盘性能上限:PL0 约 1 万 IOPS/180MBps,PL1 5 万/350,PL2 10 万/750,PL3 100 万/4000;实际还受实例包络限制。

对象存储命令行工具(ossutil/coscmd/obsutil)

三家都提供类 FTP 风格 CLI:上传下载、同步目录、查看删除,一条命令完成控制台多次点击的操作,适合脚本与定期任务。

生命周期规则管理数据沉淀

生命周期规则按前缀与天数自动执行存储类型转换与过期删除:热→低频→归档→删除,是对象存储降本与合规留存的主力工具。

实例选型方法与流程

选型四步:明确瓶颈画像 → 匹配系列与代际 → 定尺寸与数量 → 压测验证;保守起步、数据说话、按需升配。

云盘扩容与文件系统扩展

云盘支持在线扩容容量,但只有在操作系统内扩了分区与文件系统后,新空间才可用;Linux 用 growpart + resize2fs/xfs_growfs。

块/文件/对象存储选型实战

块存储给单机当磁盘用,文件存储给多机共享目录,对象存储存海量非结构化数据;选错形态不是性能不够就是成本翻倍。

对象存储类型:标准/低频/归档/冷归档

按访问频率选择存储类型可显著降本:标准适合频繁访问,低频适合每月少量,归档/冷归档适合长期备份,但取回有费用与等待时间。

桶权限:ACL 与桶策略

桶权限分粗粒度 ACL(私有/公共读/公共读写)与细粒度桶策略(Policy):控制谁能对哪些对象执行哪些操作,还能限制来源 IP 与协议。

对象存储 + CDN 组合分发

CDN 回源对象存储是静态资源的标准架构:用户就近访问边缘节点,回源走对象存储;既提速又省对象存储的公网出流量。

按量付费

后付费按实际使用时长计费(秒/小时级),随开随停、释放即止费;单价高于包年包月,适合弹性与临时场景。

计算型规格 c:高并发算力

计算型 1:2 的单核算力密度更高:高并发前端、游戏服务端、视频编解码、批量计算;用压测数据决定是否需要升级到 c 系。

云盘性能三指标与测试

评估云盘看三指标:IOPS(随机小 IO)、吞吐(顺序大 IO)、时延;数据库看 IOPS+时延,大数据/备份看吞吐。

对象存储计费结构与省钱

对象存储按维度计费:存储容量、请求次数、公网出流量、跨区域复制、归档取回;账单异常通常是流量或请求被刷导致的。

对象存储安全加固清单

对象存储最常见的风险是权限过宽与密钥泄露;按清单逐项加固:默认私有、最小权限、加密、日志、版本控制与生命周期治理。

抢占式/竞价实例

用竞价比市场使用空闲容量:价格通常显著低于按量,但实例可能被系统回收(提前数分钟通知);只用于可中断的工作负载。

公网带宽计费:按带宽 vs 按流量

公网出方向要钱且方式可选:按固定带宽(包月)适合稳定流量,按使用流量(阶梯价)适合波动与低频;选错方式账单差一个量级。

内存型规格 r:内存密集业务

内存型 1:8 面向缓存与内存数据库:Redis、Memcached、SAP HANA、实时大数据;内存扩展型比例可达 1:16。

GPU 实例:AI 训练与推理

GPU 实例挂载 NVIDIA 专业卡,面向模型训练/推理、图形渲染与科学计算;卡型分推理档与训练档,配额通常很小需单独申请。

变更实例规格(升配/降配)

规格变更支持升配与降配:按量实例直接变配(需停机),包年包月需补差价;云盘与公网 IP 保留,重启后生效。

开机自动挂载 /etc/fstab

fstab 负责开机自动挂载:推荐用 UUID 而非设备名(云盘重插后盘符可能漂移),加 nofail 参数可避免启动卡死进急救模式。

签名 URL 临时授权访问

签名 URL 给未登录用户一个带时效的访问凭证,用于私有对象的限时下载/上传;链接过期自动失效,不暴露账号密钥。

文件存储 NAS 使用与权限组

NAS 提供 NFS/SMB 共享目录:创建文件系统后从挂载点挂载到多台实例;权限组按 VPC/网段控制哪些客户端可以挂载。

包年包月付费

预付费锁定资源与价格:购买时长越长折扣越大;到期不续费会停机并进入保留期,超期资源被回收,数据也随之释放。

云盘计费与容量规划

云盘按容量与类型计费:随实例购买(包年包月)或独立按量;扩容按新容量续费,缩容不支持;容量规划留 20% 余量是常规做法。

云内流量计费规则

流量费用看方向与范围:同地域内网(含跨可用区)通常免费,跨地域与公网出方向收费,公网入方向一般免费;架构设计先想流量路径。

突发性能型 t 实例(CPU 积分机制)

t 系列用 CPU 积分平衡成本:平时以基准性能运行并积攒积分,突发时消耗积分提速;积分耗尽后回落到基准性能。

本地盘实例(i/d 系列)

本地盘实例自带宿主机 NVMe SSD 或 HDD,IOPS 与吞吐远高于云盘;但数据仅存本机,宿主机故障即丢失,必须应用层做副本。

快照跨地域复制与自动策略

自动快照策略按周期给云盘打恢复点,跨地域复制把恢复点送到异地;两者组合才能实现『本地快速回滚 + 异地灾难恢复』。

版本控制与误删保护

开启版本控制后每次覆盖与删除都保留历史版本,误删可一键恢复;代价是存储成本随版本数增长,需配合生命周期清理旧版本。

静态网站托管

对象存储可直接托管静态网站:配置索引文档与错误文档,绑定自定义域名后即可访问;生产环境通常再套一层 CDN 与 HTTPS。

自动续费与到期管理

包年包月资源开启自动续费避免误停机,同时建立到期台账:核心资源提前人工复核,避免自动续费后才发现该降配或迁移。

实例元数据服务

实例内部可访问的特殊地址查询自身信息(实例 ID、地域、网卡、RAM 凭证);地址各厂不同:阿里云 100.100.100.200、腾讯云 169.254.0.23、华为云 169.254.169.254。

实例 RAM 角色(免 AK 访问云服务)

给实例绑定 RAM 角色后,实例内程序通过元数据获取 STS 临时凭证访问对象存储等服务,无需在机器上存放永久 AK。

腾讯云/华为云规格命名对照

三厂规格命名规则不同:阿里云『系列+代际+尺寸』,腾讯云『系列名+尺寸代码』,华为云『系列.尺寸.内存倍数』,跨云选型别按名字硬套。

镜像复制与共享

自定义镜像可跨地域复制、可共享给其他账号;复制让多地部署拥有同一环境基线,共享让跨账号交付标准镜像。

对象存储冗余:本地冗余与同城冗余

对象存储底层默认多副本保证持久性;同城冗余(多 AZ)在此基础上抵御可用区级故障,价格更高,适合核心数据。

大文件上传最佳实践

大文件走分片上传 + 断点续传,失败只重传分片;公网带宽有限时用专线或内网网关,避免把上传瓶颈变成业务事故。

共享带宽包

多个 EIP/NAT 共享一条带宽池:按峰值或 95 计费,错峰使用更划算;适合多 IP 多业务的场景。

预算与账单告警

给账号设预算与阈值告警(金额或流量维度),在费用失控前收到通知;同时开启资源级监控,定位到具体资源。

快照计费与清理

快照按实际占用容量计费(增量去重后的容量);能回滚能换钱的地方在于清理策略:过期快照不删就是纯浪费。

S3 协议兼容与三方工具

COS/OBS 对 Amazon S3 API 兼容度较高,早期工具链可直接迁移;OSS 以自有 API 为主,跨云同步常用 rclone 之类多后端工具。

NFS 与 SMB:文件存储协议选择

Linux 生态选 NFS、Windows 生态选 SMB;同时混合系统访问时优选 SMB(Linux 也能挂)或分设两套,避免协议层踩坑。

文件存储性能特征与并发

NAS 的好处是共享,短板是性能:单客户端吞吐有限,靠多客户端聚合;小文件与随机 IO 表现一般,重 IO 场景仍应本地盘/云盘。

预留券与节省计划

对未来用量做承诺换取折扣:预留实例券/节省计划匹配运行中的按量实例后自动抵扣,适合可预测的稳态负载。

云盘加密(KMS)

用 KMS 主密钥加密云盘:创建时勾选即开启,读写透明加解密、性能损耗小;加密盘产生的快照也自动加密,满足静态加密合规要求。

实例自定义数据 User Data

创建实例时传入的初始化脚本(cloud-init):安装软件、配置参数、注册监控等,开机首次自动执行,是自动化交付的第一入口。

ESSD AutoPL 与性能按量

ESSD AutoPL 把容量与性能解耦:有基准性能,可再按需购买额外 IOPS;对 IO 波动大的业务,按量买性能比全程买 PL2/PL3 更省。

云盘多重挂载(共享块设备)

部分高端云盘支持同时挂载到多台实例,形成共享块设备;必须搭配集群文件系统或分布式软件使用,普通文件系统并发挂载会损坏数据。

网络与安全组

VPC、子网、路由表、安全组与弹性 IP

VPC 网段规划实战

网段规划是不可逆决策:避开 IDC 与对端网段、按环境分 VPC、预留扩展空间、容器场景留大段,一次规划决定未来几年互联体验。

安全组规则模型

安全组规则五要素:方向、协议、端口、来源/目的、允许或拒绝;连接是有状态的(放行入方向后返回流量自动允许),默认入拒绝、出允许。

Web 入方向规则实践(80/443 放行)

对公网 Web 服务只放 80/443:来源 0.0.0.0/0;其余端口一律不放;有 HTTPS 强制跳转后 80 也可只保留跳转用途。

路由表基础

每个子网关联一张路由表,路由表决定流量去向:系统路由自动生成,自定义路由手工添加;改路由等于改流量的物理走向。

数据库端口隔离(安全组引用)

3306/6379/5432 等数据端口只允许『应用层安全组』作为来源:以组为源而非 IP,是云上最强的访问隔离实践之一。

网络不通五步排查法

从近到远定位:本机监听 → 安全组/防火墙 → 路由 → 对端策略 → 抓包;每一步只验证一件事,避免多头并进。

子网划分原则

子网按角色分层并绑定可用区:Web、应用、数据、容器、运维各占一段;每个可用区复制一套同构子网,才能做多 AZ 部署。

SSH 端口来源限制

22 端口只允许堡垒机/办公网段访问;没有堡垒机时至少限制到固定出口 IP,并配合密钥认证与失败锁定。

安全组最佳实践清单

安全组治理的五个习惯:默认拒绝、最小开放、组间引用、规范命名、季度审计;坚持下来能将暴露面事故减少大半。

自定义路由与下一跳

自定义路由的核心是『目标网段 + 下一跳』:0.0.0.0/0 指到 NAT 即全子网走 NAT 出网;指到实例可把流量引给防火墙/网关机。

只开常用端口:对外开放清单

公网服务器的最小端口集:80/443 对外,22/3389 仅管理来源;数据库与管理端口一律只在内网开放。定期审计公网暴露面。

负载均衡健康检查与 502 排查

负载均衡 502 常见原因:后端健康检查失败被摘除、后端进程挂、安全组没放健康检查端口;按『检查状态 → 直连后端 → 看日志』顺序排查。

安全组规划与命名规范

按角色建安全组(web/app/db/管理),用组间引用替代 IP 白名单;命名规范让变更与审计一目了然,也避免误绑。

NAT 网关 SNAT 与 DNAT 配置

SNAT 让私网批量出网(交换机粒度);DNAT 把公网端口映射到指定内网主机;两者的组合是『出网共享 + 少量端口对外』的经典配置。

EIP 绑定与解绑操作

EIP 与实例同地域才能绑定;解绑后 EIP 保留(可能收闲置费),绑定新实例即完成公网入口迁移,是故障切换的常用操作。

连通性测试工具组合

四件套走天下:ss 看监听、nc/telnet 测端口、mtr 看链路丢包、curl -v 看应用层;每件工具解决一个层面的问题。

路由优先级与最长前缀匹配

多条路由命中同一目标时按最长前缀匹配(/24 优先于 /16),同前缀下自定义路由优先于系统路由;排查先看有没有更细的路由抢了流量。

公网接入选型:EIP / NAT / 负载均衡

单机要固定公网入口用 EIP;多机共享出网用 NAT;对外服务多机分摊用负载均衡;三者组合覆盖绝大多数公网接入场景。

对等连接操作与验证

对等连接分三步:创建(跨账号需对方接受)→ 双方加路由 → 验证互通;缺任何一步都会『状态正常但流量不通』。

云企业网/云联网操作要点

CEN/CCN 的模型:创建实例 → 加载网络(VPC/专线/VPN)→ 购买带宽包 → 设置跨地域连接带宽;路由由网络自动学习,无需逐条配置。

VPC 内 DNS 解析机制

VPC 给每台实例自动下发内网 DNS(阿里云 100.100.2.136/100.100.2.138):解析内网域名与公网域名;改 /etc/resolv.conf 要防止被 DHCP 覆盖。

NAT 网关创建与规格选择

创建 NAT 网关要点:公网型/私网型、规格(连接数与新建速率)、绑定 EIP、配置 SNAT 与路由;规格不足是高峰期连接超时的常见根因。

安全组出方向管理

出方向默认全允许;高安全场景应收窄:只放业务必需的目标(更新源、对象存储、内网段),切断被入侵后的外联通道。

NAT 网关与 EIP 的对比与组合

NAT 是『多机共享出口』,EIP 是『单个固定地址』;预算充足时『NAT 出网 + 少量 EIP 入口』是清晰的分工组合。

IPsec VPN 配置一致性要点

IPsec 协商三阶段参数必须两端完全一致:IKE 版本与加密套件、预共享密钥、IPsec 加密与 PFS;任何一项不同,隧道都建不起来。

放行 ICMP 与 ping 排查

ping 不通不等于服务不可用:安全组默认拒绝 ICMP;排查连通性需确认 ICMP 是否放行,或改用 TCP 端口探测。

安全组与网络 ACL 的区别

安全组作用于实例网卡且有状态;网络 ACL 作用于子网且无状态,适合整段子网的粗粒度隔离;两者叠加时取交集。

对等连接限制与不传递性

对等连接是点对点且不传递:A-B、B-C 打通不代表 A-C 通;VPC 数量多时用云企业网/云联网替代网状互联。

专线冗余与可靠性设计

单条专线是重大单点:生产应双专线(不同物理路由/不同运营商),配合 BFD 快速检测与 BGP 动态路由实现自动倒换。

私有域名解析(PrivateZone)

私有解析区把自定义域名(如 internal.corp)解析到 VPC 内地址:实例访问与公网同名的内网域名、跨 VPC 共享解析,替代手工 hosts。

VPC 附加网段

VPC 主网段不可修改,但可新增附加网段扩展地址空间:用于新业务段、容器大段或与对端对齐;附加网段之间同样不能重叠。

VPC 流日志

VPC 流日志记录网卡五元组流量元数据(源/目的/端口/协议/动作),投递到日志服务/对象存储,用于审计异常连接与定位丢包。

网络 ACL 使用场景

网络 ACL 是子网级的无状态防火墙:适合『整段子网一刀切』的粗粒度隔离(如生产子网只允许办公段进入管理端口)。

容器与 Docker

镜像、容器、网络、存储与 Compose

docker run 创建并启动容器热门

最核心的命令:从镜像创建容器并启动。常用组合 -d(后台)、--name(命名)、-p(端口)、-v(挂载)、-e(环境变量)、--restart(重启策略)。

docker ps 查看容器热门

列出容器状态:默认只显示运行中的容器,-a 显示全部(含已退出),配合 --filter 与 --format 适合脚本化巡检。

docker exec 进入容器执行命令热门

在运行中的容器内执行命令(最常用是 -it 开 shell 排查问题);exec 不改容器状态,退出不会停容器,与 attach 有本质区别。

docker logs 查看容器日志热门

读取容器 stdout/stderr 日志(json-file 驱动时本地可读):-f 跟随、--tail 尾部、--since 时间范围,是容器排障第一入口。

docker build 构建镜像热门

用 Dockerfile 构建镜像:-t 打标签、-f 指定文件、--build-arg 传参、--target 选多阶段目标;构建上下文大小直接影响速度。

docker pull 拉取镜像

从镜像仓库拉取镜像到本地:默认 Docker Hub;生产应固定版本 tag(避免 latest 漂移),必要时用 digest 锁定内容。

docker inspect 查看容器详情

输出容器/镜像/网络/卷的完整 JSON 状态:用 -f 配合 Go template 提取字段,是查状态、退出码、挂载、网络配置的瑞士军刀。

端口发布 -p 写法与暴露面控制

掌握 -p 的各种写法并控制监听地址:默认绑定 0.0.0.0 全网络,内网服务应写成 127.0.0.1:宿主端口:容器端口,避免数据库、管理后台公网裸奔。

docker compose 命令(Compose V2)

Compose V2 以 docker 插件形式提供,命令为 docker compose(子命令),取代独立的 docker-compose(V1,Python 版已停止维护)。推荐用 compose.yaml 文件名。

docker images 镜像列表

查看本地镜像:仓库、标签、镜像 ID、大小;<none>:<none> 是悬空镜像,通常由新构建覆盖旧标签产生,需定期清理。

多阶段构建(Multi-stage build)

一个 Dockerfile 多个 FROM 阶段:编译工具链留在中间阶段,最终镜像只 COPY 运行产物。Go/Rust/前端项目常用,体积可从 GB 级降到几十 MB。

docker compose up 启动编排

按依赖顺序创建并启动全部服务:-d 后台、--build 先构建镜像、--wait 等健康检查通过再返回,是本地与中小规模部署的日常入口。

docker push 推送镜像与 login

推送本地镜像到远程仓库:先登录、再按 仓库地址/命名空间/名称:tag 打标签,然后 push;K8s 拉取私有镜像需配 imagePullSecrets。

docker stop 优雅停止容器

发送 SIGTERM 等待超时(默认 10s)后 SIGKILL:给进程保存状态、关闭连接的机会;生产务必确认应用能正确处理 SIGTERM。

Dockerfile FROM 基础镜像

每个构建阶段的起点,决定系统能力与镜像体积。生产建议固定 tag 或 digest,并按需声明 --platform,避免 latest 漂移导致构建结果不可复现。

Compose 文件结构与顶层字段

一个 compose.yaml 描述多容器应用:services 定义容器,networks/volumes/secrets/configs 定义共享资源,顶层 name 指定项目名;其余顶层键已废弃。

docker rm 删除容器

删除已停止的容器:运行中需 -f 或先 stop;-v 连同匿名卷一起删除,避免卷残留占用磁盘。

docker stats 资源监控

实时查看容器 CPU、内存、网络、磁盘 IO:--no-stream 取一次快照;配合 --format 适合脚本巡检与告警基线。

docker system prune 清理资源

清理未使用的镜像、容器、网络与构建缓存:-a 扩大到全部未使用镜像、--volumes 连匿名卷;是高风险命令,先看 df 再执行。

bind mount 宿主机目录挂载

把宿主任意目录挂进容器:改配置、换代码立即生效,适合开发与配置注入;代价是权限、SELinux、路径差异等宿主特性会直接进入容器。

Dockerfile CMD 默认命令

容器启动的默认命令或参数:可被 docker run 尾部命令整体覆盖;多条 CMD 只有最后一条生效。与 ENTRYPOINT 组合时扮演默认参数角色。

docker compose logs 聚合日志

一次性查看多个服务日志并按容器名前缀区分:-f 持续跟踪、--tail 限定行数、--since 限定时间;定位启动报错比逐个 docker logs 快得多。

docker tag 重命名镜像

给镜像打新标签(本质是加别名,不复制数据):推送前改成仓库格式;同一镜像可打多个标签用于版本与回滚管理。

docker rmi 删除镜像

删除本地镜像:被容器引用的镜像需先删容器,-f 强制;清理悬空镜像用 image prune,效果更安全。

docker restart 重启容器

stop + start 的组合:常用于改配置文件后让应用重新加载;频繁重启是症状不是方案,应找到根因。

docker network create 自定义网络

创建自定义网络(bridge/overlay 等):同一网络内容器可用容器名互相解析,还能自定义子网、网关与隔离边界。

docker system df 磁盘占用

查看 Docker 各资源占用(镜像/容器/卷/构建缓存)与可回收量:磁盘告警时第一眼工具,-v 显示卷明细。

docker volume ls 数据卷列表

列出数据卷名称与驱动。数据卷由 Docker 管理、生命周期独立于容器,默认 local 驱动落在宿主 /var/lib/docker/volumes 下,是持久化与多容器共享数据的首选。

自定义 bridge 网络与容器名解析

默认 docker0 网络只保证 IP 互通、不支持按名字解析;自建 bridge 网络提供内置 DNS,同网络内用容器名即可互访,是 Compose 单机多容器通信的基础。

Dockerfile RUN 指令

构建期执行命令:安装依赖、编译、生成配置。每条 RUN 生成一个镜像层,安装与清理必须写在同一层,否则体积并不会变小。

Dockerfile ENTRYPOINT 固定入口

把镜像固定为某个可执行入口:docker run 的尾部命令作为参数追加而不是替换。脚本型入口必须用 exec 形式并注意 exec "$@" 转交参数。

docker compose down 停止并清理

停止并删除本项目的容器与网络:-v 连具名卷一起删、--rmi 删镜像、--remove-orphans 清理遗留容器。生产执行 down -v 等于删数据,务必确认。

depends_on 启动顺序与健康条件

短语法只保证启动先后,不保证依赖『就绪』:web 可能在 MySQL 初始化完成前就连库。长语法配合 condition: service_healthy 才是可靠的启动门闩。

Compose 端口发布写法

compose 的 ports 支持短语法字符串与长语法结构:务必给短语法加引号,否则 YAML 会把 22:22 解析成六十进制整数,映射到离谱端口。

docker start 启动已存在容器

重新启动一个已创建/已停止的容器:保留原有配置与数据;start 不会应用新参数,改端口/挂载要删了重建。

EXPOSE 与 -p 的区别

EXPOSE 只是镜像里的声明性元数据,不打开任何端口;真正对外映射必须靠 -p/-P。两者混淆是『端口为什么不通』类问题的头号来源。

Dockerfile COPY 指令

从构建上下文或前一阶段复制文件:支持 --chown 设定归属。先复制依赖清单、后复制源码可最大化利用缓存,是加速构建的标准手法。

Dockerfile USER 运行用户

指定后续指令与容器进程的默认用户。安全基线要求不用 root 跑应用:先建用户、调整目录属主,再切 USER;系统级安装必须放在切换之前。

.dockerignore 构建上下文裁剪

放在构建上下文根目录,按 gitignore 风格排除文件:缩小发送给构建器的上下文、加速构建,并防止 .env、密钥、node_modules 混进镜像。

docker compose exec 与 run 的区别

exec 进入已在运行的容器执行命令(改配置、连数据库客户端);run 则新建一次性容器跑任务(数据库迁移、批处理),必要时 --rm 用完即清。

Compose 环境变量与 env_file

三层来源要分清:宿主机环境参与 ${VAR} 插值;environment 把值注入容器;env_file 从文件批量注入。项目目录的 .env 默认只用于插值,不会自动进容器。

Compose 数据卷声明与使用

顶层 volumes 声明具名卷,服务里以 卷名:容器路径 引用;绑定挂载直接写宿主路径。具名卷由引擎管理,跨容器生命周期保留数据。

镜像仓库与镜像地址命名

镜像地址是 [仓库地址/]命名空间/仓库名:标签(或 @摘要)三段结构:不带地址默认 Docker Hub,私有镜像必须写全地址,否则登录与推送全部对不上。

docker network ls 网络列表

列出 Docker 网络:默认三件套 bridge(默认)、host(宿主网络)、none(无网络);自定义网络是容器间通过名字互相解析的前提。

docker port 查看端口映射

显示容器端口到宿主端口的映射关系:确认 -p 是否生效、映射到哪个地址,是『服务访问不通』的第一现场命令。

docker volume create 创建数据卷

预先创建命名数据卷,便于初始化权限、多容器共享与跨容器复用。重复创建同名卷不报错也不重置数据,这是与『重新初始化』直觉相反的关键行为。

host 网络模式

容器直接复用宿主网络栈:无 NAT 与 veth 转发开销,吞吐和延迟表现最佳;代价是失去网络隔离、端口与宿主进程直接竞争,且仅 Linux 语义完整。

Dockerfile ENV 环境变量

把环境变量固化进镜像:后续 RUN 与运行中的容器都能读到,运行时可被 docker run -e 覆盖。适合时区、语言、版本路径等非敏感配置。

Dockerfile WORKDIR 工作目录

设置后续 RUN、CMD、ENTRYPOINT、COPY、ADD 的工作目录,不存在会自动创建。它同时决定容器运行时的默认 cwd,影响相对路径配置的解析。

docker build 参数组合(--build-arg/--target/--no-cache)

构建命令的常用参数组合:改构建参数、只构建中间阶段、强制重建、多 Dockerfile 场景与目标平台,配合 buildx 还能出多架构镜像。

Compose 健康检查配置

在服务下定义 healthcheck:test 命令、周期、超时与启动宽限。它是 depends_on 条件、up --wait 与编排调度的共同依据,也是容器自愈的基础。

Compose 重启策略 restart

restart 字段控制容器退出后的自动拉起:开发常用 unless-stopped,常驻服务建议 always/unless-stopped;但它替代不了健康检查。

容器日志驱动与大小限制

json-file 驱动默认不限制日志体积,长期运行的服务会把磁盘写满:在 daemon.json 或单容器 --log-opt max-size/max-file 设置轮转上限。

docker cp 容器与宿主机互拷文件

在宿主机与容器之间复制文件/目录:适合应急取配置、捞日志、塞临时补丁;生产持久数据应走卷挂载而非 cp。

docker save 导出镜像为 tar

把镜像(含全部层与元数据)导出成 tar 文件:用于离线环境交付、跨机器搬运;与 docker export(容器文件系统快照)完全不同。

docker events 实时事件流

订阅 Docker 守护进程事件:容器启动/停止/死亡、镜像拉取、网络变化;排『谁在重启容器』与『何时挂的』的效率工具。

数据卷备份与迁移(tar 打包)

通用做法:用临时容器把卷打包成 tar.gz 存到宿主,跨机器迁移时反向解包。备份用只读挂载、恢复用可写挂载,避免打错方向毁原数据。

Dockerfile ARG 构建期变量

只在构建期存在的参数:用 docker build --build-arg 传入,可给默认值。多阶段构建中每个阶段需重新声明;值会留在构建历史里,不能放密钥。

Dockerfile HEALTHCHECK 健康检查

定义容器内自检命令:通过则 docker ps 显示 healthy,失败累计显示 unhealthy。让编排与监控可以基于状态而非端口探测判断可用性。

docker compose ps 查看项目状态

列出本项目所有服务容器的状态、端口与健康:--all 含已停止容器,--format json 便于脚本消费;排查『哪个服务没起来』的第一步。

docker compose build 与 pull 控制镜像来源

build 按服务的 build: 段构建镜像(--no-cache 全量重建、--pull 先拉基础镜像);pull 只拉 image: 指定的镜像。CI 里两种来源要分清楚。

Compose 网络与服务发现

默认自动创建 <项目>_default 网络,服务名即 DNS 主机名;需要隔离或接入既有网络(如统一反向代理)时,在顶层声明自定义网络并用 external 接入。

docker login 仓库认证

登录镜像仓库以推送/拉取私有镜像:交互输入或 --password-stdin 传入密码,凭据保存在 ~/.docker/config.json。密码严禁写在命令行 -p 里。

docker top 查看容器进程

显示容器内运行的进程列表(ps 视角):确认主进程、worker 数量、僵尸进程;比 exec ps 更快且不进入容器。

docker load 导入镜像

从 tar 文件导入镜像(与 save 配对):内网/离线环境部署的标准动作;导入后可正常 run 或重新 tag/push。

docker update 调整容器限制

在线更新容器的资源限制与重启策略:内存、CPU、重启策略可在不重建容器的情况下调整;部分参数(端口/挂载)不支持热改。

docker volume prune 清理未使用卷

批量回收未被任何容器引用的卷。Docker 23.0 起默认只删匿名卷,需 -a/--all 才包括闲置命名卷;执行前用 ls --filter dangling=true 核对清单。

基础镜像选型(alpine / slim / distroless)

基础镜像决定体积、libc 兼容与可调试性:musl 的 alpine 与 glibc 的 debian-slim 不是等价替换。先满足二进制/运行时的 libc 要求,再谈体积优化。

PID 1 信号处理与 --init

容器内 PID 1 不享受内核的默认信号兜底,且不负责回收僵尸进程。应用若没处理 SIGTERM,docker stop 只能等超时强杀,造成停机变慢或数据损坏。

docker compose config 校验与渲染

把多文件、变量插值、override 合并后的最终配置渲染出来并做语法校验:改完 compose 先跑它,能在部署前发现 YAML/变量/引用错误。

Harbor 私有镜像仓库

主流开源自建仓库:项目级 RBAC、镜像扫描、远程复制、机器人账号与配额。CI 用机器人账号按最小权限推送,生产环境全走内网仓库。

镜像标签策略

生产用不可变标签(语义版本或 git commit),latest 只留给便利场景:latest 不保证指向哪个版本,回滚与审计全部失效。

docker history 查看镜像分层

展示镜像每一层的创建命令与大小:定位『镜像为什么这么大』、确认敏感文件是否残留在历史层;配合 --no-trunc 看完整命令。

docker network inspect 网络详情

查看网络配置与成员:子网、网关、已接入容器及其 IP;容器互访异常时先确认双方是否在同一网络。

docker kill 强制终止容器

直接发送信号(默认 SIGKILL)终止容器:无优雅退出过程,用于进程僵死、stop 无法结束(D 状态)时;日常应优先 stop。

docker volume rm 删除数据卷

删除不再使用的数据卷释放磁盘。卷被任何容器(含已停止容器)引用时会拒绝删除;先定位引用者、确认数据已备份,再执行删除。

-v 与 --mount 语法对比

两种等价写法:-v 简洁但缺失路径会静默创建;--mount 键值显式、路径不存在直接报错。生产部署建议 --mount,用报错拦住拼写错误。

Dockerfile EXPOSE 声明端口

声明镜像内应用监听的端口,供使用者与工具识别、并作为 docker run -P 随机发布的依据;它本身不发布任何端口,映射仍由 -p 决定。

Compose 资源限制 deploy.resources

在服务里用 deploy.resources.limits 限制 CPU 与内存(Compose V2 单机也生效):防止单个服务吃光宿主;老 V1 写法 mem_limit/cpus 不推荐混用。

Compose 多文件合并与 override

按环境拆分配置文件:base + override 自动叠加,或用 -f 显式指定多文件(后写优先)。标量覆盖、映射深合并,列表以追加/合并为主。

buildx 多架构构建与推送

用 buildx 一次构建多平台镜像并推送:多架构镜像不能本地 docker load(除非单平台导出),必须直接 --push 或 --output=type=registry。

容器时区设置

容器默认 UTC:日志时间与业务时间差 8 小时是经典问题。设置 -e TZ=Asia/Shanghai 依赖镜像内带 tzdata;否则挂载宿主 /etc/localtime 或装 tzdata 包。

docker diff 查看容器文件系统改动

列出容器相对镜像的文件系统变化:A 新增、C 修改、D 删除;用于定位『容器里改了什么』,也是决定要不要固化进镜像的依据。

docker network connect/disconnect 动态接入网络

给运行中的容器接入或断开额外网络:不用重建即可让容器同时属于多个网络(如同时连前端网与监控网)。

docker volume inspect 查看卷详情

查看卷的宿主挂载点、驱动与选项:排错时确认数据实际落在哪、NFS 参数是否生效;也是编写备份脚本时定位数据目录的标准方式。

docker compose 水平扩容

一条命令把无状态服务扩到多实例:--scale web=3。前提是服务不绑定固定宿主端口,否则第二个实例直接端口冲突;Compose 本身不带负载均衡。

Compose 项目名与多环境共存

项目名决定容器、网络、卷的前缀:同名服务在不同项目名下互不干扰。用 -p 或 COMPOSE_PROJECT_NAME 区分开发/测试环境,实现同机多栈。

镜像分层与写时复制

镜像由只读层叠加而成,容器启动时加一个可写薄层:相同层在多个镜像间共享,改文件触发写时复制。层设计直接决定拉取速度与镜像体积。

容器权限能力 --cap-add/--cap-drop

Linux 能力机制允许按需授予特权:默认丢弃大部分能力,需要网络管理、绑定低端口等再单独加;--privileged 等于给全部权限加宿主设备,生产禁忌。

docker commit 从容器创建镜像

把容器当前状态固化为新镜像:调试场景(保留现场)方便,但不可重复、不可审计,生产镜像应始终由 Dockerfile 构建。

docker attach 接入容器主进程

把当前终端接到容器 PID 1 的标准输入输出:能观察输出、发送输入;但 Ctrl+C 会把信号转发给主进程,操作不当直接停服。进容器开 shell 应首选 exec。

Dockerfile ADD 指令

COPY 的增强版:额外支持本地 tar 自动解压与 URL 下载。除『确实需要解压 tar』外,一律优先 COPY——ADD 的隐式解压常让人意外。

Compose profiles 按需启用服务

给服务加 profiles 标签后默认不启动,需要时用 --profile 显式拉起:适合调试工具(adminer、redis-commander)、一次性任务与可选组件。

Compose 与 Kubernetes 选型对照

单机多容器用 Compose;多节点、自愈、滚动发布与弹性诉求上 Kubernetes。先看清投入产出:K8s 的学习与运维成本远高于 Compose。

docker manifest 查看多架构镜像

多架构镜像是一个『清单列表』:同一 tag 下按平台指向不同镜像。用 manifest inspect 或 buildx imagetools 查看实际包含哪些架构,避免拉错平台。

docker export/import 与 save/load 的区别

export/import 搬的是『容器文件系统』(拍平、丢元数据);save/load 搬的是『镜像』(保留全部层与历史)。迁移部署产物用 save/load,清理过的快照才用 export。

docker rename 重命名容器

为已存在容器改名:不重建、不影响运行;常用于修正命名或为批量操作排序;改名后相关的脚本与 DNS 别名需同步更新。

tmpfs 内存临时挂载

把目录挂到宿主内存:读写极快、容器停止即消失,适合密钥、会话、高频小文件等不需要落盘的数据;容量计入宿主内存,开太大有 OOM 风险。

Dockerfile LABEL 元数据标签

给镜像附加键值元数据:版本、维护者、源码地址等。OCI 规范推荐反向域名键名,便于资产管理与自动化识别;MAINTAINER 指令已废弃。

docker context 多环境切换

用 context 在本地、测试机、远程 Docker 主机之间切换 CLI 目标:每个 context 保存端点与证书;切换前务必 docker context show 确认,避免把命令打到生产。

容器 DNS 与 --add-host

容器 DNS 来源优先级:--dns > daemon.json > 宿主 resolv.conf;用户自定义网络内置 127.0.0.11 解析服务名与别名;--add-host 可模拟 hosts 映射。

网络别名 --network-alias

给容器在网络内追加可解析名字:滚动升级时用稳定别名指向新实例,或让多个容器共用同一别名,靠 DNS 多值实现粗粒度轮询。

镜像漏洞扫描

上线前扫描镜像 CVE:docker scout quickview(Docker 官方)或 trivy image 均可。重点看基础镜像与直接依赖的高危漏洞,及时换新基础版本。

只读根文件系统与 tmpfs 兜底

用 --read-only 把容器根文件系统设为只读:阻止进程写坏镜像层、限制持久化位置;再对必要可写目录挂 tmpfs 或数据卷,兼顾安全与可用。

none 网络模式

容器只保留 lo 回环、不接任何网络:离线计算、安全沙箱与合规任务的干净起点;需要临时联网时可运行中挂接网络,无需重建容器。

docker network rm 与 prune

删除自定义网络回收资源:有容器(含停止)连接时拒绝删除;prune 批量清理未被使用的网络。系统内置的 bridge/host/none 永远不会被删。

Kubernetes

kubectl、工作负载、服务与配置管理

kubectl get 查询资源列表热门

最常用命令:列资源、看状态。掌握 -n/-A、-o wide、--show-labels、--sort-by 组合即可覆盖大半个日常查询场景;简写 rs、deploy、svc、cm、ns 要记牢。

kubectl apply 声明式部署热门

声明式核心命令:按配置文件把资源收敛到期望状态,可重复执行。支持 -f 文件/目录、-k kustomize 目录、--dry-run=server 预检;与 create 的『已存在则报错』形成对比。

Deployment 与滚动更新热门

无状态工作负载的标准控制器:管理 ReplicaSet、驱动滚动更新与回滚。默认 RollingUpdate(maxSurge 25%、maxUnavailable 25%),发布历史默认保留 10 个 revision。

kubectl logs 查看容器日志热门

查看 Pod 内容器日志:多容器用 -c 指定,容器重启过要看 --previous 的上一实例日志(崩溃现场),多副本按标签聚合输出需 --prefix 区分来源。

kubectl rollout 发布管理热门

管理 Deployment/DaemonSet/StatefulSet 的滚动发布:status 看进度、history 看版本、undo 回滚、restart 触发重启、pause/resume 控制节奏。

Service 概念与四种类型热门

Service 给一组 Pod 提供稳定虚拟 IP 与 DNS:靠标签选择器绑定后端,随 Pod 增删自动维护 Endpoints。四种类型:ClusterIP(默认)/NodePort/LoadBalancer/ExternalName。

kubectl describe 资源详情

输出资源的完整配置与相关事件(Events 在最后几行):Pod 为何调度失败、镜像拉取报什么错、探针是否失败,describe 通常是第一现场。

Pod 概念与最小示例

Pod 是调度最小单元:一个或多个容器共享网络命名空间(同一 IP、端口互斥)、共享 volumes 与生命周期。通常由控制器管理,裸 Pod 只在调试时用。

三类探针:liveness/readiness/startup

readiness 决定是否进流量(失败摘除端点);liveness 决定是否重启(失败杀容器);startup 保护慢启动(成功前其他探针不生效)。职责不同,乱配会把稳定性越治越差。

kubectl exec 进入容器执行命令

在运行中容器里执行命令或开交互 shell:-it 交互、-c 指定容器、-- 分隔 kubectl 与容器命令。distroless 等精简镜像没有 shell,只能换排查思路。

Pod 生命周期与容器状态

Pod 相位 Pending → Running → Succeeded/Failed;容器状态 Waiting/Running/Terminated。CrashLoopBackOff 不是相位,而是容器反复退出后的重启退避现象。

requests/limits 与 QoS

requests 决定调度与 HPA 基准,limits 是硬上限:内存超限立即 OOMKilled,CPU 超限被限流(不杀进程)。两者组合决定 QoS 等级与驱逐优先级。

kubectl delete 删除资源

删除资源支持按文件、按名称、按标签三种方式;默认级联删除下属资源(如 Deployment 删 ReplicaSet/Pod),--grace-period/--force 是应急手段而非日常选项。

kubectl rollout restart 滚动重启

不改配置的重启姿势:给 Pod 模板打一次时间戳注解触发滚动重启,逐个替换实例不掉可用性;改完 ConfigMap/Secret 后让它生效的标准动作。

Ingress 七层路由

用一组规则把集群外 HTTP(S) 流量路由到内部 Service:按 host/path 转发、终结 TLS。Ingress 只是规则对象,真正干活的是 Ingress Controller。

kubectl 上下文与 kubeconfig

kubectl 靠 kubeconfig 找集群:里面是 clusters/users/contexts 三组配置,context 把集群与用户绑在一起。多集群切换用 config use-context,务必先确认当前上下文再操作。

kubectl port-forward 本地端口转发

把本地端口转发到 Pod/Service:调试数据库、看内部面板、验证 Service 是否通。只在 kubectl 进程存活期间有效,用于诊断不作为生产入口。

kubectl create 命令式生成资源

快速生成资源或在无 YAML 时应急:deployment/service/namespace/secret/configmap/job 都支持;--dry-run=client -o yaml 生成模板后修改再 apply 是最佳用法。

Secret 密钥管理

存放口令、证书、令牌等敏感数据:值默认 base64(编码≠加密),可配 etcd 静态加密与 KMS。类型含 Opaque、dockerconfigjson、tls 等,必须收紧 RBAC。

kubectl set image 更新镜像

命令式触发镜像更新,常用于应急发版与演练:格式 容器名=新镜像。变更同样应尽快回写 YAML;用 get 确认镜像是否真的变了。

kubectl events 与事件排查

事件是集群的『事故简报』:调度失败、镜像拉取、探针、OOM 都会写事件。默认保留时间有限,排障时要第一时间抓取并按时间排序。

K8s 清单结构(apiVersion/kind/metadata/spec)

所有 K8s 资源清单都是同一骨架:apiVersion+kind 定位资源类型,metadata 描述对象身份,spec 是期望状态;status 由控制器回填,写清单时永远不碰。

ConfigMap 配置管理

存放非敏感配置的键值对象:可整包注入环境变量、也可挂载成文件;与镜像解耦,改配置不必重打包。注意环境变量方式不热更新,挂载方式约 1 分钟级最终一致。

PV、PVC 与访问模式

PV 是集群级存储资源,PVC 是命名空间的申领:Pod 通过 claimName 使用 PVC。访问模式、容量与 StorageClass 三个维度的匹配决定能否绑定成功。

kubectl scale 调整副本数

命令式调整副本数:适合应急扩容,长期仍应把副本数写进 YAML/GitOps。--current-replicas 做前置校验,防止在漂移状态下误放大。

HPA 水平自动扩缩容

按指标自动调整副本数:autoscaling/v2 支持 CPU/内存/自定义与外部指标。CPU 利用率按 requests 计算——没设 requests 的 Deployment 扩不起来。

kubectl -o 输出格式(yaml/jsonpath/custom-columns)

把资源按需输出:yaml/json 用于查看完整对象,jsonpath 与 custom-columns 用于脚本取字段。取状态、IP、镜像版本这类信息比 grep 稳得多。

StatefulSet 有状态工作负载

为有状态应用提供稳定网络标识与稳定存储:Pod 按序号 0..N-1 命名与建删(OrderedReady),每个 Pod 绑定自己的 PVC;必须配 Headless Service 才有稳定 DNS。

集群内服务 DNS 解析

Pod 里解析服务名的完整形态是 name.namespace.svc.cluster.local:搜索域自动补全,短名仅在当前命名空间可用;跨命名空间调用必须写 name.namespace 或全域名。

RBAC:Role/RoleBinding 与 ServiceAccount

RBAC 三要素:主体(User/Group/ServiceAccount)— 角色(Role/ClusterRole)— 绑定(RoleBinding/ClusterRoleBinding)。命名空间级用 Role,集群级资源用 ClusterRole。

标签选择器与字段选择器

筛选资源的两种姿势:-l 按标签(业务语义,如 app=web),--field-selector 按系统字段(状态、节点、名字)。组合使用可快速锁定问题实例。

kubectl drain 驱逐节点工作负载

驱逐节点上的 Pod 以便安全维护:对可迁移 Pod 执行优雅驱逐(走 PDB),DaemonSet 与本地存储 Pod 需显式参数处理;先 cordon 再 drain。

kubectl 命名空间操作

命名空间是资源与权限的隔离边界:创建、切换默认命名空间、查看配额。多团队共用集群时,命名空间规划比命令本身更值得先想清楚。

Init 容器(初始化容器)

在主容器启动前按序执行并必须成功完成的容器:用于等待依赖就绪、数据库迁移、生成配置;任何一步失败,Pod 会按 restartPolicy 重试而不是启动主容器。

LoadBalancer 云负载均衡

向云平台申请外部负载均衡并自动绑定 Service:分配公网/内网 VIP,是生产对外入口的标准姿势;自建集群没有云控制器时 EXTERNAL-IP 会一直 pending。

Endpoints 与选择器排错

Endpoints(及 EndpointSlice)是 Service 的实际后端清单:由控制器按选择器+就绪状态生成。Endpoints 为空是『Service 没流量』类问题的第一检查点。

kubectl top 资源用量查看

查看 Pod/节点实时 CPU 与内存:依赖 metrics-server 组件;--containers 看单容器、--sort-by 排行靠前的资源消耗者,是容量排查第一步。

CronJob 定时任务

按 cron 表达式周期创建 Job:默认时区是 UTC(对国内业务等于凌晨跑偏 8 小时),建议显式配置 timeZone;concurrencyPolicy 控制重叠与并发。

NodePort 节点端口暴露

在每个节点的高位端口(默认 30000-32767)上开放 Service:外部用 节点IP:NodePort 访问;适合测试与无 LB 环境,固定端口可能冲突且安全组要单独放行。

Ingress Controller 与 IngressClass

Ingress 的实际实现:监听 Ingress 对象并生成反向代理配置。集群里通常只装一种主 controller;ingressClassName 用来在多个 controller 间分配规则。

节点选择与亲和性调度

把 Pod 引导到目标节点:nodeSelector 简单硬性;nodeAffinity 支持 required/preferred 与运算符;podAntiAffinity 让同类副本分散,避免单点。

优雅终止与 preStop

删除 Pod 时并行发生两件事:从 Endpoints 摘除与发送 SIGTERM,然后等 terminationGracePeriodSeconds(默认 30s)再 SIGKILL。应用要处理 SIGTERM 并在宽限期内退出。

kubectl wait 等待条件成立

等资源达到指定状态再继续,脚本化发布的利器:支持 --for=condition、delete 语义与超时控制;比 sleep + 轮询优雅可靠。

DaemonSet 每节点一个 Pod

在(符合条件的)每个节点上运行一个 Pod:日志采集、监控代理、CNI、kube-proxy 这类节点级组件标配;节点加入自动补、移除自动清。

Sidecar 多容器与共享

同一个 Pod 里放辅助容器(日志转发、代理、配置渲染):共享网络与卷,生命周期同进退;K8s 1.29+ 支持原生 sidecar(initContainer 且 restartPolicy: Always)。

Headless Service 无头服务

clusterIP: None 的 Service:不为服务分配虚拟 IP,DNS 直接返回各 Pod 的 A 记录。StatefulSet 的稳定 DNS、自定义服务发现都依赖它。

配置注入方式:环境变量 vs 挂载卷

两种注入各有代价:env 简单但改值必须重建 Pod;卷挂载支持热更新但可能有 subPath 不更新、文件权限、目录覆盖等细节坑。按组件行为选型。

StorageClass 动态供给

声明『用哪种存储怎么创建』:provisioner 负责动态生成 PV;WaitForFirstConsumer 等 Pod 调度后再建卷,避免跨可用区绑定失败,是生产默认推荐。

PodDisruptionBudget 中断预算

为自愿中断(drain、节点维护、集群升级)保底可用副本:minAvailable 或 maxUnavailable 二选一;它不防节点宕机等非自愿中断,那是多副本与反亲和要解决的问题。

kubectl -w 持续观察变化

get -w 保持连接持续输出资源变化:观察 Pod 从 Pending→ContainerCreating→Running,或等待滚动更新实例更替;--watch-only 只看变化不看初始列表。

kubectl diff 预览变更

在执行前预览 apply 会改什么:输出服务端现状与文件的差异(类 UNIX diff),有差异时退出码为 1;上线前审查变更的主流手段,配合 CI 使用。

kubectl taint 节点污点与容忍

污点让节点拒绝/劝退特定 Pod:NoSchedule 不调度新 Pod、PreferNoSchedule 尽量避免、NoExecute 驱逐不满足容忍的存量 Pod;与容忍(Toleration)配对使用。

ReplicaSet 与控制器层级

ReplicaSet 保证指定数量的同质 Pod 运行:无发布能力,只负责『数量守恒』。它是 Deployment 的执行层——日常不手工维护 RS,理解层级即可看懂故障现象。

Job 批处理任务

运行到完成即退出的任务控制器:completions 定总成功次数、parallelism 控并发、backoffLimit 限失败重试;restartPolicy 只能是 Never 或 OnFailure。

Pod 卷:emptyDir 与 hostPath

Pod 级卷在容器间共享:emptyDir 随 Pod 生命周期(重启保留、删除即清),hostPath 挂宿主路径(裸/特权场景)。生产数据请走 PVC,临时交换用 emptyDir。

ResourceQuota 与 LimitRange

ResourceQuota 限命名空间总量(CPU/内存/对象数),LimitRange 定单容器默认值与上下限:多团队共享集群的『防超卖、防裸奔』组合拳。

kubectl edit 在线编辑资源

打开编辑器修改资源配置,保存即提交:适合应急微调与学习字段结构;会被后续 apply/控制器收敛回去,重要变更应回写 YAML 到仓库。

kubectl cordon 标记节点不可调度

把节点标记为 unschedulable:新 Pod 不再调度到该节点,已有 Pod 不受影响。这是节点维护的第一步(cordon → drain → 处理 → uncordon)。

kubectl explain 字段文档

内置的字段说明:查某类资源某个层级支持哪些字段、类型与含义,还能 --recursive 展开。写 YAML 时不用盲目搜索,权威且对应集群版本。

NetworkPolicy 网络策略

Pod 级防火墙:默认全通,可改为默认拒绝再逐条放行。策略是『允许列表』语义;需要 CNI 支持(Calico/Cilium 等),Flannel 单独不生效。

服务端应用(--server-side)

由 API Server 合并字段:多管理者(kubectl、Operator、控制器)各管各的字段,冲突显式报错而非静默覆盖;大规模与 GitOps 场景推荐。

kubectl patch 打补丁更新

命令行局部更新资源:strategic merge 适合改字段,json patch 适合精确增删数组元素,merge patch 直接替换对象;比 edit 更适合脚本化。

kubectl auth can-i 权限自检

查询当前身份能做什么:验证 RBAC、排查 403、模拟 ServiceAccount 权限。发布前用它核对最小权限,比出事后再猜更省事。

kubectl cp 容器与本地互传文件

在本地与 Pod 容器之间复制文件:pod:/path 语法,支持 -c 指定容器;要求容器内有 tar(精简镜像可能没有),大文件建议直接走对象存储中转。

kubectl label 与 annotate

给资源打标签(可被选择器检索,业务语义)与注解(不可检索,存长文本/配置元数据)。两者都支持 --overwrite 覆盖与 -l 批量操作。

kubectl api-resources 资源清单

列出集群支持的所有资源类型与简写、是否命名空间级:写 RBAC 与排查『资源不存在』问题前先查它,避免凭记忆猜 apiVersion 与 kind。

kubectl attach 接入运行中容器

attach 到容器主进程控制台(类似 docker attach):用于查看前台交互进程、发送输入;与 exec 不同,它连接的是 PID 1 的 I/O。

kubectl proxy 访问 API Server

在本地起一个到 API Server 的代理端口(带当前凭据):便于用 curl 直接读 API、访问集群服务代理路径;仅调试用途,不要暴露。

容器排障

日志、进入容器、资源与网络问题定位

CrashLoopBackOff 排查热门

容器反复崩溃后的退避重启:必须看 --previous 的日志拿崩溃现场,再看退出码与探针配置。高频原因:配置错误、依赖连不上、探针误杀、命令写错。

Pod Pending 排查清单

Pending 表示还没被调度或还在拉镜像阶段:describe 的 Events 会直接给出原因。按 资源不足 → 污点/亲和 → 卷未就绪 → 配额 的顺序核对,基本一查一个准。

容器退出码速查(0/1/125/126/127/137/143)

退出码是最快的线索:137 与 143 都与信号相关(128+N),125-127 是 Docker 自身或命令问题。先看码再看日志,方向不跑偏。

ImagePullBackOff 镜像拉取失败

kubelet 拉镜像失败后的退避状态:describe 的 Events 给出确切原因(401、tag 不存在、网络超时、证书)。私有仓库要先补 imagePullSecrets 或节点级认证。

Service/Ingress 502/504 排查

网关层 502/504 大多不是网关自己坏了:502 常是后端端口不通/进程崩,504 是后端超时。按 入口→Service→Endpoints→Pod 链路逐层缩小范围。

容器启动失败排查五步

容器起不来按固定顺序走:看状态 → 看日志 → inspect 配置 → 校验 entrypoint/cmd → 手动换 shell 验证。先复现最小现场,再谈改配置。

K8s OOMKilled 排查

容器内存超过 limit 被内核杀死:状态里 reason=OOMKilled、退出码 137。和 Docker 一致:先确认 limit 与真实用量,再区分配置问题与应用内存增长。

节点 NotReady 排查(kubelet/运行时/磁盘)

节点失联时新 Pod 无处调度、已有负载可能被驱逐:先看 Node 条件与 Reason,再上节点查 kubelet、容器运行时、磁盘与网络。

容器 OOMKilled 排查

容器被 cgroup 内存上限杀死:docker inspect 的 State.OOMKilled=true、退出码 137。要区分『容器限制太小』还是『应用内存真的涨了』,再决定调限还是修代码。

Docker 磁盘占满排查

宿主磁盘被 Docker 吃满:镜像层、日志、数据卷、构建缓存是四大来源。docker system df -v 先定位大头,再做有选择的清理而不是无脑 prune。

探针失败排查(Unhealthy)

事件里的 Unhealthy 说明 kubelet 探测失败:可能是应用真的不健康,也可能是探针本身配置错(路径/端口/时机)。先手动复现探测命令,再判断谁的问题。

容器内 DNS 解析失败排查

容器里域名解析不了:先看 /etc/resolv.conf 指向什么,再用 nslookup/dig 实测;典型元凶是 resolv.conf 指向宿主本地回环解析器(127.0.0.53),容器内不可达。

镜像拉取失败排查(Docker 侧)

pull 失败原因分散:tag 不存在、认证失败、网络超时、证书错误、磁盘不足、架构不匹配。先读完整报错再对号入座,不要一律怪网络。

无法调度:资源、污点与亲和性

FailedScheduling 事件是调度器的诊断书:资源碎片、污点、亲和、端口占用都在这里说清楚。先读事件再改 Pod,避免盲调参数。

集群 DNS 解析失败排查

Pod 里域名解析失败:先确认 CoreDNS 是否就绪,再验证 resolv.conf 与实际查询。常见根因:CoreDNS Pod 异常、网络策略拦 53 端口、ndots 引发的解析路径异常。

kubectl debug 临时调试容器

生产镜像常是精简/无 shell 的:kubectl debug 挂临时容器进同命名空间排查,或做节点级调试,不动业务镜像本身。

Job/CronJob 失败排查(重试/并发/漏跑)

批处理失败分三类查:Pod 没起来(调度/镜像)、起来失败重试(backoffLimit)、定时任务该跑没跑(suspend/并发策略/时限)。

HPA 不扩容排查(指标/阈值/上限)

HPA 不动先查三件事:指标有没有数、当前值有没有越过 target、副本是否已到 min/max。多数『不扩容』是 metrics 缺失或 requests 没设。

StatefulSet 卡住与 PVC 挂载失败排查

StatefulSet 按序推进,前一个没 Ready 后一个不起:卡点常见于 PVC Pending(无可用存储)与挂载失败(调度/附加/路径)。

端口冲突:Bind failed / address already in use

宿主端口被占用时容器起不来:报 Bind for 0.0.0.0:8080 failed 或 address already in use。用 ss 找到占用进程,再决定换端口还是清理旧容器。

挂载失败排查(Permission denied / No such file)

挂载问题分三类:路径不存在或类型不符、权限不足(uid/SELinux)、底层存储异常(NFS/云盘)。docker inspect 的 Mounts 段先确认最终挂载参数。

ContainerCreating 卡住排查

Pod 调度完成但起不来:卡在挂卷、网络或镜像层。describe 的 Events 会指明卡点;CNI 故障、卷未挂上、镜像超大都能让它长时间停留。

服务访问超时(跨命名空间/策略)排查

TCP 连不上表现为超时或 connection refused:refused 多为无进程监听/无端点,timeout 多为网络链路被策略或路由拦截。两者指向不同层。

Ingress 访问 404/路由不生效排查

Ingress 404 多数不是后端问题:确认请求进了哪个 Controller、Host/Path 规则是否匹配、IngressClass 是否被认领,再查后端。

容器反复重启排查

容器不停重启(restarting/Up 1 秒又挂):先停掉自动重启,再以前台方式复现。高频原因:启动命令秒退、配置缺失、依赖不可达、入口脚本被覆盖。

Terminating 卡住排查

Pod 删除后长时间 Terminating:通常是 finalizer 未清理、卷卸载失败、kubelet 失联或进程不响应 SIGTERM。先确认卡在哪个环节,再决定是否强制删除。

容器出网失败排查(NAT/防火墙)

容器访问不了外网:按 容器 → 宿主 → 网关逐层验证。常见于宿主转发关闭、iptables 规则缺失、宿主防火墙拦 FORWARD、云安全组限制。

容器日志暴涨导致磁盘告警

json-file 日志默认无上限:应用刷错误日志时磁盘被迅速写满,进而连累宿主与 Docker 守护进程。先止血(truncate),再配置 max-size 根治。

Pod Evicted 驱逐排查

节点资源压力下的自保动作:DiskPressure/MemoryPressure/PIDPressure 触发驱逐。被驱逐的 Pod 状态是 Evicted,原因在 describe 与节点条件里。

进不去容器:没有 shell 或无法 exec

exec 报 not found 或 OCI runtime error:精简镜像没有 shell、容器已停/暂停、进程空间受限。换思路:宿主机 nsenter、临时调试容器、或调整镜像带工具。

netshoot 网络排查工具箱

容器网络排查的瑞士军刀镜像:内置 dig、tcpdump、curl、ss、ip、iptables 等工具。用 --network container:/--pid container: 直接进入故障容器的命名空间检查。

容器 CPU 占用高排查

容器吃满 CPU:先用 stats/top 定位到进程,再看是忙等、死循环还是限流假象;cgroup 的 cpu.stat 能看出 throttling,区分『真忙』与『被限速』。

镜像构建失败排查

构建失败先看到底哪一步:BuildKit 下用 --progress=plain 拿到完整输出。高频原因:COPY 路径不在上下文、依赖源超时、基础镜像拉取失败、架构不匹配。

没有匹配的条目。换个关键词试试,或直接全站搜索。

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌