返回 随笔记录
随笔记录

十一、云原生与DevOps

博主
大约 8 分钟

十一、云原生与DevOps

范围:Docker、Kubernetes、CI/CD、服务网格、可观测性、基础设施 知识点数量:221项 返回总目录


11.1 Docker

11.1.1 基础概念

  • 1069. 镜像 - 掌握分层存储,理解联合文件系统(Overlay2)
  • 1070. 容器 - 掌握隔离原理,理解Namespace和Cgroups
  • 1071. Dockerfile - 掌握镜像构建,理解最佳实践(多阶段构建)
  • 1072. 数据卷 - 掌握Volume和Bind Mount,理解数据持久化
  • 1073. 网络 - 掌握Bridge/Host/None/Overlay网络模式
  • 1074. Compose - 掌握多容器编排,理解docker-compose.yml
  • 1075. 容器生命周期 - 掌握create/start/stop/restart/rm
  • 1076. 资源限制 - 掌握--memory和--cpus
  • 1077. 镜像仓库 - 掌握Docker Registry和Harbor
  • 1078. 容器安全 - 掌握非root运行,理解镜像扫描

11.1.2 进阶使用

  • 1079. 多阶段构建 - 掌握减小镜像体积,理解builder和runtime分离
  • 1080. 构建缓存 - 掌握层缓存优化,理解COPY顺序
  • 1081. 健康检查 - 掌握HEALTHCHECK指令
  • 1082. 日志管理 - 掌握json-file/syslog日志驱动
  • 1083. 容器编排基础 - 理解Swarm模式
  • 1084. Docker API - 掌握REST API操作
  • 1085. 镜像优化 - 掌握Alpine基础镜像,理解Distroless
  • 1086. 容器调试 - 掌握exec/logs/inspect命令
  • 1087. 网络互通 - 掌握容器间通信,理解DNS解析
  • 1088. 特权模式 - 理解--privileged和安全风险

11.2 Kubernetes

11.2.1 核心概念

  • 1089. Pod - 掌握最小部署单元,理解容器共享网络/存储
  • 1090. Service - 掌握服务发现,理解ClusterIP/NodePort/LoadBalancer
  • 1091. Deployment - 掌握无状态应用,理解滚动更新
  • 1092. StatefulSet - 掌握有状态应用,理解有序部署和稳定网络ID
  • 1093. DaemonSet - 掌握节点级应用,理解日志采集和监控
  • 1094. ConfigMap - 掌握配置管理,理解环境变量和挂载
  • 1095. Secret - 掌握敏感信息,理解Base64编码和加密
  • 1096. Namespace - 掌握资源隔离,理解资源配额
  • 1097. Label和Selector - 掌握标签选择器,理解匹配逻辑
  • 1098. Job/CronJob - 掌握批处理任务

11.2.2 存储与网络

  • 1099. Volume - 掌握emptyDir/hostPath/PVC
  • 1100. PV和PVC - 掌握持久化存储,理解StorageClass动态供给
  • 1101. CNI - 掌握容器网络接口,理解Flannel/Calico
  • 1102. Ingress - 掌握HTTP路由,理解Nginx Ingress Controller
  • 1103. CoreDNS - 掌握服务发现,理解DNS解析
  • 1104. NetworkPolicy - 掌握网络策略,理解Pod间访问控制
  • 1105. 存储插件 - 掌握CSI接口,理解NFS/Ceph集成

11.2.3 调度与高可用

  • 1106. 调度器 - 掌握kube-scheduler,理解预选和优选
  • 1107. 亲和性 - 掌握nodeAffinity和podAffinity
  • 1108. 污点和容忍 - 掌握taint和toleration
  • 1109. HPA - 掌握水平自动扩缩,理解CPU/内存指标
  • 1110. VPA - 掌握垂直自动扩缩
  • 1111. PDB - 掌握Pod中断预算,理解自愿/非自愿中断
  • 1112. 资源配额 - 掌握LimitRange和ResourceQuota
  • 1113. 节点管理 - 掌握cordon/drain
  • 1114. 滚动更新 - 掌握maxUnavailable和maxSurge
  • 1115. 蓝绿部署 - 掌握Service切换
  • 1116. 金丝雀发布 - 掌握流量渐进

