注冊(cè) | 登錄讀書好,好讀書,讀好書!
讀書網(wǎng)-DuShu.com
當(dāng)前位置: 首頁出版圖書科學(xué)技術(shù)計(jì)算機(jī)/網(wǎng)絡(luò)軟件與程序設(shè)計(jì)其他編程語言/工具基于Kubernetes的云原生DevOps(第二版)

基于Kubernetes的云原生DevOps(第二版)

基于Kubernetes的云原生DevOps(第二版)

定 價(jià):¥128.00

作 者: [美]賈斯汀 多明格斯(Justin Domingus),[英]約翰 阿倫德爾(John Arundel)
出版社: 中國電力出版社
叢編項(xiàng):
標(biāo) 簽: 暫缺

ISBN: 9787519883829 出版時(shí)間: 2023-12-01 包裝: 平裝-膠訂
開本: 16開 頁數(shù): 字?jǐn)?shù):  

內(nèi)容簡(jiǎn)介

  在本書,我們將帶領(lǐng)你了解不斷發(fā)展的Kubernetes生態(tài)系統(tǒng),并針對(duì)當(dāng)前使用軟件工具時(shí)遇到的日常問題,提供實(shí)用的解決方案。你將逐步學(xué)習(xí)如何在Kubernetes中運(yùn)行容器化的應(yīng)用程序,學(xué)習(xí)如何構(gòu)建應(yīng)用程序的開發(fā)環(huán)境以及持續(xù)部署流水線,并探索可用于自己的應(yīng)用程序的模式。你將學(xué)習(xí)如何在Kubernetes和開發(fā)運(yùn)維的幫助下,打造精簡(jiǎn)、快速且高效的開發(fā)團(tuán)隊(duì)。本書的主要內(nèi)容有:學(xué)習(xí)容器和Kubernetes的基本知識(shí),無需任何經(jīng)驗(yàn)。在托管的云Kubernetes服務(wù)或本地環(huán)境中運(yùn)行應(yīng)用程序。設(shè)計(jì)自己的云原生服務(wù)與基礎(chǔ)設(shè)施。通過Kubernetes管理資源的使用和容器的生命周期。從成本、性能、彈性、容量和可伸縮性等方面優(yōu)化集群。學(xué)習(xí)開發(fā)、測(cè)試和部署應(yīng)用程序的最Z佳工具。應(yīng)用可觀察性與監(jiān)控方面的最Z新行業(yè)實(shí)踐。保證生產(chǎn)環(huán)境中容器與集群的安全。

作者簡(jiǎn)介

  Justin Domingus是一名高級(jí)IT與開發(fā)運(yùn)維工程師,專門研究Kubernetes與云操作。他曾與許多使用Kubernetes的軟件團(tuán)隊(duì)合作,其中既包含小型創(chuàng)業(yè)公司,也不乏大型企業(yè)。John Arundel是一名Go講師、顧問和導(dǎo)師,擁有三十多年的計(jì)算機(jī)行業(yè)經(jīng)驗(yàn)。曾出版過多本技術(shù)書籍,并為全世界多家公司提供有關(guān)Kubernetes、Puppet、可擴(kuò)展性、可靠性,以及性能方面的咨詢服務(wù)。

圖書目錄

