前言 Charmed Kuberenetes 是 Canonical 提供的 Kubernetes 部署方式,可以透過 juju 將 Kubernetes 部署至各種不同環境。 本篇將介紹如何部署 Charmed Kubernetes 至 OpenStack 上,並且利用 OpenStack Integrator 使用 OpenStack 提供 Persistent Volume 和 Load Balancer 給 Kubernetes 使用。
OpenStack
- Cloud
- ...
快速部署 Kubernetes 叢集:使用 kops 在 OpenStack 上的實踐指南
Kubernetes 提供多種部署選擇,而在眾多工具中,kops 以其易用性及高整合性脫穎而出。本文將深入介紹 kops 工具,並透過實際操作引導讀者在 OpenStack 環境中迅速建立一個 Kubernetes 叢集。
從裸機到雲端:OpenStack 部屬工具 3
上一篇我們介紹了兩個有強大廠商後盾的部屬工具,本偏要介紹大多為社群成員維護的部屬專案,OpenStack-Ansible, Kolla-Ansible, OpenStack-Helm OpenStack-Ansible OpenStack-Ansible 就如其名,就是透過 Ansible 去部屬 OpenStack 的工具,其中支援非常多 OpenStack 元件以及不同的 Plugin。 OpenStack Ansible 主要透過 lxc container + Ansible-playbook 來安裝 OpenStack,其中有部分 service 並沒有放在 lxc container 中,如 nova-compute。 在 network plugin 的支援也是今天介紹的 3 個部屬工具中最多的,其中包含了在一些特殊環境下很好用的 Calico。 OpenStack Ansible 除了部屬 OpenStack 以外,同時也可以在部屬 OpenStack 儲存所需要使用的 Ceph,而其他專案如 Kolla-Ansible 的 Ceph cluster 就要額外自己部屬並且透過 config overwrite 去設定。 Kolla-Ansible Kolla-Ansible 是本次系列文章所選用的部屬工具,跟 OpenStack-Ansible […]
從裸機到雲端:OpenStack 部屬工具 2
上一篇我們介紹了 DevStack 跟 MicroStack 這兩個非常容易上手但是比較偏向開發測試使用的部屬方式。今天筆者會來介紹 TripleO 跟 OpenStack Charms 這兩個有強大廠商後盾的部屬工具 TripleO TripleO 是 "OpenStack on OpenStack" 的縮寫。它是 OpenStack 中其中一個 project,其主要功能就是透過 OpenStack 的一些元件幫你部屬以及維運一個可用於實際生產環境的 OpenStack Cloud。 目前 TripleO 主要由 RedHat 維護,也是 RedHat OpenStack Platform (RHOSP) 的上游部屬專案 架構概覽 如剛剛所提到的,TripleO 是 "OpenStack on OpenStack",亦即是你會有兩個 OpenStack 環境。其中一個環境我們稱之為 undercloud。Undercloud 包含了一些必要的 OpenStack 元件用來部屬我們的 overcloud。Overcloud 是 undercloud deploy 出來的 OpenStack cluster,可以被用來 production, staging, […]
從裸機到雲端:OpenStack 部屬工具 1
前面三周都在介紹雲端的概念以及 OpenStack 的架構,今天開始要實際進入 OpenStack 部屬相關的一些介紹。首先筆者會介紹一些 OpenStack 常見的部屬工具。 OpenStack 部屬工具 OpenStack 部屬工具有非常多種,每種適用的架構跟環境都不太一樣,在這兩篇文章筆者會帶過一些常見的 OpenStack 部屬工具,其中包含以下: DevStack MicroStack TripleO OpenStack Charms OpenStack-Ansible Kolla-Ansible OpenStack-Helm DevStack "DevStack" 顧名思義就是要拿來給 "Dev" 來用的,其主要目的是提供 OpenStack 開發者一個能夠快速測試其功能的環境。 DevStack 基本上就是一系列的 shell script,而預設會使用基於 git master 的最新版本快速部屬出一個完整的 OpenStack 環境。主要用途就是拿來當一個可互動的開發環境,以及上游 OpenStack 元件中 functional testing 的基礎。 MicroStack MicroStack 是甚麼? An OpenStack Environment in 2 commands MicroStack 是個讓你下兩個指令就能夠生成一個基本 OpenStack 環境的專案。能夠大大減輕 […]
從裸機到雲端:OpenStack Cinder 介紹
今天我們要來介紹最後一項 OpenStack 元件,Cinder。Cinder 也是常見 OpenStack 部屬會提供的服務,也是 OpenStack 核心專案之一,我們就來一起看看 Cinder 提供了什麼服務以及其架構長得怎麼樣。 Cinder 是什麼? 在官方文件中是這麼說的: Cinder 是 OpenStack Block Storage 服務,用於為 Nova 虛擬機、Ironic baremetal、container 等提供 volume。 你可以把 Cinder 想像成一個提供硬碟的服務,他提供了一個 API 讓你可以在 Instance 上掛載硬碟,以提供儲存空間。除了單純的提供區塊式儲存到硬碟外,Cinder 額外的也提供了 volume snapshots 跟備份的功能,同時也能利用 volume type 管理不同的後端或儲存空間。 Cinder 本身設計的目標是: 基於 microservice 的架構:讓開發者能夠快速添加新功能 高度可用:可擴展到非常高的工作負載 容錯:隔離的 process 避免連動式的故障 Recoverable:Admin 可以很容易的發現,調整,解決問題 開放標準:成為社區驅動的 API 的參考實作 Cinder 架構 Cinder […]
從裸機到雲端:OpenStack Glance 介紹
在經過了好幾篇的 Neutron 之後我們終於來到下一個 OpenStack 核心專案,這次要介紹的是大家常常忽略,但是卻又很重要的 Glance。 Glance 是什麼? 在官方文件的定義中是這麼說的: Image service (Glance) 提供讓使用者可以上傳和發現目的在於與其他服務一起使用的數據資產。目前提供的是映像檔 (Images) 和 metadata definitions。 簡單來說,Glance 就是一個讓你儲存和下載映像檔和 metadata definitions 的服務。 映像檔 Glance 映像服務包括搜尋、上傳和下載虛擬機 (VM) 映像檔。 Glance 有一個 RESTful API,提供使用者查詢 VM 映像檔 metadata 以及下載實際的映像檔資料。 而儲存映像檔的方式可以有非常多種,目前常見的為:local filesystem, Ceph, Swift 等等。 Metadata Definitions Glance 在儲存映像檔的同時也可以儲存一個 Metadata Definitions 目錄 (Catalog)。 這為 OpenStack 的其他服務提供了一種以 API call 確定可應用於 OpenStack […]
從裸機到雲端:OpenStack Neutron 介紹 — OVN vs OVS
上一篇講述了 OVN Plug-in 在 OpenStack 中的參考架構,本篇要來比較在 OpenStack Neutron 中使用 OVN 跟 OVS 的主要差異 架構面 這個從官方 FAQ 中翻譯的表格可以很清楚的看出 OVN 跟 OVS 的架構面差異 項目 ml2/ovs ml2/networking-ovn agent/server 之間的溝通 RabbitMQ message + RPC NorthBound 跟 SouthBound databases 之間的 ovsdb protocol l3HA API 在 deployment 的時候可以設定 router 中的 ha field 以便開啟或關閉 l3HA 在有多個 network node 時自動開啟 HA 功能 DVR […]
從裸機到雲端:OpenStack Neutron 介紹 — OVN 架構
上篇介紹了 OVN,本篇要來進入 OVN Plug-in 在 OpenStack 中的參考架構。 架構布局 參考架構中將 OVN 元件拆分成 4 個不同種類的節點各自負責不同任務 Controller Node Controller node 主要提供以下功能: 1 個 management interface 認證服務 (Keystone) 映像檔服務 (Glance) 透過 OVN ML2 mechanism driver 進行網路管理 (control plane) 運算資源管理 (Nova control plane) Database Node Database node 主要負責 OVN 相關 databse,包含以下元件: 1 個 management interface ovn-northd OVN northbound database OVN […]
從裸機到雲端:OVN 介紹
前幾篇筆者介紹了 OpenStack 在使用 Linux Bridge 和 Open vSwitch plug-in 下的相關架構,這篇我們要來介紹一個比較新,架構比較不一樣的 Neutron Plug-in,OVN。 Overview OVN 可以說是一個透過 OVS 建立虛擬網路的分散式 SDN controller。以下回一些 OVN 所能提供的功能 透過 L2 跟 L3 overlays 為 OVS 提供一個抽象層,同時可以管理與實體網路的連接 支援利用 OVS connection tracking 實現的靈活 ACL 支援透過 OVS flow 實現的分散式 L3 路由,同時支持 IPv4 和 IPv6 利用 OVS connection tracking 的 NAT 跟 Load balancing 分散式的 DHCP […]