Kubernetes 操作器 Kubernetes Operators: Extending the Enterprise Container Platform

Jason Dobies,Joshua Wood 馬晶慧著

買這商品的人也買了...

商品描述

本書主要內容有:學習如何在Kubernetes集群上部署操作器。
從使用到實現,全面探索操作器。
探索操作器框架:操作器SDK、操作器生命週期管理器以及操作器度量。
利用SDK的Go編程語言支持構建、打包和運行操作器。
利用現有的Helm和Ansible資產打包和部署操作器。
學習如何在Kubernetes集群上分發操作器。
學習如何利用操作器實現網站可靠性工程實踐。

作者簡介

Jason Dobies

是紅帽的開發推廣工程師,美國維拉諾瓦大學軟件工程與高級項目的兼職教授。
 Wood是紅帽的開發推廣工程師,主要從事使用開源軟件構建實用程序計算的工作。

目錄大綱

目錄
前言 . 1
第1 章 操作器為Kubernetes 帶來的創新 7
1.1 Kubernetes 的工作方式 .8
1.2 示例:無狀態Web 服務器 10
1.3 有狀態的應用程序 11
1.4 操作器是軟件SRE 11
1.5 操作器的工作原理 12
1.6 如何創建操作器 13
1.7 示例:etcd 操作器 14
1.8 操作器面向的對象 15
1.9 整裝待發 16

第2 章 運行操作器 . 17
2.1 建立操作器實驗室 17
2.1.1 集群版本要求 18
2.1.2 授權要求18
2.1.3 標準的工具和技術 19
2.1.4 建議的集群配置 20
2.1.5 檢查集群的版本 22
2.2 運行一個簡單的操作器 .22
2.2.1 常見的示例 .23
2.2.2 獲取etcd 操作器的清單 24
2.2.3 CR:自定義API 端點 24
2.2.4 我是誰:定義操作器的服務賬號 25
2.2.5 部署etcd 操作器 29
2.2.6 聲明etcd 集群 30
2.2.7 練習使用etcd 32
2.2.8 擴展etcd 集群 33
2.2.9 故障與自動恢復 34
2.2.10 升級etcd 集群 36
2.2.11 清理 .39
2.3 小結 .39

第3 章 構建在Kubernetes 接口上的操作器 . 41
3.1 標準伸縮:副本集資源 .41
3.2 自定義資源 43
3.3 自定義控制器 .43
3.4 操作器的範圍 .44
3.4.1 命名空間範圍 44
3.4.2 集群範圍的操作器 45
3.5 授權 .45
3.5.1 服務賬號45
3.5.2 角色 46
3.5.3 角色綁定47
3.5.4 集群角色與集群角色綁定 47
3.6 小結 .47

第4 章 操作器框架 . 49
4.1 操作器框架的起源 49
4.2 操作器成熟度模型 50
4.3 操作器SDK .51
4.4 操作器生命週期管理器 .52
4.5 操作器度量 53
4.6 小結 .54

第5 章 示例應用程序:訪客網站 55
5.1 應用概況 56
5.2 使用清單安裝 .57
5.2.1 部署MySQL 58
5.2.2 後端 60
5.2.3 前端 63
5.3 部署清單 65
5.4 訪問訪客網站 .65
5.5 清理 .66
5.6 小結 .66

第6 章 適配器操作器 . 67
6.1 Helm 操作器 69
6.1.1 構建操作器 .70
6.1.2 完善CRD 75
6.1.3 檢查操作器的權限 75
6.1.4 運行Helm 操作器 75
6.2 Ansible 操作器 76
6.2.1 構建操作器 .77
6.2.2 完善CRD 80
6.2.3 檢查操作器的權限 80
6.2.4 運行Ansible 操作器 80
6.3 測試操作器 81
6.4 小結 .82
6.5 補充閱讀 82

第7 章 使用操作器SDK 構建Go 語言的操作器 . 83
7.1 初始化操作器 .84
7.2 操作器的範圍 .85
7.3 自定義資源定義 87
7.3.1 定義Go 類型 .88
7.3.2 CRD 清單 90
7.4 操作器權限 90
7.5 控制器 91
7.6 編寫操作器的技巧 94
7.6.1 檢索資源94
7.6.2 創建子資源 .96
7.6.3 刪除子資源 .99
7.6.4 子資源的命名 .101
7.6.5 冪等性 101
7.6.6 操作器的影響 .102
7.7 在本地運行操作器 .103
7.8 訪客網站示例 104
7.9 小結 105
7.10 補充閱讀 106

第8 章 操作器生命週期管理器 107
8.1 OLM 自定義資源 108
8.1.1 集群服務版本 .108
8.1.2 目錄源 109
8.1.3 訂閱 .109
8.1.4 安裝計劃 110
8.1.5 操作器組 110
8.2 安裝OLM 111
8.3 使用OLM 113
8.3.1 探索操作器 119
8.3.2 刪除操作器 121
8.4 OLM 捆綁包的元數據文件 121
8.4.1 自定義資源定義 122
8.4.2 集群服務版本文件 122
8.4.3 包清單文件 123
8.5 編寫集群服務版本文件 123
8.5.1 生成文件的骨架 123
8.5.2 元數據 125
8.5.3 操作器擁有的CRD .127
8.5.4 操作器依賴的CRD .131
8.5.5 安裝模式132
8.5.6 版本和更新 133
8.6 編寫包清單文件 .134
8.7 本地運行 .135
8.7.1 前提條件135
8.7.2 構建OLM 捆綁包 .140
8.7.3 通過OLM 安裝操作器 142
8.7.4 測試正在運行的操作器 .144
8.8 訪客網站操作器示例 144
8.9 小結 145
8.10 補充閱讀 145

第9 章 操作器的理念 147
9.1 每個應用程序的SRE 147
9.2 不勞而獲 .148
9.2.1 自動化:計算機自動工作 148
9.2.2 徒勞無功:沒有持久價值的工作 .149
9.2.3 擴展的痛點:隨著系統擴展不斷加重的工作 .149
9.3 操作器:Kubernetes 應用程序可靠性工程 150
9.3.1 管理應用程序的狀態 151
9.3.2 發送到軟件的黃金信號 .151
9.4 高度成功的操作器的七個習慣 153
9.5 小結 155

第10 章 親身參與 . 157
10.1 功能請求和報告錯誤 .158
10.2 貢獻代碼 159
10.3 共享操作器 .159
10.4 小結 160
附錄A 作為集群內部的部署運行操作器 . 161
附錄B 自定義資源驗證 163
附錄C 基於角色的訪問控制 . 167
作者介紹 171
封面介紹 171