目錄
序 1
第一版序 .3
前言 5
第1 章 云革命 11
1.1 云的誕生12
1.1.1 購買時(shí)間 .13
1.1.2 基礎(chǔ)設(shè)施即服務(wù) 13
1.2 開發(fā)運(yùn)維拉開序幕 14
1.2.1 改善反饋循環(huán) 14
1.2.2 開發(fā)運(yùn)維的含義 15
1.2.3 基礎(chǔ)設(shè)施即代碼 16
1.2.4 共同學(xué)習(xí) .17
1.3 容器的到來 17
1.3.1 最先進(jìn)的技術(shù) 17
1.3.2 箱子帶來的啟發(fā) 18
1.3.3 將軟件放入容器中 .18
1.3.4 即插即用的應(yīng)用程序.20
1.4 容器的編排 21
1.5 Kubernetes 21
1.5.1 從Borg 到Kubernetes 22
1.5.2 Kubernetes 成功的原因 22
1.5.3 Kubernetes 會(huì)消失嗎? 24
1.5.4 Kubernetes 并非萬能 .25
1.6 云原生 26
1.7 運(yùn)維的未來 29
1.7.1 分布式開發(fā)運(yùn)維 29
1.7.2 有些系統(tǒng)仍然是中心式 30
1.7.3 開發(fā)人員生產(chǎn)力工程.30
1.7.4 你就是未來 31
1.8 小結(jié) .31
第2 章 Kubernetes 簡(jiǎn)介 33
2.1 運(yùn)行第一個(gè)容器 33
2.1.1 安裝Docker 桌面版 34
2.1.2 什么是Docker ? 35
2.1.3 運(yùn)行容器鏡像 35
2.2 演示應(yīng)用程序 .36
2.2.1 查看源代碼 36
2.2.2 Go 簡(jiǎn)介 37
2.2.3 演示應(yīng)用程序的原理.38
2.3 建立容器38
2.3.1 了解Dockerfile 39
2.3.2 最低限度的容器鏡像.39
2.3.3 運(yùn)行Docker image build .40
2.3.4 命名鏡像 .40
2.3.5 端口轉(zhuǎn)發(fā) .41
2.4 容器倉庫42
2.4.1 鏡像倉庫的身份驗(yàn)證.42
2.4.2 命名和推送鏡像 43
2.4.3 運(yùn)行鏡像 .43
2.5 Kubernetes 入門 .44
2.5.1 運(yùn)行演示應(yīng)用 44
2.5.2 如果容器無法啟動(dòng) .45
2.6 Minikube 46
2.7 小結(jié) .46
第3 章 獲取Kubernetes 49
3.1 集群架構(gòu)50
3.1.1 控制平面 .50
3.1.2 節(jié)點(diǎn)組件 .51
3.1.3 高可用性 .52
3.2 自托管Kubernetes 的成本 53
3.2.1 超出預(yù)期的工作量 .54
3.2.2 不僅僅是初始設(shè)置 .55
3.2.3 不能完全依賴工具 .55
3.2.4 Kubernetes the Hard Way 56
3.2.5 Kubernetes 很難 56
3.2.6 管理費(fèi)用 .56
3.2.7 從托管服務(wù)開始 57
3.3 托管Kubernetes 服務(wù) .58
3.3.1 Google Kubernetes Engine(GKE) .58
3.3.2 集群自動(dòng)伸縮 58
3.3.3 Autopilot 58
3.3.4 亞馬遜的Elastic Container Service for Kubernetes(EKS) 59
3.3.5 Azure Kubernetes Service(AKS) 60
3.3.6 IBM Cloud Kubernetes Service .60
3.3.7 DigitalOcean Kubernetes .60
3.4 Kubernetes 安裝程序 60
3.4.1 kops 61
3.4.2 Kubespray 61
3.4.3 kubeadm 61
3.4.4 Rancher Kubernetes Engine(RKE) 62
3.4.5 Puppet Kubernetes 模塊 62
3.5 買還是構(gòu)建:我們的建議 62
3.5.1 運(yùn)行更少軟件 62
3.5.2 盡可能使用托管Kubernetes 63
3.5.3 如何應(yīng)對(duì)提供商鎖定呢? 63
3.5.4 裸金屬與內(nèi)部服務(wù)器.64
3.5.5 多云Kubernetes 集群 65
3.5.6 OpenShift 66
3.5.7 Anthos 66
3.5.8 根據(jù)需要使用標(biāo)準(zhǔn)的Kubernetes 自托管工具 66
3.6 無集群容器服務(wù) 67
3.6.1 AWS Fargate 67
3.6.2 Azure Container Instances(ACI) 67
3.6.3 谷歌Cloud Run 68
3.7 小結(jié) 68
第4 章 Kubernetes 對(duì)象 71
4.1 部署 .71
4.1.1 監(jiān)督與調(diào)度 72
4.1.2 重啟容器 .72
4.1.3 創(chuàng)建部署 .73
4.2 Pod 74
4.3 副本集 75
4.4 維持所需狀態(tài) .76
4.5 Kubernetes 調(diào)度器 77
4.6 YAML 格式的資源清單 .78
4.6.1 資源就是數(shù)據(jù) 79
4.6.2 部署清單 .79
4.6.3 使用kubectl apply 80
4.6.4 服務(wù)資源 .81
4.6.5 使用kubectl 查詢集群84
4.6.6 資源的高級(jí)使用方式.85
4.7 Helm:Kubernetes 包管理器 85
4.7.1 安裝Helm 86
4.7.2 安裝Helm Chart 86
4.7.3 Chart、Repository 與Release 87
4.7.4 查看Helm Release .88
4.8 小結(jié) .89
第5 章 資源管理 91
5.1 了解資源91
5.1.1 資源單位 .92
5.1.2 資源請(qǐng)求 .92
5.1.3 資源約束 .93
5.1.4 服務(wù)質(zhì)量 .94
5.2 管理容器的生命周期 95
5.2.1 存活探針 .95
5.2.2 探針延遲及頻率 96
5.2.3 其他類型的探針 96
5.2.4 就緒探針 .97
5.2.5 啟動(dòng)探針 .98
5.2.6 gRPC 探針 99
5.2.7 基于文件的就緒探針.99
5.2.8 minReadySeconds .100
5.2.9 Pod 中斷預(yù)算 . 100
5.3 命名空間. 102
5.3.1 命名空間的使用 103
5.3.2 應(yīng)該使用哪些命名空間? 103
5.3.3 服務(wù)地址 104
5.3.4 資源配額 105
5.3.5 默認(rèn)資源請(qǐng)求和約束 107
5.4 優(yōu)化集群的成本 . 108
5.4.1 Kubecost 108
5.4.2 優(yōu)化部署 108
5.4.3 優(yōu)化Pod 109
5.4.4 Pod 垂直自動(dòng)伸縮 110
5.4.5 優(yōu)化節(jié)點(diǎn) 110
5.4.6 優(yōu)化存儲(chǔ) 112
5.4.7 清理未使用的資源 113
5.4.8 檢查備用容量 . 115
5.4.9 使用預(yù)留實(shí)例 . 116
5.4.10 搶占式(Spot)實(shí)例 116
5.4.11 保持工作負(fù)載平衡 119
5.5 小結(jié) 121
第6 章 集群運(yùn)維 . 123
6.1 集群的規(guī)模與伸縮 . 123
6.1.1 容量規(guī)劃 124
6.1.2 節(jié)點(diǎn)與實(shí)例 . 127
6.1.3 集群伸縮 129
6.2 一致性檢查 131
6.2.1 CNCF 認(rèn)證 132
6.2.2 Sonobuoy 一致性測(cè)試 134
6.2.3 Kubernetes 審計(jì)日志 135
6.3 混亂測(cè)試. 135
6.3.1 生產(chǎn)環(huán)境是無法復(fù)制的 . 136
6.3.2 Chaoskube 137
6.3.3 kube-monkey 137
6.3.4 PowerfulSeal 138
6.4 小結(jié) 138
第7 章 強(qiáng)大的Kubernetes 工具 141
7.1 掌握kubectl 141
7.1.1 Shell 別名 .141
7.1.2 使用縮寫標(biāo)志 . 142
7.1.3 縮寫資源類型 . 143
7.1.4 自動(dòng)補(bǔ)齊kubectl 命令 143
7.1.5 獲取幫助 144
7.1.6 獲取有關(guān)Kubernetes 資源的幫助 144
7.1.7 顯示更詳細(xì)的輸出 145
7.1.8 使用JSON 數(shù)據(jù)和jq 145
7.1.9 監(jiān)視對(duì)象 147
7.1.10 描述對(duì)象 147
7.2 處理資源. 147
7.2.1 命令式的kubectl 命令 147
7.2.2 何時(shí)不應(yīng)該使用命令式的命令 148
7.2.3 生成資源清單 . 149
7.2.4 導(dǎo)出資源 150
7.2.5 對(duì)比資源 150
7.3 處理容器. 151
7.3.1 查看容器的日志 151
7.3.2 附加到容器 . 153
7.3.3 利用kubespy 監(jiān)視Kubernetes 資源 153
7.3.4 轉(zhuǎn)發(fā)容器端口 . 153
7.3.5 在容器上執(zhí)行命令 154
7.3.6 用于故障排除的容器 155
7.3.7 BusyBox 命令. 156
7.3.8 將BusyBox 添加到容器 157
7.3.9 在容器上安裝程序 158
7.4 上下文與命名空間 . 159
7.4.1 kubeconfig 文件 160
7.4.2 kubectx 與kubens. 160
7.4.3 kube-ps1 162
7.5 Kubernetes shell 與工具 162
7.5.1 kube-shell 162
7.5.2 Click 162
7.5.3 Kubed-sh 163
7.5.4 Stern 163
7.6 Kubernetes IDE 164
7.6.1 Lens . 164
7.6.2 VS Code 的Kubernetes 擴(kuò)展 164
7.7 構(gòu)建自己的Kubernetes 工具 165
7.8 小結(jié) 166
第8 章 運(yùn)行容器 . 169
8.1 容器與Pod 169
8.1.1 什么是容器? . 170
8.1.2 Kubernetes 中的容器運(yùn)行時(shí) 171
8.1.3 容器中有什么? 172
8.1.4 Pod 中有什么? . 172
8.2 容器清單. 173
8.2.1 鏡像標(biāo)識(shí)符 . 174
8.2.2 latest 標(biāo)簽 175
8.2.3 容器摘要 176
8.2.4 基礎(chǔ)鏡像標(biāo)簽 . 176
8.2.5 端口 . 177
8.2.6 資源請(qǐng)求和約束 177
8.2.7 鏡像拉取策略 . 178
8.2.8 環(huán)境變量 178
8.3 容器安全. 179
8.3.1 以非root 用戶身份運(yùn)行容器 180
8.3.2 阻止Root 容器 181
8.3.3 設(shè)置只讀文件系統(tǒng) 181
8.3.4 禁用權(quán)限升級(jí) . 182
8.3.5 能力 . 182
8.3.6 Pod 安全上下文 . 184
8.3.7 Pod 服務(wù)賬號(hào) . 184
8.4 卷 185
8.4.1 emptyDir 卷 .185
8.4.2 持久卷 187
8.5 重啟策略. 188
8.6 ImagePullSecret 188
8.7 初始化容器 189
8.8 小結(jié) 189
第9 章 管理Pod 191
9.1 標(biāo)簽 191
9.1.1 什么是標(biāo)簽? . 191
9.1.2 選擇器 192
9.1.3 高級(jí)選擇器 . 193
9.1.4 標(biāo)簽的其他用途 194
9.1.5 標(biāo)簽與注釋 . 195
9.2 節(jié)點(diǎn)親和性 196
9.2.1 硬親和性 197
9.2.2 軟親和性 197
9.3 Pod 的親和性與反親和性 198
9.3.1 將Pod 調(diào)度到一起 199
9.3.2 分開Pod 200
9.3.3 軟反親和性 . 200
9.3.4 何時(shí)使用Pod 親和性 . 201
9.4 污點(diǎn)與容忍 201
9.5 Pod 控制器 203
9.5.1 守護(hù)進(jìn)程集 . 204
9.5.2 狀態(tài)集 205
9.5.3 作業(yè) . 206
9.5.4 定時(shí)作業(yè) 208
9.5.5 Pod 水平自動(dòng)伸縮器 209
9.5.6 操作器與自定義資源定義(CRD) 211
9.6 Ingress 資源 212
9.6.1 Ingress 控制器 213
9.6.2 Ingress 規(guī)則 . 215
9.6.3 通過Ingress 終止TLS 216
9.7 服務(wù)網(wǎng)格. 217
9.7.1 Istio . 217
9.7.2 Linkerd 217
9.7.3 Consul Connect .217
9.7.4 NGINX 服務(wù)網(wǎng)格 .218
9.8 小結(jié) 218
第10 章 配置與Secret 221
10.1 ConfigMap 221
10.1.1 創(chuàng)建ConfigMap . 222
10.1.2 利用ConfigMap 設(shè)置環(huán)境變量 223
10.1.3 利用ConfigMap 設(shè)置整個(gè)環(huán)境 226
10.1.4 使用環(huán)境變量指定命令的參數(shù) 227
10.1.5 利用ConfigMap 創(chuàng)建配置文件 228
10.1.6 配置發(fā)生變化后更新Pod 230
10.2 Kubernetes Secret 231
10.2.1 利用Secret 設(shè)置環(huán)境變量 .231
10.2.2 將Secret 寫入文件 232
10.2.3 讀取Secrest 233
10.2.4 Secret 的訪問權(quán) 235
10.2.5 靜態(tài)加密 235
10.2.6 防止Secret 和ConfigMap 被修改 . 235
10.3 Secret 管理策略 236
10.3.1 在版本控制中加密機(jī)密 236
10.3.2 使用專業(yè)的機(jī)密管理工具 . 237
10.4 使用Sops 加密機(jī)密數(shù)據(jù) . 238
10.4.1 使用Sops 加密文件 239
10.4.2 使用KMS 后端 241
10.5 Sealed Secrets 241
10.6 小結(jié) 242
第11 章 安全、備份與集群健康 243
11.1 訪問控制與權(quán)限 243
11.1.1 按集群管理訪問權(quán)限 243
11.1.2 基于角色的訪問控制(RBAC) 244
11.1.3 角色 245
11.1.4 將角色綁定到用戶 246
11.1.5 我需要哪些角色? 247
11.1.6 保護(hù)集群管理員的權(quán)限 247
11.1.7 應(yīng)用程序與部署 .248
11.1.8 RBAC 故障排除 .248
11.2 集群的安全掃描 249
11.2.1 Gatekeeper/OPA 250
11.2.2 kube-bench 250
11.2.3 Kubescape 251
11.3 容器安全掃描 251
11.3.1 Clair 252
11.3.2 Aqua . 252
11.3.3 Anchore Engine 253
11.3.4 Synk .253
11.4 備份 254
11.4.1 Kubernetes 需要備份嗎? 255
11.4.2 備份etcd 255
11.4.3 備份資源狀態(tài) 256
11.4.4 備份集群狀態(tài) 256
11.4.5 大小災(zāi)害 257
11.4.6 Velero 257
11.5 監(jiān)視集群狀態(tài) 261
11.5.1 Kubectl 261
11.5.2 CPU 和內(nèi)存利用率 263
11.5.3 云提供商控制臺(tái) .264
11.5.4 Kubernetes 儀表板 . 264
11.5.5 Weave Scope .265
11.5.6 kube-ops-view .266
11.5.7 node-problem-detector .266
11.6 延伸閱讀 266
11.7 小結(jié) 266
第12 章 部署Kubernetes 應(yīng)用程序 269
12.1 使用Helm 構(gòu)建清單 269
12.1.1 Helm Chart 包含什么? 270
12.1.2 Helm 模板 .271
12.1.3 插值變量 272
12.1.4 引用模板中的值 . 274
12.1.5 指定依賴項(xiàng) 274
12.2 部署Heml Chart 275
12.2.1 設(shè)置變量 275
12.2.2 在Helm Release 中指定值 276
12.2.3 使用Helm 更新應(yīng)用程序 277
12.2.4 回滾到以前的版本 278
12.2.5 創(chuàng)建Helm Chart 庫 278
12.2.6 使用Sops 管理Helm Chart 的機(jī)密數(shù)據(jù) .279
12.3 使用Helmfile 管理多個(gè)Chart 281
12.3.1 Helmfile 中有什么? 282
12.3.2 Chart 元數(shù)據(jù). 283
12.3.3 應(yīng)用Helmfile 284
12.4 高級(jí)清單管理工具 285
12.4.1 kustomize 285
12.4.2 Tanka 287
12.4.3 Kapitan 288
12.4.4 kompose . 288
12.4.5 Ansible 289
12.4.6 kubeval 289
12.5 小結(jié) 290
第13 章 開發(fā)流程 293
13.1 開發(fā)工具 293
13.1.1 Skaffold 294
13.1.2 Telepresence .296
13.1.3 Waypoint 296
13.1.4 Knative 297
13.1.5 OpenFaaS 297
13.1.6 Crossplane . 297
13.2 部署策略 299
13.2.1 滾動(dòng)更新 300
13.2.2 重建 300
13.2.3 maxSurge 和maxUnavailable 301
13.2.4 藍(lán)綠部署 302
13.2.5 彩虹部署 303
13.2.6 金絲雀部署 303
13.3 使用Helm 處理遷移 304
13.3.1 Helm 的鉤子 .304
13.3.2 處理失敗的鉤子 . 305
13.3.3 其他鉤子 305
13.3.4 鉤子鏈 . 306
13.4 小結(jié) 307
第14 章 Kubernetes 的持續(xù)部署 . 309
14.1 什么是持續(xù)部署? 309
14.2 CD 工具 310
14.3 托管CI/CD 工具 311
14.3.1 Azure 流水線 311
14.3.2 谷歌云構(gòu)建 311
14.3.3 Codefresh 311
14.3.4 GitHub Actions 312
14.3.5 GitLab CI 312
14.4 自托管CI/CD 工具 . 312
14.4.1 Jenkins . 312
14.4.2 Drone 312
14.4.3 Tekton 313
14.4.4 Concourse 313
14.4.5 Spinnaker 313
14.4.6 Argo . 313
14.4.7 Keel 314
14.5 谷歌云構(gòu)建的CD 流水線 314
14.5.1 設(shè)置谷歌云和GKE 314
14.5.2 分叉demo 代碼庫 .315
14.5.3 創(chuàng)建 Artifact Registry 容器存儲(chǔ)庫 315
14.5.4 配置云構(gòu)建 316
14.5.5 構(gòu)建測(cè)試容器 316
14.5.6 運(yùn)行測(cè)試 317
14.5.7 構(gòu)建應(yīng)用程序容器 318
14.5.8 替換變量 318
14.5.9 Git SHA 標(biāo)簽 318
14.5.10 驗(yàn)證Kubernetes 清單 319
14.5.11 發(fā)布鏡像 .319
14.5.12 創(chuàng)建第一個(gè)構(gòu)建觸發(fā)器 319
14.5.13 測(cè)試觸發(fā)器 . 320
14.5.14 利用CI/CD 流水線部署 321
14.5.15 創(chuàng)建部署觸發(fā)器 323
14.5.16 調(diào)整示例流水線 324
14.6 GitOps 324
14.7 小結(jié) 328
第15 章 可觀察性與監(jiān)控 . 329
15.1 什么是可觀察性? 329
15.1.1 什么是監(jiān)控? 329
15.1.2 黑盒監(jiān)控 330
15.1.3 “正常”指什么? 331
15.1.4 日志 333
15.1.5 指標(biāo) 335
15.1.6 跟蹤 336
15.1.7 可觀察性 337
15.2 可觀察性流水線 339
15.3 Kubernetes 中的監(jiān)控 .340
15.3.1 外部的黑盒檢查 . 340
15.3.2 內(nèi)部健康檢查 342
15.4 小結(jié) 344
第16 章 Kubernetes 的指標(biāo) 347
16.1 什么是指標(biāo)? 347
16.1.1 時(shí)間序列數(shù)據(jù) 348
16.1.2 計(jì)數(shù)器和計(jì)量器 . 348
16.1.3 指標(biāo)可以告訴我們什么? . 349
16.2 選擇指標(biāo) 349
16.2.1 服務(wù):RED 模式 350
16.2.2 資源:USE 模式 351
16.2.3 業(yè)務(wù)指標(biāo) 352
16.2.4 Kubernetes 指標(biāo) .353
16.3 分析指標(biāo) 357
16.3.1 簡(jiǎn)單的平均值有什么問題? 358
16.3.2 均值、中位數(shù)和離群值 358
16.3.3 百分位數(shù) 359
16.3.4 將百分位數(shù)應(yīng)用于指標(biāo)數(shù)據(jù) 360
16.3.5 最壞的情況 361
16.3.6 比百分位數(shù)更好的方式 362
16.4 通過儀表板顯示指標(biāo)的圖表 363
16.4.1 所有服務(wù)都使用相同的標(biāo)準(zhǔn)布局 363
16.4.2 利用主儀表板構(gòu)建信息發(fā)射源 364
16.4.3 在儀表板上顯示故障 365
16.5 根據(jù)指標(biāo)發(fā)出警報(bào) 366
16.5.1 警報(bào)有什么問題? 367
16.5.2 值班不應(yīng)該成為地獄 368
16.5.3 緊急、重大且需要付諸行動(dòng)的警報(bào) . 368
16.5.4 跟蹤警報(bào)、工作時(shí)間外的呼叫 369
16.6 指標(biāo)工具和服務(wù) 370
16.6.1 Prometheus 370
16.6.2 谷歌的 Operations Suite .373
16.6.3 AWS Cloudwatch 373
16.6.4 Azure Monitor .374
16.6.5 Datadog 374
16.6.6 New Relic 375
16.7 小結(jié) 375
后記 . 379

本目錄推薦

掃描二維碼
Copyright ? 讀書網(wǎng) m.ranfinancial.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號(hào) 鄂公網(wǎng)安備 42010302001612號(hào)