11.2.4 高级特性

  • 1117. Helm - 掌握包管理,理解Chart和Template
  • 1118. RBAC - 掌握权限控制,理解Role/ClusterRole/ServiceAccount
  • 1119. 准入控制 - 掌握ValidatingWebhook/MutatingWebhook
  • 1120. 自定义资源 - 掌握CRD,理解Operator模式
  • 1121. Operator - 掌握自动化运维,理解Controller循环
  • 1122. Sidecar模式 - 掌握辅助容器
  • 1123. Init Container - 掌握初始化容器
  • 1124. Pod安全策略 - 掌握PSP/PodSecurityAdmission
  • 1125. 集群升级 - 掌握滚动升级控制平面和节点
  • 1126. etcd - 掌握集群存储,理解备份恢复
  • 1127. Kube-proxy - 掌握服务代理,理解iptables/IPVS模式

11.3 CI/CD

11.3.1 Git工作流

  • 1128. Git Flow - 掌握master/develop/feature/release/hotfix分支
  • 1129. GitHub Flow - 掌握简化分支,理解main+feature
  • 1130. GitLab Flow - 掌握环境分支,理解production分支
  • 1131. Trunk-Based - 掌握主干开发,理解特性开关
  • 1132. 提交规范 - 掌握Conventional Commits,理解feat/fix/chore
  • 1133. 代码审查 - 掌握Pull Request流程
  • 1134. 分支保护 - 掌握Require Review

11.3.2 Jenkins

  • 1135. Pipeline - 掌握声明式和脚本式,理解Jenkinsfile
  • 1136. Agent - 掌握节点管理,理解Docker Agent
  • 1137. 插件 - 掌握核心插件,理解Pipeline插件
  • 1138. 凭据管理 - 掌握Credential Plugin
  • 1139. 共享库 - 掌握Groovy共享库
  • 1140. 参数化构建 - 掌握Build With Parameters
  • 1141. 构建触发 - 掌握Webhook/定时/手动
  • 1142. 多分支Pipeline - 掌握自动发现分支

11.3.3 GitLab CI

  • 1143. .gitlab-ci.yml - 掌握CI配置,理解stages和jobs
  • 1144. Runner - 掌握Shared/Group/Specific Runner
  • 1145. Artifact - 掌握产物传递
  • 1146. Cache - 掌握缓存优化
  • 1147. 环境变量 - 掌握CI/CD Variables
  • 1148. Review Apps - 掌握动态环境
  • 1149. Auto DevOps - 掌握自动化流水线
  • 1150. 合并请求Pipeline - 掌握MR验证

11.3.4 流水线设计

  • 1151. 代码检查 - 掌握SonarQube集成
  • 1152. 单元测试 - 掌握测试覆盖率
  • 1153. 镜像构建 - 掌握Docker Build/Push
  • 1154. 部署 - 掌握Kubectl/Helm部署
  • 1155. 集成测试 - 掌握测试环境验证
  • 1156. 发布 - 掌握生产部署审批
  • 1157. 回滚 - 掌握自动/手动回滚
  • 1158. 通知 - 掌握邮件/钉钉/企微通知
  • 1159. 环境管理 - 掌握Dev/Test/Staging/Prod

11.4 服务网格

11.4.1 Istio

  • 1160. Sidecar代理 - 掌握Envoy,理解流量拦截
  • 1161. 流量管理 - 掌握VirtualService和DestinationRule
  • 1162. 服务路由 - 掌握权重路由和Header路由
  • 1163. 熔断 - 掌握OutlierDetection
  • 1164. 重试和超时 - 掌握HTTP策略
  • 1165. mTLS - 掌握服务间加密,理解PeerAuthentication
  • 1166. 授权策略 - 掌握AuthorizationPolicy
  • 1167. 可观测性 - 掌握Kiali/Jaeger/Grafana集成
  • 1168. Gateway - 掌握入口网关
  • 1169. 遥测数据 - 掌握Metrics/Logs/Traces
  • 1170. 流量镜像 - 掌握Shadow Traffic

11.4.2 服务网格进阶

  • 1171. 控制平面 - 掌握Istiod,理解Pilot/Citadel/Galley合并
  • 1172. 数据平面 - 掌握Envoy代理
  • 1173. 金丝雀发布 - 掌握Istio流量拆分
  • 1174. 速率限制 - 掌握Envoy RateLimit
  • 1175. egress流量 - 掌握出口网关
  • 1176. 多集群 - 掌握网格联邦
  • 1177. WebAssembly扩展 - 掌握Envoy Wasm插件

11.5 可观测性

