超前部署企業雲 非懂不可 -- 最強圖解虛擬化,openstack 企業雲一日即成
內容描述
在本書中,針對沒有任何系統經驗的管理者或程式開發者,提供一個全新的切入點,從基本的Linux系統安裝到使用Kolla-ansible快速建置openstack服務並搭配底層KVM Hypervisor 節點及外接Ceph分散式儲存系統,來架構出一套完整企業雲平台,最後以客製化WEB Dashboard 虛擬主機需求,結合大量的實戰經驗與案例整合在本書,方便讀者學習、對openstack、KVM、Ceph、 Docker、K8s 這些軟體套件更加的熟識,在系統管理以及開發技術上也有所增長。
<自序>
羅偉立:
為什麼要寫這本書呢?撰寫這本書著實也花費蠻多時間與心力。目的為了讓更多人了解什麼是虛擬化, 虛擬化為現代人帶來什麼樣的便利性, 以往只能在機房操作實體主機那種令人受凍的痛苦,或是半夜跑機房的這些體驗,都應該讓他變成過去。如何建立一整套完善的私有雲環境, 高可用性的遠端控管是我們這世代的人要做的事情。為了將這個想法發散出去,我們想到透過寫書來將經驗傳承出去。
¬同時,有鑑於當前很多企業花費龐大的預算在承租線上公有雲, 作為生產開發環境、小規模網站架設、LAB 系統開發環境;大規模到線上平台系統、商業電商服務系統。動輒每月至少數萬至幾百萬元的開支。其實綜合整理下來,有絕大部分的雲端資源使用都是閒置或是線路因為異常流量輸出導致必須每月加收超額費用。有些企業其實已經認知到這個問題,開始轉為建立自己企業的混合雲環境。只不過在自建虛擬化雲端環境又遇到了更龐大的一次性費用成本,就是購買虛擬化服務商的軟體授權,授權費用依據規模大小,費用非常可觀。企業主只能回頭繼續使用月費制的公有雲服務。
¬ 本書目的不是要讓你放棄使用商業化的雲端服務,而是希望在上述的這些選擇之外,提供您其他的選擇方向。現在的每個人都跟雲端環境息息相關,我們的目的在建立一個更為便捷的雲端環境,如果這樣的雲端技術與作法能夠讓更多人學習到,將會是推動雲端社會更加進一步的發展。我們也算是盡了一份微薄力量。本書絕大部分資源都能夠在網路上面取得,唯獨最後一章節開發項目,內容篇幅過多,所以範例部分可以在Github 官方網站下載 https://github.com/sa9023025/openstackapidemo。同時我們將不定期在上面更新本書編錯與修訂。
楊文智:
2014年剛開始接觸使用openstack時, 說真的當時完全對它不熟,架構複雜入門有難度,對新手來說,門檻很高不容易入手,要逐一使用指令來安裝各個元件模組是一項非常困難的事情。如果使用者又完全對Linux系統指令不熟,就更加困難了,往往讓一開始想接觸openstack新手們開始慢慢退怯。
幸運的是,openstack開發者們為了簡化安裝操作,許多部署工具被開發出來,透過這些工具,新手們可以快速建置出一個openstack雲環境。在本書中,針對沒有任何系統經驗的管理者或程式開發者,提供一個全新的進入點,從基本的Linux系統安裝到使用Kolla-ansible快速建置openstack服務並搭配底層KVM Hypervisor節點及外接Ceph分散式儲存系統來架構出一套完整企業雲平台,最後以客製化WEB Dashboard虛擬主機需求,結合大量的實戰經驗與案例,整合在本書。試想一下,如果可以很有彈性依照主機需求透過手機或PC申請企業內虛擬主機並管理它,這感覺得是不是蠻方便實用的呢? 或是建置出目前很流行的超融合架構呢?
相信讀者有了初體驗之後,對openstack、KVM、Ceph、Docker、K8s這些軟體套件會更加的熟識,在系統管理以及開發技術上也有所增長。目前這些軟體套件也不斷地創新、加強新功能,不斷改善現有Bug,不管在安全性、可靠性、可擴充性以及管理功能上,都合乎管理者與使用者的需求。如此大的魅力,讓我由不自主的愈來愈喜歡上它們了~ 也希望藉由此機會向讀者推廣這些這麼優秀的開源軟體。
在這段時間,真的很感謝每一位協助的同事或朋友。感謝同事Vicky Ho(何怡霖)在這段期間網路上的協助。感謝每一位朋友在實際部署測試上所有寶貴的建議,才能順利完成環境建置。最後要感謝購買本書的讀者們,肯定筆者,大家一起共同來推廣開源技術,讓世界更美好。
目錄大綱
實戰篇
CHAPTER 1 虛擬化技術是啥?
1.1 常見虛擬化技術
1.1.1 CPU 虛擬化
1.1.2 伺服器虛擬化
1.1.3 網路虛擬化
1.1.4 儲存虛擬化
1.1.5 應用虛擬化
1.1.6 容器化
1.2 openstack 最佳戰友- KVM
1.2.1 KVM 的歷史
1.2.2 認識KVM 虛擬化技術
1.2.3 KVM 虛擬化原理
1.2.4 QEMU-KVM
1.2.5 KVM 管理工具
1.2.6 範例- 建立Windows 虛擬主機
1.2.7 範例- 建立Windows 範本製作
1.2.8 範例- 套用Windows 範本
1.2.9 範例- 建立Linux 範本製作
1.2.10 範例- 套用Linux 範本
1.3 遇見openstack
1.3.1 openstack 簡介
1.3.2 認識openstack 模組
1.3.3 理解openstack 運作架構
1.3.4 使用openstack 好處
CHAPTER 2 快速部署第一個私有雲
2.1 部署前的準備
2.2 安裝Centos7 作業系統(最小化安裝)
2.3 建置openstack 的部署主機
2.3.1 加掛Docker Registry 的儲存空間
2.3.2 Docker 簡介
2.3.3 安裝Docker
2.3.4 建置私有的Docker Registry
2.3.5 ansible 簡介
2.3.6 Kolla 簡介
2.3.7 開始部署openstack
2.3.8 第一次登入openstack
2.4 透過Web 控制台管理openstack
2.4.1 控制台主畫面
2.4.2 使用者設定
2.4.3 管理使用者
2.4.4 管理映像檔
2.4.5 管理網路
2.4.6 管理Flavors 資源規格
2.4.7 管理Key Pairs 金鑰對
2.4.8 部署您的第一台虛擬主機
2.5 openstack 高可用節點測試
2.5.1 Nova 運算節點的可用性測試
2.5.2 控制節點的可用性測試
2.6 HAProxy Web 監控介面
2.7 openstack 常用指令
CHAPTER 3 建置分散式儲存-CEPH
3.1 Ceph 簡介
3.2 開始部署您的第一個Ceph 叢集
3.3 透過Web 控制台管理Ceph
3.3.1 儀表板(Dashboard)
3.3.2 叢集(Cluster)
3.3.3 儲存池(Pools)
3.3.4 區塊裝置(Block)
3.3.5 NFS
3.3.6 Ceph 檔案系統(Filesystems)
3.3.7 物件閘道(Object Gateway)
3.3.8 管理使用者和角色
3.4 Ceph 節點管理
3.4.1 新增Ceph OSD 節點
3.4.2 移除Ceph OSD 節點
3.4.3 更換OSD 硬碟
3.4.4 新增Ceph Monitor 節點
3.4.5 移除Ceph Monitor 節點
3.4.6 刪除叢集
3.5 應用範例
3.5.1 如何掛載RBD 區塊儲存
3.5.2 如何使用CephFS
3.5.3 透過FUSE 方式掛載CephFS
3.5.4 如何使用NFS
3.5.5 如何使用iSCSI 掛載Ceph 儲存
3.6 Ceph 常用管理指令
CHAPTER 4 openstack 與Ceph 整合
4.1 Ceph 整合- 操作步驟
4.2 與Ceph 相關的選項
4.3 測試Cinder 整合功能
4.4 測試Glance 整合功能
4.5 測試VM 熱遷移功能
CHAPTER 5 使用Magnum 快速佈署Kubernetes
5.1 安裝及配置Magnum
5.2 建立magnum 儲存類型
5.3 部署Kubernetes 叢集
5.4 檢視COE 叢集
5.5 擴展COE 叢集節點
5.6 移除COE 叢集
5.7 檢視Kubernetes 叢集環境
5.8 設定Kubernetes dashboard
5.9 登入Kubernetes dashboard
5.10 建立服務帳號
5.11 快速部署第一個應用程式容器
5.12 驗證容器服務
5.13 上傳YAML 或者JSON 檔案
5.14 以kubelet 指令部署應用程式容器
5.15 範例- 架設WordPress 部落格網站
5.16 常用的kubelet 指令
應用開發篇
CHAPTER 6 使用API 操作
6.1 openstack 支援的API 方式
6.1.1 openstack 客戶端(OSC)
6.1.2 openstack SDK 開發工具
6.1.3 cURL with APIs
6.2 實作REST API 範例
6.2.1 cURL with Compute API
6.3 客製化WEB 介面開發
6.3.1 Web 環境建置
6.3.2 驗證與操作
附錄
APPENDIX A 自動化網路安裝作業系統(PXE+Kickstart)
A.1 部署Installation Server
A.2 驗證自動化安裝
APPENDIX B 如何更改實體網卡名稱(以openstack-1 主機為例)
APPENDIX C 常用docker 管理指令
作者介紹
羅偉立
資深技術經理,目前任職於國內知名遊戲公司,從事系統開發經歷12年。
RedHat RHCE/RHCA Cloud國際認證。
openstack社區貢獻(Havana Oct 2013~)。
知名遊戲公司第一代私有雲端環境規劃建置者之一。
知名遊戲公司第二代大型混合雲端環境規劃建置者之一。
楊文智
資深技術支援主任,目前任職於國內知名遊戲公司,擁有20年系統技術經驗,負責IT基礎架構、系統建置與維運管理、善於Citrix XenServer/Microsoft Hyper-V/KVM等虛擬化技術建置與管理。
具有LPIC Level 2/LPIC Level 1/SCNA/SCSA/CIW/CCNA等專業國際認證。