容器本质:没有轻量虚拟机,只有受限的普通进程
容器不是虚机,没有 Guest OS。它是通过 Linux Namespaces 隔开视野、Cgroups 戴上资源紧箍咒、Seccomp 限制系统调用的普通宿主机进程。
没有轻量虚拟机,只有受限的普通进程。从 Linux 内核 Cgroups 隔离,到 K8s 声明式控制循环自愈,再到 Ingress 流量穿透与 GitOps 对齐——看机制与数据流,不读枯燥定义。
容器不是虚机,没有 Guest OS。它是通过 Linux Namespaces 隔开视野、Cgroups 戴上资源紧箍咒、Seccomp 限制系统调用的普通宿主机进程。
clone(),毫秒级就绪;而虚机需要载入完整操作系统内核。生产镜像绝不能包含 gcc、npm、源码与构建缓存。利用 Docker 多阶段构建,只把编译完成的二进制文件带入 Distroless 超轻镜像。
sh,反弹 Shell 脚本将直接报错退出。kubectl exec 进入?利用 Kubernetes 临时调试容器(Ephemeral Containers)挂载调试!Kubernetes 不是命令式执行器。你声明期望状态(Desired),Controller Manager 不断比对实际状态(Actual),无限趋近、故障自愈。
Pod 是最小调度单位,不是单个容器。Pause 基础容器率先启动创建网络栈,主业务容器与 Sidecar 共享 localhost 与存储卷。
127.0.0.1,就像访问同一个操作系统的两个本地端口。address already in use!外部请求如何精准找到不断漂移的 Pod?Ingress 负责七层域名路由,Service 负责四层 VIP 负载均衡,IPVS 保持百万连接不掉线。
sessionAffinity: ClientIP,否则请求将在多个 Pod 间随机跳跃。业务容器不能把状态存在本地镜像。通过 PersistentVolumeClaim 声明存储需求,StorageClass 驱动底层 CSI 动态供给云盘并精准挂载。
拒绝为 dev/staging/prod 各维护一套几千行的 YAML。Helm 用 Go 模板将配置与架构骨架分离,一套 Chart 参数化渲染全场景。
helm rollback 2 秒级回滚。Chart.lock 声明外部依赖(如 Redis、PostgreSQL),一键拉起整套微服务拓扑。严禁工程师直接 kubectl apply 生产集群。Git 仓库是集群状态的唯一真理源,ArgoCD 自动探测 Git 与集群的漂移并平滑对齐。
kubeconfig 秘钥上传给 GitHub Actions 等第三方 CI 平台。kubectl edit 偷改副本数,ArgoCD 秒级检测并强制刷回 Git 里的版本。argocd app create 指向 Git,所有服务一键自愈。系统变慢时,日志是大海捞针。通过 Trace ID 将 Prometheus 聚合指标、Loki 结构化日志与 Jaeger 跨服务调用链彻底串联。
traceparent,否则调用链在网关直接断裂。线上告警时慌乱乱改只会酿成二次灾难。遵循 SRE 标准处置流:区分 CrashLoopBackOff、OOMKilled、Pending 与网络丢包,按部就班快速止血。
livenessProbe 设置的超时时间比垃圾回收(GC)停顿时间还短,容器会被探针无限循环误杀!