11.5.1 监控

  • 1178. Prometheus - 掌握Pull模式,理解PromQL
  • 1179. 指标类型 - 掌握Counter/Gauge/Histogram/Summary
  • 1180. ServiceDiscovery - 掌握自动发现,理解Kubernetes SD
  • 1181. Alertmanager - 掌握告警路由,理解分组/抑制/静默
  • 1182. Grafana - 掌握Dashboard,理解数据源和模板变量
  • 1183. exporter - 掌握Node/Blackbox/MySQL Exporter
  • 1184. 自定义指标 - 掌握Micrometer集成
  • 1185. 长期存储 - 掌握Thanos/Cortex

11.5.2 日志

  • 1186. ELK栈 - 掌握Elasticsearch+Logstash+Kibana
  • 1187. EFK栈 - 掌握Fluentd替代Logstash
  • 1188. Loki - 掌握轻量级日志,理解Label索引
  • 1189. 日志收集 - 掌握Filebeat/Fluentbit
  • 1190. 日志格式 - 掌握JSON结构化日志
  • 1191. 日志级别 - 掌握ERROR/WARN/INFO/DEBUG/TRACE
  • 1192. 日志聚合 - 掌握TraceId关联
  • 1193. 日志保留 - 掌握ILM策略

11.5.3 链路追踪

  • 1194. OpenTelemetry - 掌握标准规范,理解Traces/Metrics/Logs
  • 1195. SkyWalking - 掌握APM,理解Java Agent无侵入
  • 1196. Jaeger - 掌握分布式追踪,理解Sampling策略
  • 1197. Trace上下文 - 掌握W3C Trace Context
  • 1198. Span - 掌握内部/客户端/生产者/消费者Span
  • 1199. Baggage - 掌握跨服务上下文传递
  • 1200. 采样策略 - 掌握概率/自适应/头部采样
  • 1201. 依赖拓扑 - 掌握服务依赖可视化

11.6 基础设施

11.6.1 IaC

  • 1202. Terraform - 掌握基础设施代码,理解Provider和Resource
  • 1203. Ansible - 掌握配置管理,理解Playbook和Inventory
  • 1204. Pulumi - 掌握编程语言定义基础设施
  • 1205. CloudFormation - 掌握AWS基础设施
  • 1206. 状态管理 - 掌握Terraform State,理解远程状态
  • 1207. 模块 - 掌握可复用组件

11.6.2 云原生安全

  • 1208. 镜像安全 - 掌握Trivy扫描,理解CVE漏洞
  • 1209. 运行时安全 - 掌握Falco,理解异常检测
  • 1210. 网络安全 - 掌握NetworkPolicy,理解零信任
  • 1211. 密钥管理 - 掌握Vault,理解动态Secret
  • 1212. 合规审计 - 掌握OPA策略,理解Rego语言
  • 1213. Pod安全 - 掌握SecurityContext
  • 1214. 签名验证 - 掌握Cosign和Notation

进度统计

  • 领域:云原生与DevOps
  • 知识点总数:221项
  • 已完成:0项
  • 待完成:221项

实战项目建议

  • 项目1:K8s部署Java应用 - 使用Deployment+Service+Ingress部署Spring Boot应用
  • 项目2:CI/CD流水线 - 搭建Jenkins/GitLab CI流水线,包含构建/测试/部署
  • 项目3:监控平台 - 搭建Prometheus+Grafana+Loki+Tempo可观测性平台

常见面试问题

  • Docker和虚拟机的区别?容器的隔离原理是什么?
  • Kubernetes的Pod是什么?为什么需要Pod而不是直接管理容器?
  • Service的几种类型?ClusterIP和NodePort的区别?
  • Helm是什么?Chart的结构是怎样的?
  • Prometheus的Pull模式相比Push有什么优势?

推荐学习资源

  • 书籍:《Kubernetes权威指南》《云原生模式》《Site Reliability Engineering》
  • 视频:极客时间《Kubernetes实战》《CI/CD流水线实践》
  • 官方:Kubernetes官方文档、Docker官方文档、Prometheus官方文档

返回总目录

知识点测试

读完文章了?来测试一下你对知识点的掌握程度吧!

评论区

使用 GitHub 账号登录后即可发表评论,支持 Markdown 格式。

如果评论系统无法加载,请确保:

  • 您的网络可以访问 GitHub
  • giscus GitHub App 已安装到仓库
  • 仓库已启用 Discussions 功能