新書推薦:
《
走出内心的深渊:快节奏人群心理疾病与健康指南(原书第3版)
》
售價:HK$
77.3
《
如何成为一家千亿公司
》
售價:HK$
76.2
《
趋势跟踪: 汤姆·巴索的交易谋略
》
售價:HK$
77.3
《
滚滚红尘(《滚滚红尘》电影原著)
》
售價:HK$
54.9
《
罗马之变(法语直译,再现罗马共和国走向罗马帝国的辉煌历史)
》
售價:HK$
109.8
《
自然之争:1600年以来苏格兰和英格兰北部地区的环境史(新史学译丛)
》
售價:HK$
106.4
《
硝烟下的博弈:工业革命与中西方战争
》
售價:HK$
87.4
《
让内的理性主义 发现无意识之旅
》
售價:HK$
66.1
|
內容簡介: |
本书提供了通过GitOps使用Kubernetes的实用教程,内容涵盖GitOps的实践、技术和工具,它们可以简化Kubernetes来更快地交付企业级软件,而不影响安全性。通过阅读本书,你将了解GitOps在灵活的配置管理、监控、健壮性、多环境支持和安全性等方面的好处,并掌握以独特的GitOps方式进行管理的技巧。学完本书,你将能够实现和管理一个可伸缩的持续交付管道,这使得跟踪更改、回滚错误以及清晰地验证和审计容器部署变得容易。
|
目錄:
|
推荐序前言致谢关于作者第一部分 背景第1章 为什么需要GitOps 21.1 GitOps的演进 21.1.1 传统Ops 31.1.2 DevOps 41.1.3 GitOps 51.2 GitOps带给开发者的好处 71.2.1 基础设施即代码 71.2.2 自服务 81.2.3 代码审查 91.2.4 Git拉取请求 91.3 GitOps带给运维的好处 101.3.1 声明式 101.3.2 可观测性 121.3.3 可审计性和合规性 131.3.4 灾难恢复 151.4 总结 15第2章 Kubernetes与GitOps 172.1 Kubernetes介绍 172.1.1 Kubernetes是什么 182.1.2 其他容器编排系统 192.1.3 Kubernetes架构 192.1.4 部署应用到Kubernetes 212.2 声明式对象管理与命令式对象管理 262.3 控制器架构 322.3.1 控制器委派 322.3.2 控制器模式 322.3.3 NGINX Operator 342.4 Kubernetes和GitOps的关系 382.5 CI/CD入门 382.5.1 基本的GitOps Operator 382.5.2 持续集成流水线 412.6 总结 44第二部分 模式和流程第3章 环境管理 483.1 环境管理简介 483.1.1 环境的组成 493.1.2 命名空间管理 513.1.3 网络隔离 553.1.4 非生产集群和生产集群 583.2 Git策略 593.2.1 单分支(多目录) 603.2.2 多分支 603.2.3 多代码库与单一代码库 613.3 配置管理 613.3.1 Helm 623.3.2 Kustomize 653.3.3 Jsonnet 693.3.4 小结 723.4 持久环境与临时环境 733.5 总结 73第4章 流水线 754.1 CI/CD流水线中的阶段 754.1.1 GitOps持续集成 764.1.2 GitOps持续交付 824.2 推动晋级工作 864.2.1 代码、清单和应用配置 864.2.2 代码和镜像晋级 864.2.3 环境晋级 884.2.4 汇总 894.3 其他流水线 904.3.1 回滚 914.3.2 合规流水线 934.4 总结 95第5章 部署策略 965.1 Deployment基础知识 965.1.1 为什么ReplicaSet不适合GitOps 975.1.2 Deployment如何与ReplicaSet一起工作 1005.1.3 流量路由 1075.1.4 在minikube中配置其他策略 1085.2 蓝绿部署 1095.2.1 使用Deployment实现蓝绿部署 1095.2.2 使用Argo Rollouts实现蓝绿部署 1155.3 金丝雀部署 1195.3.1 使用Deployment实现金丝雀部署 1205.3.2 使用Argo Rollouts实现金丝雀部署 1245.4 渐进式交付 1255.5 总结 132第6章 访问控制与安全 1336.1 访问控制介绍 1336.1.1 什么是访问控制 1346.1.2 确保什么 1346.1.3 GitOps的访问控制 1376.2 访问限制 1396.2.1 Git仓库访问 1396.2.2 Kubernetes RBAC 1466.2.3 镜像仓库访问 1516.3 模式 1536.3.1 完全访问 1536.3.2 部署仓库访问 1536.3.3 仅限代码访问 1556.4 安全考量 1556.4.1 防止从不受信任的镜像仓库拉取镜像 1556.4.2 Git仓库中的集群级资源 1566.5 总结 156第7章 Secret 1587.1 Kubernetes Secret 1587.1.1 为什么使用Secret 1597.1.2 如何使用Secret 1597.2 GitOps与Secret 1627.2.1 不加密 1627.2.2 分布式Git仓库 1627.2.3 没有细粒度的(文件级)访问控制 1627.2.4 不安全的存储 1637.2.5 完整的提交历史 1637.3 Secret管理策略 1637.3.1 在Git中存储Secret 1637.3.2 烧制Secret到容器镜像 1637.3.3 带外管理 1657.3.4 外部机密管理系统 1657.3.5 在Git中加密Secret 1667.3.6 策略的对比 1677.4 工具 1687.4.1 HashiCorp Vault 1687.4.2 Vault Agent Sidecar Injector 1717.4.3 Sealed Secrets 1757.4.4 Kustomize Secret generator插件 1797.5 总结 182第8章 可观测性 1838.1 什么是可观测性 1848.1.1 事件日志 1848.1.2 度量指标 1888.1.3 追踪 1908.1.4 可视化 1958.1.5 GitOps中可观测性的重要性 1978.2 应用程序健康状况 1978.2.1 资源状况 1988.2.2 就绪探针和存活探针 2028.2.3 应用程序监控和告警 2038.3 GitOps的可观测性 2048.3.1 GitOps度量指标 2048.3.2 应用程序同步状态 2058.3.3 配置漂移 2098.3.4 GitOps变更日志 2108.4 总结 213第三部分 工具第9章 Argo CD 2169.1 Argo CD是什么 2169.1.1 主要使用场景 2179.1.2 核心概念 2179.1.3 同步状态和健康状态 2189.1.4 架构 2209.2 部署应用 2239.2.1 部署第一个应用程序 2239.2.2 使用用户界面检查应用程序 2259.3 深入了解Argo CD的功能 2269.3.1 GitOps驱动的部署 2279.3.2 资源钩子 2279.3.3 部署后验证 2309.4 企业特性 2309.4.1 单点登录 2309.4.2 访问控制 2339.4.3 声明式管理 2359.5 总结 237第10章 Jenkins X 23810.1 Jenkins X是什么 23810.2 探索Prow、Jenkins X流水线
|
內容試閱:
|
随着Intuit踏上从私有化部署到云原生的旅程,我们重塑构建和部署流程又有了新的机会。与许多大型企业类似,旧的部署流程以数据中心为中心,拥有独立的QA、Ops和基础设施团队。部署代码可能需要数周时间,而且当出现生产问题时,开发人员无法访问基础设施。基础设施问题可能需要很长时间才能解决,并且需要许多团队的合作。
由于Marianna Tessel(Intuit首席技术官)和Jeff Brewer(Intuit SBSEG首席架构师)决定在Kubernetes和Docker上豪赌,我们有幸成为第一个通过Kubernetes和Docker完全迁移生产应用程序的团队。在此过程中,我们必须彻底改造CI/CD流水线并采用GitOps流程。Jesse和Alexander创建了Argo CD(CNCF孵化器项目)来满足企业对GitOps的需求。Todd和他的团队创建了世界一流的集群管理工具,因此我们可以轻松地扩展到数百个集群。
有了像Kubernetes和Docker这样的标准,所有工程师就可以在基础设施和部署方面使用一种通用语言。他们可以轻松地为多个其他项目做出贡献,并在开发过程完成后进行部署。GitOps还使我们能够准确了解环境中发生了哪些变化,这在你需要遵守合规性要求时尤其重要。我们无法想象回到以前的部署方式,希望本书可以帮助你快速上手GitOps!
|
|