目录
第1章用户认证项目
1.1项目介绍
1.2开发环境
1.2.1前端
1.2.2后端
第2章传统软件生产流程
2.1开发
2.2测试
2.3计算资源评估
2.4部署
2.5更新和升级
第3章容器技术的流行
3.1容器的优势
3.2Docker简介
3.3Docker安装
3.4Docker在开发领域的价值
3.5Docker在测试领域的价值
第4章容器化
4.1容器化简介
4.2保持简单和专注
4.3容器镜像
4.4镜像定义
4.4.1Dockerfile基础知识
4.4.2定义后端镜像
4.4.3定义前端镜像
4.5构建镜像
4.5.1docker build命令
4.5.2镜像缓存
4.5.3构建用于开发环境的后端镜像
4.5.4构建用于生产环境的后端镜像
4.5.5构建数据迁移镜像
4.5.6构建用于开发环境的前端镜像
4.5.7构建用于生产环境的前端镜像
4.6启动镜像
4.6.1启动MySQL镜像
4.6.2数据迁移
4.6.3启动后端镜像
4.6.4bridge网络
4.6.5自定义网络
4.6.6启动前端镜像
4.7发布镜像
4.7.1Docker Hub
4.7.2私有镜像仓库
4.8CI/CD
4.8.1后端引入CI/CD
4.8.2前端引入CI/CD
第5章容器编排
5.1容器编排简介
5.2Docker Compose
5.2.1Compose文件
5.2.2Compose环境变量
5.2.3Compose运行应用
5.2.4Compose更新应用
5.3Docker Swarm
5.3.1创建Swarm集群
5.3.2将样例服务部署到Swarm集群
5.3.3伸缩样例服务
5.3.4更新样例服务
5.3.5维护Swarm节点
5.3.6Swarm路由网格
5.3.7开发环境Swarm部署
5.3.8生产环境Swarm部署
5.3.9约束服务调度
5.3.10日志收集
第6章云原生软件生产流程
6.1云原生简介
6.2云计算的能力
6.3云原生的优势
6.4云原生的劣势
第7章云原生基础设施
7.1Kubernetes 是什么
7.2客户端工具kubectl
7.2.1kubectl简介
7.2.2使用HomeBrew安装kubectl
7.2.3使用apt安装kubectl
7.2.4使用curl安装kubectl
7.2.5设置kubectl命令自动补全
7.3本地启动Kubernetes
7.4使用kubeadm创建Kubernetes集群
7.4.1环境要求
7.4.2安装容器运行时
7.4.3安装kubeadm、kubelet、kubectl
7.4.4初始化
7.4.5设置kubeconfig
7.4.6安装网络插件
7.4.7部署样例程序
7.4.8将Node添加到集群
7.5创建托管的Kubernetes集群
7.6Kubernetes 对象
7.6.1Kubernetes对象简介
7.6.2如何描述Kubernetes对象
7.6.3如何管理Kubernetes对象
7.7Node
7.7.1Node简介
7.7.2管理Node
7.7.3Node状态
7.7.4Node控制器
7.7.5Node容量
7.8Pod
7.8.1Pod简介
7.8.2Pod使用模式
7.8.3Pod示例
7.8.4Pod模板
7.8.5Pod生命周期
7.8.6Pod中的容器状态
7.8.7Probe
7.8.8Init容器
7.9ReplicaSet
7.9.1ReplicaSet简介
7.9.2ReplicaSet示例
7.9.3获取模板以外的Pod
7.9.4缩放ReplicaSet
7.10Deployment
7.10.1Deployment简介
7.10.2Deployment示例
7.10.3更新Deployment
7.10.4回滚Deployment
7.10.5缩放Deployment
7.10.6暂停和恢复Deployment
7.11StatefulSet
7.11.1StatefulSet简介
7.11.2StatefulSet示例
7.11.3稳定的网络标识
7.11.4稳定的存储
7.12DaemonSet
7.12.1DaemonSet简介
7.12.2DaemonSet示例
7.12.3DaemonSet扩缩容
7.13Job
7.13.1Job简介
7.13.2Job示例
7.13.3Job清理
7.14ConfigMap
7.14.1ConfigMap简介
7.14.2ConfigMap示例
7.14.3Pod使用ConfigMap
7.15Secret
7.15.1Secret简介
7.15.2创建Secret
7.15.3查看Secret数据
7.16Kubernetes存储
7.16.1Volume
7.16.2PersistentVolume
7.16.3PersistentVolumeClaim
7.16.4Pod使用PersistentVolumeClaim
7.16.5StorageClass
7.16.6动态卷供应
7.16.7AWS EBS使用示例
7.17Kubernetes Service
7.17.1Service简介
7.17.2Service示例
7.17.3代理模式
7.17.4服务发现
7.17.5Service类型
7.17.6ClusterIP类型
7.17.7NodePort类型
7.17.8LoadBalancer类型
7.17.9ExternalName类型
7.17.10headless Service
7.18Kubernetes DNS
7.18.1DNS服务
7.18.2Service DNS
7.18.3PodDNS
7.19Kubernetes Ingress
7.19.1Ingress简介
7.19.2Ingress示例
7.19.3Ingress规则
7.19.4Ingress控制器
7.19.5默认后端
7.19.6资源后端
7.19.7fanout示例
7.19.8虚拟主机示例
7.19.9TLS示例
7.20Kubernetes 身份认证
7.20.1Kubernetes用户
7.20.2认证策略
7.20.3证书认证方式
7.21Kubernetes 授权
7.21.1授权模式
7.21.2RBAC
7.21.3常用命令
7.21.4Service Account
7.22Kubernetes 调度
7.22.1调度简介
7.22.2约束Node选取
7.22.3亲和性和反亲和性
7.22.4nodeName
7.22.5污点和容忍
7.22.6Pod优先级
7.22.7Pod抢占
7.22.8Pod拓扑分布
7.23Kubernetes 日志
7.23.1Kubernetes基础日志功能
7.23.2节点级日志
7.23.3集群级日志
7.24Kustomize
7.24.1Kustomize简介
7.24.2生成ConfigMap
7.24.3生成Secret
7.24.4生成器选项
7.24.5设置横切字段
7.24.6组合
7.24.7定制
7.24.8变量注入
7.24.9基准和覆盖
7.24.10应用、查询和删除对象
第8章Kubernetes部署应用
8.1环境
8.1.1开发环境
8.1.2生产环境
8.2MySQL服务
8.2.1开发环境
8.2.2生产环境
8.3数据迁移
8.4后端服务
8.5前端服务
8.6Ingress
8.7DNS
8.7.1开发环境
8.7.2生产环境
8.8TLS
8.8.1证书管理软件
8.8.2ACME
8.8.3Ingress TLS
8.9日志
8.9.1方案简介
8.9.2ElasticSearch
8.9.3Fluentd
8.9.4Kibana
8.10Kustomize
第9章Helm
9.1安装Helm
9.2Helm Chart
9.2.1Chart简介
9.2.2安装Chart
9.2.3定制Chart
9.2.4Release
9.2.5升级和回滚
9.2.6卸载Release
9.2.7搜索Chart
9.3Chart模板
9.3.1模板示例
9.3.2模板调用
9.3.3内置对象
9.3.4值文件
9.3.5模板函数和管道
9.3.6流程控制
9.3.7变量
9.3.8命名模板
9.3.9访问文件
9.3.10NOTES.txt
9.3.11helmignore文件
9.3.12Debug
9.3.13最佳实践
9.4Chart依赖
9.4.1简介
9.4.2值覆盖
9.4.3全局值
9.5Chart Hook
9.5.1简介
9.5.2Hook示例
9.5.3Hook权重
9.5.4Hook删除策略
9.6Chart测试
9.6.1测试简介
9.6.2测试示例
9.6.3运行示例测试
9.7库Chart
9.7.1简介
9.7.2示例
9.7.3使用库Chart
9.8创建自己的Chart
9.8.1后端服务
9.8.2MySQL服务
9.8.3前端服务
9.8.4数据迁移任务
9.8.5Ingress
9.8.6安装Chart
第10章服务网格
10.1服务网格简介
10.2Linkerd
10.2.1Linkerd简介
10.2.2安装Linkerd
10.2.3网格化
10.2.4代理自动注入
10.2.5暴露仪表盘
第11章云原生现状和展望
11.1云原生在企业的落地情况
11.2云厂商对云原生的支持
11.3云原生趋势展望