注重体验与质量的电子书资源下载网站
分类于: 互联网 职场办公
简介
目录
出版说明
前言
第1章 云原生架构1
1.1 云计算的演化1
1.2 什么是云原生3
1.3 云原生基础架构4
1.4 云原生应用5
1.4.1 微服务5
1.4.2 健康状况报告6
1.4.3 自动测量数据7
1.4.4 弹性处理故障7
1.4.5 声明式通信8
1.5 十二要素应用8
1.6 实现云原生模式12
1.7 何时采用云原生12
1.8 云设计模式13
1.9 服务网格(Service Mesh)15
1.10 云原生的未来16
第2章 Kubernetes核心对象17
2.1 Kubernetes架构17
2.1.1 节点18
2.1.2 Master节点18
2.1.3 Docker镜像库19
2.2 命名空间19
2.3 Pod20
2.3.1 创建Pod20
2.3.2 Pod 内部多个容器21
2.3.3 初始化容器21
2.3.4 状态探针22
2.3.5 测试工具23
2.4 部署24
2.4.1 ReplicaSet24
2.4.2 部署26
2.4.3 有状态部署28
2.4.4 DaemonSet30
2.5 服务30
2.5.1 关于服务30
2.5.2 Ingress32
2.6 存储35
2.6.1 存储类型35
2.6.2 使用subPath37
2.7 RBAC38
2.7.1 角色和集群角色38
2.7.2 角色绑定和集群角色绑定38
第3章 敏捷基础架构40
3.1 部署本地Repository40
3.1.1 准备CentOS41
3.1.2 部署nginx和sonatype/nexus343
3.1.3 配置Nexus46
3.1.4 创建并使用NPM Registry47
3.1.5 创建并使用 Docker Repository49
3.1.6 创建Maven2 Local Repository52
3.1.7 总结54
3.2 部署Kubernetes54
3.2.1 环境准备54
3.2.2 安装Docker CE56
3.2.3 安装kube工具58
3.2.4 构建Master节点58
3.2.5 在客户端设置环境59
3.2.6 部署Flannel网络59
3.2.7 加入工作节点59
3.2.8 部署Dashboard60
3.3 MetalLB62
3.3.1 安装MetalLB63
3.3.2 配置IP地址池63
3.3.3 使用MetalLB64
3.3.4 流量策略65
3.3.5 IP共享65
3.4 部署GlusterFS66
3.4.1 卷类型66
3.4.2 GlusterFS部署方法69
3.4.3 GlusterFS要求69
3.4.4 创建磁盘分区69
3.4.5 安装软件70
3.4.6 配置防火墙71
3.4.7 配置信任池72
3.4.8 创建GlusterFS卷72
3.4.9 GlusterFS卷安全73
3.4.10 GlusterFS快照73
3.4.11 vSAN与GlusterFS的比较73
3.5 使用GlusterFS卷74
3.5.1 静态卷的使用74
3.5.2 动态卷的使用77
3.6 使用NFS卷83
3.6.1 前提条件83
3.6.2 授权83
3.6.3 创建 provisioner 和 StorageClass85
3.6.4 测试87
3.7 升级Kubernetes88
3.7.1 升级Master节点89
3.7.2 升级工作节点89
3.7.3 查看升级结果90
第4章 DevOps实战91
4.1 DevOps简介91
4.1.1 DevOps流程91
4.1.2 云原生下的DevOps92
4.2 软件部署策略93
4.2.1 实践准备93
4.2.2 重建部署(Recreate)95
4.2.3 滚动部署(RollUpdate)96
4.2.4 蓝绿部署(Blue/Green)98
4.2.5 金丝雀部署(Canary)100
4.2.6 A/B测试102
4.2.7 影子部署105
4.2.8 总结107
4.3 部署GitLab107
4.3.1 GitLab 简介107
4.3.2 在CentOS 7.x中部署GitLab108
4.3.3 使用Docker部署GitLab109
4.3.4 在Kubernetes集群中运行GitLab110
4.3.5 GitLab Runner111
4.4 GitLab 集成自动CI/CD112
4.4.1 GitLab自动CI/CD113
4.4.2 .gitlab-ci.yml114
4.4.3 变量注册115
4.5 容器部署模式116
4.5.1 什么是sidecar模式117
4.5.2 sidecar模式的优势117
4.5.3 sidecar模式的适用场景118
4.5.4 采用sidecar模式的事例118
第5章 日志记录119
5.1 模式119
5.1.1 伴生模式119
5.1.2 DaemonSet模式120
5.2 日志采集120
5.2.1 具有日志代理功能的伴生容器120
5.2.2 DaemonSet模式下配置Fluentd123
5.3 部署Elasticsearch126
5.3.1 Elasticsearch简介126
5.3.2 在Docker Swarm中部署Elasticsearch127
5.3.3 在Kubernetes上创建Elasticsearch集群128
5.4 部署Kibana139
5.4.1 在Docker中部署Kibana139
5.4.2 在Kubernetes上部署Kibana应用143
5.5 部署fluentd作为syslog server145
5.5.1 创建 fluentd 服务145
5.5.2 创建 fluentd 应用146
5.5.3 测试148
第6章 云原生下的监控149
6.1 Prometheus简介149
6.1.1 Prometheus 组成及架构150
6.1.2 使用Prometheus的场景150
6.1.3 Prometheus 相关概念151
6.2 使用Exporter采集数据153
6.2.1 常用Exporter153
6.2.2 Exporter的运行方式154
6.2.3 Node Exporter154
6.2.4 容器监控cAdvisor155
6.2.5 黑盒监控Blackbox Exporter159
6.3 在Kubernetes中部署Prometheus161
6.3.1 创建RBAC文件161
6.3.2 创建服务162
6.3.3 创建配置文件163
6.3.4 部署Prometheus167
6.4 部署 Blackbox exporter169
6.4.1 Blackbox exporter配置文件169
6.4.2 Blackbox exporter部署文件170
6.5 Node exporter172
6.5.1 创建node exporter服务172
6.5.2 创建Node exporter DaemonSet172
6.6 Grafana174
6.7 在Kubernetes中部署Grafana176
6.7.1 创建持久卷声明176
6.7.2 部署Grafana176
6.7.3 grafana配置文件178
6.7.4 创建Service178
6.8 案例:监控Drupal站点 179
6.8.1 Drupal准备 179
6.8.2 准备镜像 179
6.8.3 准备stack文件 180
6.8.4 设置Grafana 182
第7章 服务网格应用 186
7.1 Istio架构 187
7.1.1 Istio的目标 187
7.1.2 服务网格资源 188
7.2 安装与卸载Istio 192
7.2.1 下载Istio安装包 193
7.2.2 使用helm template安装 193
7.2.3 使用kubectl手动安装 194
7.2.4 卸载Istio 1687.3 使用Istio 194
7.4 Istio常用场景 195
7.4.1 分布式调用追踪 196
7.4.2 遥测度量收集 197
7.4.3 灰度发布应用 199
7.4.4 熔断 201
7.4.5 故障注入 204
7.5 总结 206
第8章 案例 207
8.1 在Kubernetes中部署Drupal 8站点 207
8.1.1 准备GlusterFS卷 208
8.1.2 创建Persistent Volume Claim 208
8.1.3 创建数据库部署(Deployment) 209
8.1.4 创建Drupal部署 210
8.1.5 安装Drupal 213
8.1.6 总结 213
8.2 云原生架构下的Node.js自动CI/CD方法 214
8.2.1 Node.js 示例 214
8.2.2 在Kubernetes集群中创建Gitlab账户 215
8.2.3 部署Docker Registry 215
8.2.4 配置GitLab 216
8.2.5 通过 GitLab 构建 Docker 216
8.2.6 部署应用到Kubernetes集群中 218
8.3 Apereo CAS自动横向缩放部署策略 220
8.3.1 CAS简介 221
8.3.2 前提条件 221
8.3.3 准备环境 222
8.3.4 CAS模板修改 223
8.3.5 持续集成 226
8.3.6 持续部署 227
8.4 Apache Kafka部署与使用 234
8.4.1 Kafka介绍 234
8.4.2 为什么在Kubernetes上运行Kafka 235
8.4.3 在Kubernetes上部署Kafka的考验 235
8.4.4 在Kubernetes上部署Kafka的方式 236
8.4.5 通过Helm部署Kafka 237
8.4.6 通过Operators部署Kafka 239
8.5 云原生应用架构在上海海事大学信息化建设中的实践 241
8.5.1 组织与赋权 241
8.5.2 敏捷性基础架构 241
8.5.3 持续交付 241
8.5.4 微服务 242
8.5.5 困难 244
参 考 文 献 245
前言
第1章 云原生架构1
1.1 云计算的演化1
1.2 什么是云原生3
1.3 云原生基础架构4
1.4 云原生应用5
1.4.1 微服务5
1.4.2 健康状况报告6
1.4.3 自动测量数据7
1.4.4 弹性处理故障7
1.4.5 声明式通信8
1.5 十二要素应用8
1.6 实现云原生模式12
1.7 何时采用云原生12
1.8 云设计模式13
1.9 服务网格(Service Mesh)15
1.10 云原生的未来16
第2章 Kubernetes核心对象17
2.1 Kubernetes架构17
2.1.1 节点18
2.1.2 Master节点18
2.1.3 Docker镜像库19
2.2 命名空间19
2.3 Pod20
2.3.1 创建Pod20
2.3.2 Pod 内部多个容器21
2.3.3 初始化容器21
2.3.4 状态探针22
2.3.5 测试工具23
2.4 部署24
2.4.1 ReplicaSet24
2.4.2 部署26
2.4.3 有状态部署28
2.4.4 DaemonSet30
2.5 服务30
2.5.1 关于服务30
2.5.2 Ingress32
2.6 存储35
2.6.1 存储类型35
2.6.2 使用subPath37
2.7 RBAC38
2.7.1 角色和集群角色38
2.7.2 角色绑定和集群角色绑定38
第3章 敏捷基础架构40
3.1 部署本地Repository40
3.1.1 准备CentOS41
3.1.2 部署nginx和sonatype/nexus343
3.1.3 配置Nexus46
3.1.4 创建并使用NPM Registry47
3.1.5 创建并使用 Docker Repository49
3.1.6 创建Maven2 Local Repository52
3.1.7 总结54
3.2 部署Kubernetes54
3.2.1 环境准备54
3.2.2 安装Docker CE56
3.2.3 安装kube工具58
3.2.4 构建Master节点58
3.2.5 在客户端设置环境59
3.2.6 部署Flannel网络59
3.2.7 加入工作节点59
3.2.8 部署Dashboard60
3.3 MetalLB62
3.3.1 安装MetalLB63
3.3.2 配置IP地址池63
3.3.3 使用MetalLB64
3.3.4 流量策略65
3.3.5 IP共享65
3.4 部署GlusterFS66
3.4.1 卷类型66
3.4.2 GlusterFS部署方法69
3.4.3 GlusterFS要求69
3.4.4 创建磁盘分区69
3.4.5 安装软件70
3.4.6 配置防火墙71
3.4.7 配置信任池72
3.4.8 创建GlusterFS卷72
3.4.9 GlusterFS卷安全73
3.4.10 GlusterFS快照73
3.4.11 vSAN与GlusterFS的比较73
3.5 使用GlusterFS卷74
3.5.1 静态卷的使用74
3.5.2 动态卷的使用77
3.6 使用NFS卷83
3.6.1 前提条件83
3.6.2 授权83
3.6.3 创建 provisioner 和 StorageClass85
3.6.4 测试87
3.7 升级Kubernetes88
3.7.1 升级Master节点89
3.7.2 升级工作节点89
3.7.3 查看升级结果90
第4章 DevOps实战91
4.1 DevOps简介91
4.1.1 DevOps流程91
4.1.2 云原生下的DevOps92
4.2 软件部署策略93
4.2.1 实践准备93
4.2.2 重建部署(Recreate)95
4.2.3 滚动部署(RollUpdate)96
4.2.4 蓝绿部署(Blue/Green)98
4.2.5 金丝雀部署(Canary)100
4.2.6 A/B测试102
4.2.7 影子部署105
4.2.8 总结107
4.3 部署GitLab107
4.3.1 GitLab 简介107
4.3.2 在CentOS 7.x中部署GitLab108
4.3.3 使用Docker部署GitLab109
4.3.4 在Kubernetes集群中运行GitLab110
4.3.5 GitLab Runner111
4.4 GitLab 集成自动CI/CD112
4.4.1 GitLab自动CI/CD113
4.4.2 .gitlab-ci.yml114
4.4.3 变量注册115
4.5 容器部署模式116
4.5.1 什么是sidecar模式117
4.5.2 sidecar模式的优势117
4.5.3 sidecar模式的适用场景118
4.5.4 采用sidecar模式的事例118
第5章 日志记录119
5.1 模式119
5.1.1 伴生模式119
5.1.2 DaemonSet模式120
5.2 日志采集120
5.2.1 具有日志代理功能的伴生容器120
5.2.2 DaemonSet模式下配置Fluentd123
5.3 部署Elasticsearch126
5.3.1 Elasticsearch简介126
5.3.2 在Docker Swarm中部署Elasticsearch127
5.3.3 在Kubernetes上创建Elasticsearch集群128
5.4 部署Kibana139
5.4.1 在Docker中部署Kibana139
5.4.2 在Kubernetes上部署Kibana应用143
5.5 部署fluentd作为syslog server145
5.5.1 创建 fluentd 服务145
5.5.2 创建 fluentd 应用146
5.5.3 测试148
第6章 云原生下的监控149
6.1 Prometheus简介149
6.1.1 Prometheus 组成及架构150
6.1.2 使用Prometheus的场景150
6.1.3 Prometheus 相关概念151
6.2 使用Exporter采集数据153
6.2.1 常用Exporter153
6.2.2 Exporter的运行方式154
6.2.3 Node Exporter154
6.2.4 容器监控cAdvisor155
6.2.5 黑盒监控Blackbox Exporter159
6.3 在Kubernetes中部署Prometheus161
6.3.1 创建RBAC文件161
6.3.2 创建服务162
6.3.3 创建配置文件163
6.3.4 部署Prometheus167
6.4 部署 Blackbox exporter169
6.4.1 Blackbox exporter配置文件169
6.4.2 Blackbox exporter部署文件170
6.5 Node exporter172
6.5.1 创建node exporter服务172
6.5.2 创建Node exporter DaemonSet172
6.6 Grafana174
6.7 在Kubernetes中部署Grafana176
6.7.1 创建持久卷声明176
6.7.2 部署Grafana176
6.7.3 grafana配置文件178
6.7.4 创建Service178
6.8 案例:监控Drupal站点 179
6.8.1 Drupal准备 179
6.8.2 准备镜像 179
6.8.3 准备stack文件 180
6.8.4 设置Grafana 182
第7章 服务网格应用 186
7.1 Istio架构 187
7.1.1 Istio的目标 187
7.1.2 服务网格资源 188
7.2 安装与卸载Istio 192
7.2.1 下载Istio安装包 193
7.2.2 使用helm template安装 193
7.2.3 使用kubectl手动安装 194
7.2.4 卸载Istio 1687.3 使用Istio 194
7.4 Istio常用场景 195
7.4.1 分布式调用追踪 196
7.4.2 遥测度量收集 197
7.4.3 灰度发布应用 199
7.4.4 熔断 201
7.4.5 故障注入 204
7.5 总结 206
第8章 案例 207
8.1 在Kubernetes中部署Drupal 8站点 207
8.1.1 准备GlusterFS卷 208
8.1.2 创建Persistent Volume Claim 208
8.1.3 创建数据库部署(Deployment) 209
8.1.4 创建Drupal部署 210
8.1.5 安装Drupal 213
8.1.6 总结 213
8.2 云原生架构下的Node.js自动CI/CD方法 214
8.2.1 Node.js 示例 214
8.2.2 在Kubernetes集群中创建Gitlab账户 215
8.2.3 部署Docker Registry 215
8.2.4 配置GitLab 216
8.2.5 通过 GitLab 构建 Docker 216
8.2.6 部署应用到Kubernetes集群中 218
8.3 Apereo CAS自动横向缩放部署策略 220
8.3.1 CAS简介 221
8.3.2 前提条件 221
8.3.3 准备环境 222
8.3.4 CAS模板修改 223
8.3.5 持续集成 226
8.3.6 持续部署 227
8.4 Apache Kafka部署与使用 234
8.4.1 Kafka介绍 234
8.4.2 为什么在Kubernetes上运行Kafka 235
8.4.3 在Kubernetes上部署Kafka的考验 235
8.4.4 在Kubernetes上部署Kafka的方式 236
8.4.5 通过Helm部署Kafka 237
8.4.6 通过Operators部署Kafka 239
8.5 云原生应用架构在上海海事大学信息化建设中的实践 241
8.5.1 组织与赋权 241
8.5.2 敏捷性基础架构 241
8.5.3 持续交付 241
8.5.4 微服务 242
8.5.5 困难 244
参 考 文 献 245