Quantcast
Channel: 不自量力 の Weithenn
Viewing all 591 articles
Browse latest View live

GKE Backup and Restore | GSP1110

$
0
0


簡介

在本文實作練習中,將會透過 GKE Backup and Restore | Google Cloud Skills Boost主題,學習如何在 GKE 雲端容器運作環境中,透過 Google 雲瑞提供的備份和還原機制,協助企業和組織輕鬆在 GKE Cluster 環境中,針對營運服務的容器進行備份和還原等工作任務。
圖、GKE Cluster Architecture 示意圖

在 GKE Cluster 運作環境中,內建支援「Backup for GKE」服務,這項服務由兩個部份所組成,分別是 Google Cloud API 及 GKE Add-on (the Backup for GKE agent)。簡單來說,就是可以針對 GKE Cluster 中的工作負載進行「備份和還原」作業。

圖、Backup for GKE 元件運作示意圖





啟用 Cloud Shell (gcloud)

本次實作時間給予 1.5 小時應該非常充裕,順利啟動實作環境後,系統提供暫用的使用者帳號、密碼、Project ID…等資訊。


在 Cloud Console 畫面中,點選右上角圖示後,準備啟用 Cloud Shell (gcloud),稍後也會使用到。簡單來說,Cloud Shell 是個已經載入了開發工具的極小型 VM 虛擬主機,並且提供 5 GB 儲存空間,以便管理人員可以透過 Cloud Shell 對 Google Cloud 資源進行存取等管理動作。

順利啟用 Cloud Shell 之後,可以嘗試執行「gcloud auth list」、「gcloud config list project」指令,了解目前運作環境的相關系統資訊。詳細資訊請參考 gcloud CLI overview  |  Google Cloud CLI Documentation 官方文件。






GKE Backup and Restore - 系列文章

  • (本文) GKE Backup and Restore | GSP1110
  • GKE Backup and Restore - Task1 | GSP1110
  • GKE Backup and Restore - Task2 | GSP1110
  • GKE Backup and Restore - Task3 | GSP1110
  • GKE Backup and Restore - Task4 | GSP1110
  • GKE Backup and Restore - Task5 | GSP1110
  • GKE Backup and Restore - Task6 | GSP1110
  • GKE Backup and Restore - Task7 | GSP1110
  • GKE Backup and Restore - Task8 | GSP1110
  • GKE Backup and Restore - Task9 | GSP1110

Setting AHV, CVM, and Cluster DNS Server | Nutanix CE

$
0
0


簡介

預設情況下,當 Nutanix Cluster 運作後,DNS Server 名稱解析伺服器為「8.8.8.8 和 8.8.4.4」。有關建構 Nutanix Cluster 的內容,請參考下列二篇站內文章:

本文,將參考下列官網文章,說明如何組態設定 Cluster DNS Server 叢集組態:





allssh 和 hostssh

由於在 Nutanix Cluster 當中,可能會有許多台 AHV 和 CVM 主機,倘若需要逐一組態設定則非常麻煩。此時,就可以透過「allssh」一次組態設定所有 CVM 主機,或「hostssh」一次組態設定所有 AHV 主機,達到快速管理的目的。






組態設定 DNS Server

預設情況下, Nutanix Cluster 運作後,除了 Cluster 的 DNS Server 組態設定之外也會將「8.8.8.8 和 8.8.4.4」,寫入至 AHV 和 CVM 的「/etc/resolv.conf」DNS Server 組態設定檔內。


在本文實作環境中,採用的內部 DNS Server IP 位址為「10.10.75.10」。同樣的,在組態設定之前,先確認 CVM 是否能夠和內部 DNS Server 溝通,由於 DNS Server 溝通支援 TCP/UDP,所以確認指令「nc -vz 10.10.75.10 53」是採用 TCP 協定,而「nc -vz 10.10.75.10 -u 53」則是採用 UDP 協定,確認無誤後便可以進行後續的組態設定了。


依序執行下列指令,即可達到先確認 Cluster 的 DNS Server 組態內容,然後將「10.10.75.10」加入至 Cluster 的 DNS Server 清單中,接著刪除預設的「8.8.8.8 和 8.8.4.4」,查看組態設定是否同步至所有 CVM 主機中。
ncli cluster get-name-servers ncli cluster add-to-name-servers servers="10.10.75.10" ncli cluster remove-from-name-servers servers="8.8.8.8,8.8.4.4" ncli cluster get-name-servers allssh cat /etc/resolv.conf


接著,執行「hostssh cat /etc/resolv.conf」指令,查看組態設定是否同步至所有 AHV 主機中。


GKE Backup and Restore - Task1 | GSP1110

$
0
0


簡介

本文實作練習中,將在 GKE Cluster 運作環境中,採用內建支援的「Backup for GKE」服務,這項服務由兩個部份所組成,分別是 Google Cloud API 及 GKE Add-on (the Backup for GKE agent)。簡單來說,就是可以針對 GKE Cluster 中的工作負載進行「備份和還原」作業。

圖、Backup for GKE 元件運作示意圖





Task1 - Enable Backup for GKE

在開始本文實作之前,先將後續會使用到的相關組態設定值,例如,Zone, Region, Project_ID, Backup_Plan, External IP Address...等,寫入到 Bash Shell 的環境變數中以便後續使用:
echo "export ZONE=us-central1-a">> ~/.bashrc echo "export REGION=us-central1">> ~/.bashrc echo "export PROJECT_ID=`gcloud config get-value core/project`">> ~/.bashrc echo "export BACKUP_PLAN=my-backup-plan">> ~/.bashrc source ~/.bashrc echo "export EXTERNAL_ADDRESS=$(gcloud compute addresses describe app-address --format='value(address)' --region $REGION)">> ~/.bashrc source ~/.bashrc


執行「gcloud services enable gkebackup.googleapis.com」指令,啟用 Backup for GKE APIs 服務,這個動作要等蠻久的,本文實作環境等待約 20 分鐘後才順利啟用完畢。接著,執行下列指令在現有的 GKE 叢集中啟用Backup for GKE」備份服務。

gcloud beta container clusters update lab-cluster \ --project=$PROJECT_ID \ --update-addons=BackupRestore=ENABLED \ --zone=$ZONE


啟用 Backup for GKE 備份服務完成後,執行下列指令確認是否啟用成功。

gcloud beta container clusters describe lab-cluster \ --project=$PROJECT_ID \ --zone=$ZONE | grep -A 1 gkeBackupAgentConfig:


Change Cluster Timezone to Asia/Taipei | Nutanix CE

$
0
0


簡介

預設情況下,當 Nutanix Cluster 運作後,採用的系統時區都是標準的「UTC 世界協調時間」,在本文將系統時區改為「Asia/Taipei」,以便後續查找 Logs 日誌時能夠符合當地時間。有關建構 Nutanix Cluster 的內容,請參考下列二篇站內文章:

本文,將參考下列官網文章,說明如何組態設定 Cluster Timezone 叢集組態:





組態設定 Cluster 時區

首先,透過執行「ncli cluster info | grep Timezone」指令,可以看到 Nutanix Cluster 目前的時區組態設定值為「UTC」,執行「timedatectl list-timezones | grep Asia/Taipei」指令,確認系統時區中有「Asia/Taipei」台北時區,執行「ncli cluster set-timezone timezone="Asia/Taipei"」指令,變更 Nutanix Cluster 系統時區為 Asia/Taipei 台北時區。


執行「allssh date」指令,確認所有 CVM 的系統時區是否都跟著改變為 CST 台北時區。






重新啟動 Cluster 服務

事實上,剛才確認變更 Cluster 時區後,系統有一段文字「Please reboot the CVM or restart all services on the cluster so that logs are timestamped with the new Timezone」,提醒管理人員,一旦變更 Cluster 時區後,必須重新啟動 CVM 或重新啟動 Cluster 服務,那麼後續 Logs 日誌的時間才會套用生效為新的時區。

由於 Cluster 已經成形,所以一次只能重新啟動一台 CVM,然後重新同步後才能再重開另一台 CVM,這樣等待時間太久,所以本文選擇重新啟動 Cluster 服務。請執行「cluster stop」指令,然後鍵入「I agree」確認停止叢集服務。


可以看到系統逐步停止所有 Cluster 服務。


執行「cluster status | grep -v DOWN」指令,確認所有 CVM 的 Cluster 服務都停止,僅剩下必要的基本系統服務。


確認無誤後,執行「cluster start」指令啟動 Cluster 服務。


此時,就像建構 Cluster 一樣,有許多服務開始依序啟動中,最終所有 Cluster 服務啟動完成。



同樣的,執行「cluster status | grep -v UP」指令,確認 Cluster 服務是否都順利啟動。


不放心的話,可以執行「ncc health_checks system_checks cluster_services_down_check」指令,檢查是否有 Cluster 服務啟動不成功的情況。


SRE Conference 2024 | 站長開講

$
0
0


活動簡介

SRE CONFERENCE 2024是一場關於服務可靠性工程 (SRE, Site Reliability Engineering) 的技術交流盛會,邀請您一同探索 SRE 的新趨勢和實際應用,並與 SRE 領域的專家交流和學習。您將能夠瞭解 SRE 如何在 AI、雲端、DevOps 等方面發揮作用,並提供更可靠、更高效、更彈性的服務。

今年的 SRE CONFERENCE 將聚焦以下主題:
  • 新趨勢掌握: 我們邀請了來自各產業領域的 SRE 專家,分享他們對於未來服務可靠性工程的前瞻見解。從多種應用帶您深入了解最前沿的技術發展。
  • 實際應用案例:與會者將有機會聆聽並深入了解成功企業的 SRE 實際應用案例。這不僅是理論的探討,更是實戰經驗的分享,幫助您將學到的知識轉化為實際行動。
  • 實戰體驗工作坊:除了議程演講,大會還提供實作導向的技術工作坊,讓您親身體驗最新的工具和技術。這是一個與同業互動的寶貴機會,共同探討解決方案。
 





活動資訊

日期:   2024 年 4 月 26 日 (五)
時間:   09:00 - 17:00
報名:   報名購票
議程:   大會議程表
講者:   講者陣容
共筆:   SRE Conference 2024共筆





體驗工作坊

在本次大會體驗工作坊中,站長規劃一個 90 分鐘的「SRE Responsibilities - Self-Service and Automation」體驗工作坊,請參考下列詳細資訊。



GKE Backup and Restore - Task2 | GSP1110

$
0
0


簡介

本文實作練習中,將在 GKE Cluster 運作環境中,採用內建支援的「Backup for GKE」服務,這項服務由兩個部份所組成,分別是 Google Cloud API 及 GKE Add-on (the Backup for GKE agent)。簡單來說,就是可以針對 GKE Cluster 中的工作負載進行「備份和還原」作業。在 Task2工作任務中,將會建立「備份計劃」(Backup Plan)

圖、Backup for GKE 元件運作示意圖





Task2 - Create a backup plan

請執行下列指令以便為 GKE 叢集環境建立「備份計劃」(Backup Plan),順利執行後可以看到系統建立名稱為「my-backup-plan」的備份計劃。
gcloud beta container backup-restore backup-plans create $BACKUP_PLAN \ --project=$PROJECT_ID \ --location=$REGION \ --cluster=projects/${PROJECT_ID}/locations/${ZONE}/clusters/lab-cluster \ --all-namespaces \ --include-secrets \ --include-volume-data \ --cron-schedule="10 3 * * *" \ --backup-retain-days=30

管理人員可以在建立備份計劃之後,執行下列指令,驗證和確認備份計劃已建立成功。除了看到備份計劃名稱、資料中心、GKE 叢集資訊外,同時「ACTIVE」欄位顯示為「Y」,代表此備份計劃為啟用狀態。
gcloud beta container backup-restore backup-plans list \ --project=$PROJECT_ID \ --location=$REGION

最後,管理人員也可執行下列指令,查看已建立的備份計劃詳細資訊,例如,備份計劃的排程執行時間……等資訊。
gcloud beta container backup-restore backup-plans describe $BACKUP_PLAN \ --project=$PROJECT_ID \ --location=$REGION





GKE Backup and Restore - 系列文章

  • GKE Backup and Restore | GSP1110
  • GKE Backup and Restore - Task1 | GSP1110
  • (本文) GKE Backup and Restore - Task2 | GSP1110
  • GKE Backup and Restore - Task3 | GSP1110
  • GKE Backup and Restore - Task4 | GSP1110
  • GKE Backup and Restore - Task5 | GSP1110
  • GKE Backup and Restore - Task6 | GSP1110
  • GKE Backup and Restore - Task7 | GSP1110
  • GKE Backup and Restore - Task8 | GSP1110
  • GKE Backup and Restore - Task9 | GSP1110

GKE Backup and Restore - Task3 | GSP1110

$
0
0


簡介

本文實作練習中,將在 GKE Cluster 運作環境中,採用內建支援的「Backup for GKE」服務,這項服務由兩個部份所組成,分別是 Google Cloud API 及 GKE Add-on (the Backup for GKE agent)。簡單來說,就是可以針對 GKE Cluster 中的工作負載進行「備份和還原」作業。在 Task3 工作任務中,將會部署具備 MySQL 資料庫的 WordPress 至 GKE 叢集中,以便後續驗證 GKE 備份還原作業。

圖、Backup for GKE 元件運作示意圖





Task 3 - Deploy WordPress with MySQL to the cluster

首先,執行下列指令取得 GKE 叢集「lab-cluster」的 Credentials,順利取得 lab-cluster 叢集的 Credentials 之後,確認是否針對應用程式組態設定公用 IP 位址,以便後續能夠順利存取部署的 WordPress 應用程式。本文實作環境中,公用 IP 位址為「35.223.231.7」。
gcloud container clusters get-credentials lab-cluster --zone=$ZONE echo "EXTERNAL_ADDRESS=${EXTERNAL_ADDRESS}"





GKE Backup and Restore - 系列文章

GKE Backup and Restore - Task4 | GSP1110

$
0
0


簡介

本文實作練習中,將在 GKE Cluster 運作環境中,採用內建支援的「Backup for GKE」服務,這項服務由兩個部份所組成,分別是 Google Cloud API 及 GKE Add-on (the Backup for GKE agent)。簡單來說,就是可以針對 GKE Cluster 中的工作負載進行「備份和還原」作業。

圖、Backup for GKE 元件運作示意圖





Task 4 - Deploy the application

前置作業完成後,現在已經可以部署「有狀態應用程式」(Stateful Application)。 在本文實作環境中,將會部署具備 MySQL 資料庫的 WordPress應用程式。 請執行下列指令,為 WordPress 應用程式及 MySQL 資料庫建立 PV(Persistent Volumes)。 值得注意的是,在本文實作環境中,為了實作方便採用的 MySQL 管理密碼為「1234567890」,實務上請更換為強式密碼,以避免後續產生的資安風險。
YOUR_SECRET_PASSWORD=1234567890 kubectl create secret generic mysql-pass --from-literal=password=${YOUR_SECRET_PASSWORD?} kubectl apply -f https://k8s.io/examples/application/wordpress/mysql-deployment.yaml kubectl apply -f https://k8s.io/examples/application/wordpress/wordpress-deployment.yaml

執行下列指令,為部署的 WordPress 服務透過 Google Cloud 外部負載平衡器公開,然後用個簡單的 curl 迴圈,測試 WordPress 服務是否已經能夠被網際網路所存取。一旦 WordPress 服務能夠被存取,就會顯示公用 IP 位址並顯示為「is accessible」字串內容。
patch_file=/tmp/loadbalancer-patch.yaml cat <<EOF > ${patch_file} spec: loadBalancerIP: ${EXTERNAL_ADDRESS} EOF kubectl patch service/wordpress --patch "$(cat ${patch_file})" while ! curl --fail --max-time 5 --output /dev/null --show-error --silent http://${EXTERNAL_ADDRESS}; do sleep 5 done echo -e "\nhttp://${EXTERNAL_ADDRESS} is accessible\n"





GKE Backup and Restore - 系列文章


DevOpsDays Tokyo 2024 | 站長開講

$
0
0


活動簡介

DevOpsDays は世界中で開催されているカンファレンスです。ソフトウェア開発、ITインフラ運用、そしてその境界線上にあるトピックをカバーし、特に DevOps を実現するための自動化、テスト、セキュリティ、組織文化にフォーカスします。

IT 技術を駆使して変化に強いビジネスインフラを実現するスキルを身に着けるために、国内外の最先端の事例とプラクティスを結集します。海外から第一人者を直接招き、ここでしか手に入らない最新情報をリアルタイムで入手出来ます。 

最先端のテクノロジの活用法はもちろん、先進企業で必要とされてきた背景までも理解し、正しく組織内に展開するための洗練された知見を得られます。

このイベントが日本のみならず、世界の DevOps プラクティスを共有できる、意義のあるイベントになれるよう、願っております。
 




活動資訊

日期:   2024 年 4 月 16、17 日
時間:   09:30 - 18:00
報名:   報名購票
議程:   大會議程表
講者:   講者陣容










站長議程

很榮幸,今年能夠實體參加 DevOpsDays Tokyo 2024 大會,並且在會議中分享 GitOps 議題。下列為站長當天將分享的議題「GitOps - Add an automation engine to your IaC platform」和初版的簡報內容。




測試 Nutanix 社群版,實作超融合單節點叢集 | 網管人 218 期

$
0
0


網管人雜誌

本文刊載於 網管人雜誌第 218 期 - 2024 年 3 月 1 日出刊,NetAdmin 網管人雜誌為一本介紹 Trend Learning 趨勢觀念、Solution Learning 解決方案、Technology Learning 技術應用的雜誌,下列筆記為本站投稿網管人雜誌獲得刊登的文章,網管人雜誌於每月份 1 日出刊您可於各大書店中看到它,或透過城邦出版人讀者服務網進行訂閱。





本文目錄






前言

在 Gartner Report HCI 超融合魔力象限中,Nutanix 常年在 Leader 領導者象限中(如圖 1 所示),然而當企業和組織的管理人員,想要體驗 Nutanix 各項功能時,採用普通的 x86 硬體伺服器卻連安裝運作環境,都無法順利安裝成功。因此,在本文實戰演練小節中,將透過「巢狀式虛擬化」(Nested Virtualization)技術,讓 IT 預算不足的企業和組織,也能夠安裝部署和測試體驗 Nutanix 單節點叢集環境。

圖 1、2021 年發佈的 Gartner HCI 超融合報告





Nutanix CE 運作架構

HCI 超融合平台

在傳統三層式虛擬化架構中,雖然強大但是較為缺乏彈性。因此,在 Nutanix 運作架構中,便是直接針對更為彈性靈活的 HCI 超融合進行設計,值得管理人員注意的是,在每一台主機中都會有 AHV(Nutanix Acropolis Hypervisor)AOS(Nutanix Acropolis OS)CVM(Controller VM)等三個重要運作元件(如圖 2 所示)。

圖 2、傳統三層式架構轉換為 HCI 超融合架構示意圖

其中 AHV 是原生 Hypervisor 並專為 AOS 設計,除了擔任虛擬化基礎架構之外,也將實體伺服器的網路資源進行整合,而 AOS 則是運作在 CVM 主機之上的基礎作業系統,並將儲存 / 運算 / 網路等資源,整合至軟體定義基礎架構當中,其中 CVM 主機負責運作許多重要的叢集服務,例如,負責資料 I/O 的 Stargate、負責存取介面的 Zeus、分佈式 Matadata 儲存機制的 Cassandra、負責叢集組態設定管理的 Zookeeper……等(如圖 3 所示)。

圖 3、CVM 主機內運作許多重要的叢集服務示意圖



硬體需求

在 CPU 處理器運算資源方面,最少應配置 4 Cores 核心,其中有 2 Cores 核心將給予 CVM 主機使用,在記憶體資源的部份,建議至少 32GB 或更多,以便 AOS 的重複資料刪除或壓縮等儲存機制能順利運作。

在安裝硬碟方面,至少需要 1 顆 32GB 硬碟擔任 Hypervisor Boot Device,1 顆 200GB SSD 固態硬碟,擔任 Hot Tier 也就是屆時 CVM 主機安裝碟,另 1 顆 500GB 的 HDD 或 SSD 固態硬碟,擔任 Cold Tier 也就是屆時儲存資料的部份。



AHV 網路架構

在 AHV 網路架構的部份,可以看到運作 AOS 的 CVM 主機和 OVS(Open vSwitch),每台 AHV 都會運作一台 CVM,除了處理 I/O、UI、API 和升級等服務之外,並為其上運作的所有 VM 虛擬主機器提供所有 I/O 操作。

在 AHV 預設網路運作架構中,AHV 和 CVM 直接透過 Linux Bridge(virbr0/vnet1)網路介面互相溝通,AHV 預設採用 192.168.5.1 而 CVM 預設採用 192.168.5.2 位址,其中 CVM 則同時連接到 Linux Bridge virbr0 和 OVS br0,OVS 中的 br0 橋接器連接每台 VM 虛擬主機的 tap 網路介面,並透過 br0-up介面存取實體網卡和外部網路(如圖 4 所示)。






實戰演練 – Nutanix CE Single Node Cluster

建立巢狀式虛擬化環境

由於,本文實作環境,並非採用裸機方式直接安裝 Nutanix Hypervisor(如圖 5 所示),而是先在硬體主機中,透過傳遞硬體輔助虛擬化功能給予 VM 虛擬主機後,讓該台 VM 虛擬主機擔任 Guest Hypervisor,屆時再建立 Nested VM 虛擬主機,達成「巢狀式虛擬化」(Nested Virtualization)的測試環境。

圖 5、Hypervisor 運作示意圖

屆時 Nested VM 虛擬主機能否順利建立的關鍵,在於部署 Guest Hypervisor 虛擬主機時,硬體主機是否將硬體輔助虛擬化功能,傳遞給 Guest Hypervisor 虛擬主機。

在本次實作環境中,硬體主機的作業系統採用 Windows Server 2022,當然讀者也可以採用 Windows 10 或 Windows 11 進行實作,請在實作之前下載 Coreinfo 工具,並使用系統管理員權限開啟命令提示字元後,執行「Coreinfo64.exe -v」指令,即可看到硬體主機所支援的硬體輔助虛擬化功能,可以看到這台硬體主機支援 VMX 和 EPT 硬體輔助虛擬化功能(如圖 6 所示),並且目前沒有被任何 Hypervisor 佔用的情況,後續即可順利建立 Guest Hypervisor 虛擬主機。

圖 6、確認硬體主機是否支援 VMX 和 EPT 硬體輔助虛擬化功能



建立 Guest Hypervisor 虛擬主機

在硬體主機 Windows Server 2022 作業系統中,安裝 VMware Workstation Player 虛擬化軟體,在建立 Guest Hypervisor 虛擬主機的過程中,雖然簡單但是仍有些需要注意的部份,否則稍後安裝的 Nutanix CE 運作環境,將無法順利運作,或無法順利建立「單點主機叢集」(Single Node Cluster)。

或許,管理人員會有疑惑,為何不直接使用 Windows Server 2022,直接建構 Hyper-V 巢狀式虛擬化環境,來安裝和測試 Nutanix CE 環境? 主要原因,在於 Hyper-V 巢狀式虛擬化環境,安裝 Nutanix CE 的過程中,進行至 AHV Hypervisor 安裝作業時,將會因為網路卡驅動程式不支援的關係,導致安裝作業失敗。

開啟 VMware Workstation Player 虛擬化軟體後,點選 Create a New Virtual Machine 後,選擇載入 Nutanix CE ISO 映像檔,在選擇客體作業系統時,請選擇 Linux 選項中的「CentOS 7 64-bit」項目(如圖 7 所示),稍後安裝完成後,管理人員可以看到 Nutanix AHV 和 CVM,皆採用 CentOS 7.9 作業系統版本。

圖 7、選擇採用 CentOS 7 64-bit 作業系統版本

接著,組態設定 Guest Hypervisor 虛擬主機名稱和儲存路徑,在指派硬碟空間時,請將預設值 20GB 調整為 50GB 儲存空間,屆時此空間將會安裝 AHV Hypervisor 使用,最後按下 Finish 鈕建立 Guest Hypervisor 虛擬主機。

建立後,請點選 Edit virtual machine settings 鈕,在記憶體的部份由預設的 1GB,調整為 64GB 記憶體空間,在 CPU 處理器的部份,由預設的 1 Core 調整為 8 Cores,值得注意的是請記得勾選「Virtualize Intel VT-x/EPT or AMD-V/RVI」項目(如圖 8 所示),確保硬體主機的硬體輔助虛擬化功能,能夠傳遞給 Guest Hypervisor 虛擬主機,並額外新增 2 顆硬碟,1 顆為 200GB 屆時為安裝 CVM 也就是 Hot Tier 的部份,另 1 顆為 500GB 屆時為 Cold Tier。

圖 8、確保傳遞硬體輔助虛擬化功能給 Guest Hypervisor 虛擬主機

組態設定後,先別急著開機進入安裝程序,請使用系統管理員權限開啟 Notepad 筆記本,修改 Guest Hypervisor 虛擬主機的「.vmx」組態設定檔,加上「disk.EnableUUID = "TRUE"」參數值,確保指派給硬碟 Serial Number,否則稍後的安裝程序中,可以看到硬碟並沒有顯示 Serial Number(如圖 9 所示),這將會導致後續啟動叢集服務時,在啟動 Medusa 服務時將會卡住並產生錯誤,造成 Nutanix 叢集無法順利啟動。

圖 9、未指派硬碟 Serial Number 給 Guest Hypervisor 虛擬主機



安裝 Nutanix AHV 虛擬化平台

在安裝 Nutanix CE 擔任 Guest Hypervisor 虛擬主機之前,管理人員必須預先準備「2 個」IP 位址,稍後在安裝程序中將會進行指定,第 1 個 IP 位址為底層 AHV Hypervisor 使用,第 2 個 IP 位址則是 CVM 使用。值得注意的是,由於 Nutanix CE 預設會使用「192.168.5.0/24」網段,所以請避開使用這個網段。

開機並通過硬體檢測程序後,首先,請選擇 Hypervisor 採用預設的 AHV,或是採用 ESXi 虛擬化平台,在安裝硬碟的部份,可以看到系統預設已經自動選取 50GB 硬碟空間為 Hypervisor Boot 使用,至於 CVM 或 Data 的硬碟空間則可能發生選擇錯誤的情況,倘若系統自動選擇錯誤時,管理人員可以選擇至正確的硬碟空間按下 C 或 H 進行切換。同時,也可以看到 3 個安裝硬碟,皆有指派 Serial Number 更貼近模擬成實體主機的運作型態。

確認安裝硬碟的組態配置後,接著組態設定 AHV 和 CVM 的 IP 位址,以及網路遮罩和預設閘道。值得注意的是,是否勾選「Create single-node cluster」選項(如圖 10 所示),取決於管理人員的測試需求,舉例來說,倘若勾選此選項後,那麼系統建立叢集後將會鎖定,後續即便有其它 Nutanix Node 節點主機,也無法加入這個 Single-Node Cluster 內,此外勾選此選項後,系統將會自動建立 RF2 Storage 儲存空間,簡單來說,現有儲存空間將會降低一半。

圖 10、安裝 Nutanix CE Guest Hypervisor 並組態設定 AHV 和 CVM IP 位址

組態設定完畢後,選擇 Next Page 後,到 Nutanix CE EULA 使用者授權條款頁面,請使用上下箭頭或 Page Up/Page Down 鈕,閱讀完 EULA 使用者授權條款頁面內容,然後勾選「I accept the end user license agreement」項目後,選擇 Start 即可立即進行安裝。

值得注意的是,在 EULA 使用者授權條款頁面中,必須閱讀完所有的使用者授權條款內容,倘若未閱讀完內容,便按下 Start 立即進行安裝程序的話,那麼系統將會在安裝程序至一半時,出現錯誤並停止安裝,可以看到系統提示必須重新回到 EULA 使用者授權條款頁面,閱讀完所有的內容後才能繼續安裝程序(如圖 11 所示)。

圖 11、未閱讀完 EULA 使用者授權條款內容造成安裝程序中斷

順利安裝一段時間並完成安裝程序後,系統將會提示退出安裝映像檔,並鍵入 Y 重新啟動主機以便套用生效(如圖 12 所示)。


圖 12、安裝完畢並重新啟動主機



查詢 AHV 和 CVM 運作資訊

重新啟動後,管理人員可以從 Guest Hypervisor 虛擬主機的 Console 登入,或是透過 SSH Client 登入 AHV Hypervisor 系統。在登入系統之前,先了解相關管理者登入帳號和密碼,以便稍後登入進行管理作業:
  • AHV: SSH 登入、管理帳號 root、管理密碼 nutanix/4u 。
  • CVM: SSH 登入、管理帳號 nutanix、管理密碼 nutanix/4u 。
  • Prism Element: Web 登入、管理帳號 admin、管理密碼 nutanix/4u 。

無論透過 Console 或 SSH 登入 AHV Hypervisor 之後,管理人員可以透過「cat /etc/nutanix-release」和「cat /etc/centos-release」指令,分別查詢 Nutanix CE 版本,和採用 CentOS 7.9 作業系統版本。同時,執行「virsh list」指令,查詢運作於 AHV Hypervisor 之上的 CVM 運作狀態,一開始 CVM 運作狀態為「paused」,也就是 CVM 在啟動中並尚未開機完成,這時也無法 ping 到 CVM IP 位址,經過一段時間後 CVM 運作狀態會轉變為「running」,此時就可以 ping 到 CVM IP 位址(如圖 13 所示)。

圖 13、查詢 AHV 版本資訊和 CVM 啟動狀態

也可以在 AHV 執行「ip a」或是「ip -c -br a」指令,查看 AHV Hypervisor 使用的 IP 位址資訊,可以看到「br0」介面,使用剛才安裝程序中組態設定的「10.10.75.30」位址,而和 CVM 溝通的「virbr0」介面,則是使用系統預設的「192.168.5.1」位址(如圖 14 所示),這也是一開始提醒管理人員,請勿使用 192.168.5.0/24 系統預設網段的原因。

圖 14、查詢 AHV Hypervisor 網路組態資訊

確認 CVM 啟動成功後,管理人員同樣可以透過 SSH 登入 CVM 主機,執行「cat /etc/centos-release」指令,查詢到使用的 CentOS 7.9 作業系統版本,以及「ip -c -br a」指令查詢 CVM 網路組態,可以看到「eth0」介面,使用剛才安裝程序中組態設定的「10.10.75.31」位址,而「eth1」介面則使用系統預設的「192.168.5.2」和「192.168.5.254」位址(如圖 15 所示)。

圖 15、查詢 CVM 作業系統版本和網路組態資訊



部署並啟動 Single-Node Cluster

確認 AHV 和 CVM 網路組態設定無誤後,由於是部署單一節點的叢集,所以在「資料可用性」(Data Resiliency)的部份,只能搭配「--redundancy_factor=1」參數,等同於是沒有資料保護的情況,必須部署多節點的叢集才能提升參數值,增加資料可用性。

請切換到 CVM 主機,執行「cluster -s 10.10.75.31 --redundancy_factor=1 create」指令,部署和啟動叢集的動作,需要等待一段時間才能完成。同時,在過程中可以看到相關服務逐步啟動中,而整個叢集的指揮中心名稱為 ZeusLeader,一旦所有服務順利啟動後,系統將的出現「INFO MainThread cluster:3104 Success!」訊息,表示單一節點的 Nutanix 叢集已經部署和啟動完成(如圖 16 所示)。倘若,管理人員後續需要確認叢集狀態時,執行「cluster status」指令即可進行確認。

圖 16、部署和啟動單一節點 Nutanix 叢集



叢集基礎設定

雖然單點叢集已經部署和啟動完成,但預設情況下系統並未組態設定叢集名稱,執行「ncli cluster info」指令後,可以查詢單點叢集的相關資訊,可以看到在 Cluster Name 的欄位值為「Unnamed」,請執行「ncli cluster edit-params new-name=ntnx-cluster」指令,組態設定單點叢集的名稱為「ntnx-cluster」,執行「ncli cluster set-external-ip-address external-ip-address="10.10.75.35"」指令,組態設定單點叢集的 VIP(Virtual IP)位址(如圖 17 所示)。

圖 17、組態設定單點叢集的名稱 ntnx-cluster 和 VIP 位址

預設情況下,叢集採用的 DNS 名稱解析伺服器,為網際網路上的「8.8.8.8 和 8.8.4.4」。在本文實作環境中,內部使用的 DNS 名稱解析伺服器為「10.10.75.10」,在組態設定之前,請先執行「nc -zv 10.10.75.10 53」指令,確認 CVM 能夠和即將指定的 DNS 名稱解析伺服器進行溝通。

確認和 DNS 名稱解析伺服器溝通無誤後,執行「ncli cluster add-to-name-servers servers="10.10.75.10"」指令,組態設定叢集節點中 CVM 和 AHV 的 DNS 名稱解析伺服器。此時,可以發現預設的「8.8.8.8 和 8.8.4.4」DNS 名稱解析伺服器仍存在,請執行「ncli cluster remove-from-name-servers servers="8.8.8.8,8.8.4.4"」指令,移除預設的 DNS 名稱解析伺服器,最後執行「ncli cluster get-name-servers」指令,再次確認目前叢集的 DNS 名稱解析伺服器組態設定(如圖 18 所示)。

圖 18、組態設定叢集節點中 CVM 和 AHV 的 DNS 名稱解析伺服器

預設情況下,單點叢集的時區組態設定值為「UTC 格林威治標準時間」,執行「ncli cluster info | grep Timezone」指令,可以查詢目前單點叢集的時區組態設定,執行「timedatectl list-timezones | grep Asia/Taipei」指令,先確認系統是否支援「UTC+8」的「Asia/Taipei」台北時區。

確認系統支援台北時區後,執行「ncli cluster set-timezone timezone= "Asia/Taipei"」指令,組態設定單點叢集為台北時區後,系統會詢問是否要套用新的時區設定,請鍵入 y 確認進行變更,系統將會提示必須重新啟動 CVM,或是重新啟動叢集所有服務才能完全套用生效,請再次執行「ncli cluster info | grep Timezone」指令,先確認時區設定是否套用生效(如圖 19 所示)。詳細資訊請參考 Nutanix KB1050 知識庫文章

圖 19、組態設定單點叢集的時區組態設定為台北時區(UTC+8)

預設情況下,叢集採用的 NTP 時間校對伺服器,為網際網路上的「1.pool.ntp.org 和 0.pool.ntp.org」。在本文實作環境中,內部使用的 NTP 時間校對伺服器為「10.10.75.10」,在組態設定之前,請先執行「nc -zv 10.10.75.10 -u 123」指令,確認 CVM 能夠和即將指定的 NTP 時間校對伺服器進行溝通。值得注意的是,nc 指令預設情況下會採用 TCP 通訊協定,但 NTP 時間校對伺服器必須採用 UDP 通訊協定進行溝通,所以必須加上「-u」參數。

確認和 NTP 時間校對伺服器溝通無誤後,執行「ncli cluster add-to-ntp-servers servers="10.10.75.10"」指令,組態設定叢集節點中 CVM 和 AHV 的 NTP 時間校對伺服器。此時,可以發現預設的「1.pool.ntp.org 和 0.pool.ntp.org」NTP 時間校對伺服器仍存在,請執行「ncli cluster remove-from-ntp-servers servers="1.pool.ntp.org,0.pool.ntp.org"」指令,移除預設的 NTP 時間校對伺服器,倘若管理人員希望立即執行時間校對作業,請執行「/usr/sbin/ntpdate -t 10 -q 10.10.75.10」指令,立即找組態設定的 NTP 時間校對伺服器進行時間校對(如圖 20 所示)。詳細資訊請參考 Nutanix KB4519 知識庫文章

圖 20、組態設定單點叢集的 NTP 時間校對伺服器

預設情況下,CVM 的主機名稱由系統產生,命名規則為 NTNX-<block_serial>-<position-in-block>-CVM,舉例來說,本文實作環境主機名稱為 NTNX-bd3ffec5-A-CVM。值得注意的是,即便管理人員要變通 CVM 主機名稱,也必須遵照系統命名規則,開頭為「NTNX-」結尾為「-CVM」,管理人員可執行「sudo /usr/local/nutanix/cluster/bin/change_cvm_hostname NTNX-Node01-CVM」指令(如圖 21 所示),將 CVM 主機名稱改為「NTNX-Node01-CVM」,另一點值得注意的是變更 CVM 主機名稱後,系統會提醒必須重新啟動才能套用生效,按下 Y 鍵後便會重新啟動。詳細資訊請參考 Nutanix KB3517 知識庫文章

圖 21、執行指令變更 CVM 主機名稱



登入 Prism Element 管理介面

預設情況下,在單點叢集架構中,透過 CVM IP 位址即可連線 Prism Element 管理介面。當 CVM 主機重新啟動完成後,在登入 Prism Element 管理介面之前,請執行「netstat -tunpl | grep 9440」指令,確認 CVM 主機 Prism Element 管理介面(Port 9440)已經運作中。

開啟瀏覽器鍵入網址「https://ntnx-cluster.lab.weithenn.org:9440」,然而使用 Chrome 或 Edge 嘗試登入 Prism Element 管理介面時,卻顯示「NET::ERR_CERT_INVALID」的警告訊息,並且按下 Advanced 鈕,展開內容後也沒有略過的按鈕可以繼續(如圖 22 所示)。

圖 22、預設自簽憑證錯誤無法顯示 Prism Element 登入介面

此時,只要在錯誤網頁中空白處,直接鍵入「thisisunsafe」(舊稱為  badidea),即可順利載入這個不安全的網頁,並看到 Prism Element 登入畫面。預設登入管理帳號為 admin密碼 nutanix/4u,登入後系統會提示立即變更管理密碼,變更後會再度回到登入介面以新的管理密碼登入(如圖 23 所示)。

圖 23、使用新的管理密碼登入 Prism Element 管理介面

第一次登入 Prism Element 管理介面時,系統將會彈出 NEXT Credentials 視窗,原因在於採用 Nutanix CE 社群版本時,必須使用在 My Nutanix 中的帳號登入進行註冊作業(如圖 24 所示)。記得注意的是,在 My Nutanix 帳號中,必須針對 Community Edition 區塊,點選「Activate」鈕進行啟用後,才能順利執行註冊作業。倘若,確認無誤卻仍無法完成註冊作業的話,有可能單節點叢集所處網路環境,註冊作業的網路流量被防火牆所阻擋,請確保防火牆上允許單節點叢集中,流出的 TCP 通訊協定 Port 80 或 8443 放行通過。

圖 24、採用 Nutanix CE 社群版本時必須使用 My Nutanix 的帳號登入進行註冊作業

此時,系統首先檢查 My Nutanix 的帳號,其中 Community Edition 是否 Activate,接著啟動 Pulse 遙測服務,以便定期擷取 Nutanix 叢集診斷資訊並進行回傳作業,最後檢查 Acropolis 版本是否為最新版本,確認無誤後即可看到 Prism Element 儀表板管理介面(如圖 25 所示)。

圖 25、順利登入 Prism Element 儀表板管理介面





結語

透過本文的深入剖析和實戰演練後,相信管理人員即便在沒有專屬的 Nutanix 硬體伺服器的情況下,也可以透過巢狀式虛擬化技術,輕鬆建構出 Nutanix 單節點叢集的運作環境進行測試和研究,後續也將和讀者分享部署 Nutanix 多節點叢集。

實戰部署 vSAN Max 最佳化整體儲存資源表現 | 網管人 219 期

$
0
0


網管人雜誌

本文刊載於 網管人雜誌第 219 期 - 2024 年 4 月 1 日出刊,NetAdmin 網管人雜誌為一本介紹 Trend Learning 趨勢觀念、Solution Learning 解決方案、Technology Learning 技術應用的雜誌,下列筆記為本站投稿網管人雜誌獲得刊登的文章,網管人雜誌於每月份 1 日出刊您可於各大書店中看到它,或透過城邦出版人讀者服務網進行訂閱。

 



本文目錄






前言

最新的 vSAN 8 Update 2 版本,在 2023 年 VMware Explore 大會中,隨著 vSphere 8 Update 2 版本一起正式發佈。過去,vSAN 便是將「運算 / 儲存 / 網路」整合後的 HCI 超融合環境,現在最新的 vSAN 8 U2 版本中,最亮眼的新功能之一便是集中式儲存的 vSAN Max(如圖 1 所示)。

圖 1、最新 vSAN 8 U2 版本正式發佈集中式儲存 vSAN Max

值得企業和組織注意的是,根據 VMware 官方最佳建議作法,vSAN Max 單一叢集至少應部署「7 台」叢集節點主機,雖然最多支援至「32 台」,但最佳作法則是建議最多「24 台」即可,在延伸叢集的部份,則建議至少應部署「14 台」叢集節點主機。

雖然,vSAN Max 叢集規模,只要擁有 6 台節點主機便支援 FTT=2(RAID-6)儲存原則,然而只要節點主機發生故障,便會喪失相關資料物件的可用性。反觀由 7 台節點主機組成的 vSAN Max 叢集規模,除了支援 FTT=2(RAID-6)儲存原則之外,當叢集節點主機發生故障時,也能夠確保資料物件的高可用性,這也是 VMware 最佳建議作法中,至少應部署 7 台節點主機組成 vSAN Max 叢集的主要原因。

當然,隨著 vSAN Max 叢集不斷擴充叢集節點主機時,除了整體可用資源線性增加之外,面對叢集節點主機發生故障時,受影響的資源也將逐漸降低,舉例來說,7 台節點主機組成的 vSAN Max 叢集,面對災難事件時將會影響 14.3% 的儲存資源(效能 / 空間),而 24 台節點主機組成的 vSAN Max 叢集,面對災難事件時則降低至僅影響 4.2% 的儲存資源(如圖 2 所示)。

圖 2、vSAN Max 叢集規模面對災難事件時影響程度示意圖





vSAN 8 U2 亮眼特色功能

vSAN Max vs vSAN HCI Mesh

在過去的 vSAN 版本中,VMware 已經提出 vSAN HCI Mesh 機制,讓傳統 vSphere 叢集或 vSAN 超融合叢集,能夠透過 vSAN HCI Mesh 機制,使用遠端的 vSAN Datastore 儲存資源。然而,在最新的 vSAN 8 U2 版本中,推出 vSAN Max 的 Storage-Only 集中式儲存機制,這兩者之間有何不同呢?

首先,可以看到在「傳統 HCI」(Traditional HCI)運作架構中,集合運算及儲存資源在 vSAN 超融合叢集中,所有的叢集節點主機,這種運作架構稱為「聚合資源」(Aggregates Resources),這種運作架構相對簡單,能夠充分滿足小型企業和組織的需求。然而,對於中大型企業和組織時,就顯得彈性較為不足,舉例來說,可能運算資源已經用盡,但是儲存資源仍然充足,反之亦然。

在過去,中大型企業和組織,會部署多組 vSAN 超融合叢集並整合 HCI Mesh 機制,也就是圖中的「跨叢集容量共享」(Cross-Cluster Capacity Sharing)架構,讓不同的 vSAN 超融合叢集之間,倘若某個 vSAN 超融合叢集發生儲存資源不足的情況時,其它 vSAN 超融合叢集便能提供或使用資源,雖然達到共享 vSAN Datastore 儲存資源的目的,但這樣的運作架構屬於分散式,而非集中式共用儲存資源方案(如圖 3 所示)。此外,別忘了 HCI Mesh 還有最多「5 個」遠端 vSAN Datastore 儲存資源共享的限制,難以滿足中大型企業和組織不斷變化和擴增的專案需求。

圖 3、傳統 vSAN 超融合架構及新式 vSAN Max 集中式共用儲存架構

因此,最新推出的 vSAN Max 便是集中式共用儲存資源機制,輕鬆為一個或多個 vSphere 叢集提供儲存資源,讓運算資源和儲存資源之間能夠各司其職,形成「非聚合儲存」(Disaggregated Storage)運作架構,並使用 vCenter Server 管理平台統一進行管理作業(如圖 4 所示)。

圖 4、vSAN Max 集中式共用儲存運作架構示意圖



匹敵高階儲存設備的 vSAN Max

首先,在 vSAN Max 儲存架構中,必須採用最新推出且高效能的 vSAN ESA 超融合儲存架構,而非傳統的 vSAN OSA 超融合儲存架構,確保屆時建構的 vSAN Max 能夠發揮最大儲存資源。在整個 vSAN Max 叢集架構中,根據 VMware 最佳建議作法中,部署 24 台叢集節點主機時,即可提供高達 8.6PB 的儲存空間,並提供高達 340 萬的 IOPS 儲存效能。

此外,vSAN Max 也支援原有超融合叢集進階功能,例如,延伸叢集(Stretched Cluster)、容錯網域(Fault Domains)、檔案服務(File Services)……等,重點是這些功能,都可以在管理人員熟悉的 vCenter Server 管理介面中完成(如圖 5 所示)。

圖 5、vSAN Max 儲存運作架構示意圖



vSAN ESA 儲存效能最佳化

vSAN ESA 儲存架構,在前一版 vSAN 8 U1 中推出,由於採用全 NVMe 高效能儲存裝置,讓 vSAN ESA 能夠提供非常高效能的儲存資源。在最新 vSAN 8 U2 版本中,針對 vSAN ESA 儲存架構進行二項改進,最佳化 vSAN ESA 整體儲存效能。

首先,最佳化在 vSAN 8 U1 版本中,vSAN ESA 的「日誌結構檔案系統」(Log-Structured Filesystem,LFS),包括新的「適應性寫入路徑」(Adaptive Write Path),確認傳入資料 I/O 的特徵,並根據情況使用兩個資料路徑之一寫入資料,也就是自動調校資料 I/O 的選擇路徑。一般情況下,預設寫入路徑會處理小型資料 I/O,而大型資料 I/O 的寫入路徑,則用於處理較大的 I/O 或大量未完成的 I/O,以便因應各種工作負載條件下提供高效能。

因此,在最新 vSAN 8 U2 版本中,透過記憶體處理資料的方式來改善 LFS 處理效率,對於每個「物件」(Object)來說,調整後的 LSF 使用 In-memory I/O Bank 記憶體動態分配機制,能夠更高效率的寫入資料和中繼資料,並且容納更多資料傳入 I/O,而非為每個物件分配固定數量的 I/O Bank,所以 LFS 能夠順利清除未使用的 I/O Bank(如圖 6 所示)。簡單來說,最佳化適應性寫入路徑機制後,在 vSAN ESA 儲存架構中使用 RAID-6 的儲存效能,能夠和 vSAN OSA 儲存架構中 RAID-1 的儲存效能相同。

圖 6、新式 vSAN LFS 和適應性寫入路徑最佳化運作架構示意圖

改善後的 vSAN LFS 檔案系統,以及處理資料 I/O 的適應性寫入路徑最佳化,對於集中式儲存架構的 vSAN Max 也有所助益。同時,建構於 vSAN ESA 基礎之上的 vSAN Max,由於能夠專注在處理儲存資源,而不像單純 vSAN ESA 超融合叢集,除了處理儲存資源之外,還必須處理運算資源等工作負載,所以對於處理大量未完成的資料 I/O 或大型資料 I/O 的效率,能夠比單純 vSAN ESA 超融合叢集有更佳的儲存效能(如圖 7 所示)。

圖 7、針對非聚合儲存的 vSAN ESA 適應性寫入路徑最佳化運作示意圖



支援垂直和水平擴充架構的 vSAN Max

傳統三層式虛擬化運作架構中,處理儲存資源的硬體儲存陣列設備,內含處理器、記憶體、容錯的儲存控制器……等,並且透過背板連接眾多儲存裝置,以及透過擴充機箱的方式來擴充儲存空間,並將這些儲存空間整合後,呈現給上層的 vSphere 工作負載提供儲存 I/O 資源。

然而,這種採用垂直模組化擴充機制的缺點,在於僅能擴充儲存硬體設備的可用儲存空間,但是所有來至上層 vSphere 傳遞的儲存 I/O 工作負載,仍然是由本來的容錯儲存控制器處理,並且硬體儲存設備的儲存控制器,在處理資料 I/O 的機制通常是「先到先服務」(First com first serve)的方式。

因此,當上層 vSphere 叢集工作負載不斷擴增的同時,隨著儲存控制器的快取空間用盡,造成硬體儲存設備的儲存控制器無法負荷,並且所有工作負載共享儲存控制器的緩衝空間,屆時除了發生嚴重的儲存 I/O 資源爭用之外,一旦儲存控制器發生問題時,更會發生雞蛋放在同一個籃子的災難事件(如圖 8 所示)。

圖 8、傳統三層式運作架構的缺點示意圖

反觀 vSAN Max 運作架構,原生設計於 vSAN 超融合叢集,同時支援「垂直擴充」(Scale-Up)「水平擴充」(Scale-Out)運作架構,舉例來說,在 vSAN Max 叢集中,共有 6 台叢集節點主機,每台節點主機配置共 300TB 儲存容量,共有 56 個運算核心及 100Gb 傳輸網路,所以建構後的 vSAN Max 叢集,將會整合為 1.8PB 儲存資源空間,和 336 個運算核心及 600Gb 傳輸網路,一旦需求增加新增叢集節點主機至 vSAN Max 叢集時,每新增一台節點主機,便會增加 300TB 儲存容量 / 56 個運算核心 / 100Gb 頻寬,所以 vSAN Max 叢集資源可以隨著增加叢集節點主機,線性提升整體的運算 / 儲存 / 網路等資源(如圖 9 所示)。

圖 9、vSAN Max 水平擴充運作架構示意圖

同時,這種水平擴充架構的另一個優勢,在於當 vSAN Max 叢集中節點主機發生故障時,並不像傳統三層式架構會導致大災難,舉例來說,在 12 台節點主機所組成的 vSAN Max 叢集中,倘若其中一台節點主機發生故障時,對於 vSAN Max 叢集來說僅損失 1/12 的資源,上層的 vSphere 資料 I/O 需求,將會繼續平均分散在其它存活 11 台節點主機上繼續運作。

此外,vSAN Max 叢集也支援垂直擴充機制,一旦管理人員經過評估後,發現無須新增節點主機進行水平擴充,而是為每台現有的叢集節點主機擴充儲存裝置,即可擴充 vSAN Max 叢集整體儲存空間,達到垂直擴充機制(如圖 10 所示)。

圖 10、支援垂直擴充機制的 vSAN Max 叢集架構示意圖



支援容錯網域的 vSAN Max

對於小型企業和組織來說,即便部署 vSAN Max 環境,通常因為營運規模的關係,通常叢集節點主機數量並不會超過一個機櫃,然而對於中大型企業和組織來說,部署的叢集節點主機數量,經常會跨越不同的機櫃,此時便需要啟用「容錯網域」(Fault Domains)功能,才能兼顧效能的同時又具備資料高可用性(如圖 11 所示)。

圖 11、vSAN Max 支援容錯網域確保資料高可用性示意圖

舉例來說,在單一的 vSAN 叢集中,共有 24 台叢集節點主機並分佈在 6 座機櫃中,在啟用容錯網域功能後,以 vSAN 儲存原則 FTT=1(RAID-1)為例,資料物件和見證都會寫入不同的機櫃和節點主機中,其中資料物件寫入機櫃 2 和機櫃 4,見證則是寫入機櫃 3 當中(如圖 12 所示)。

圖 12、vSAN 叢集啟用容錯網域資料物件和見證寫入示意圖

當機櫃 2 內存放資料物件的叢集節點主機發生故障後,系統會在機櫃 2 內其它存活的叢集節點主機,將遺失的資料物件進行重建,倘若整個機櫃 2 發生災難後,系統便會在其它存活的機櫃中,將遺失的資料物件進行重建(如圖 13 所示)。

圖 13、vSAN 叢集啟用容錯網域後因應災難事件示意圖

倘若,叢集節點主機數量不多,但是又想具備類似容錯網域的功能時,有沒有更簡單的作法 ?舉例來說,vSAN Max 叢集中共有 7 台叢集節點主機,分別放置在不同的機櫃當中,一旦實體伺服器這樣擺放之後,無須啟用容錯網域功能,也等同於具備機櫃感知的能力,值得注意的是,每座機櫃只能放一台叢集節點主機(如圖 14 所示)。

圖 14、透過實體擺放叢集節點主機在不同機櫃,達到類似容錯網域的功能

值得注意的是,小型 vSAN 叢集並擺放於同一機櫃中也並非全無好處,舉例來說,叢集節點主機都處於同一機櫃時,vSAN 儲存流量都保持在 ToR/Leaf 網路交換器即可,反觀中大型跨機櫃的 vSAN 叢集環境,由於跨越機櫃的關係,整體的 vSAN 儲存流量,必須至上層 Spine 網路交換器進行交換才行(如圖 15 所示)。

圖 15、不同規模 vSAN 叢集的網路拓樸對於儲存流量的影響





實戰演練 – 部署 vSAN Max 儲存叢集

在本文實作環境中,將會組態設定已經部署 6 台節點主機的 vSAN ESA 叢集,搖身一變為集中式儲存的 vSAN Max 叢集,至於為何部署 6 台節點主機的原因在於,這樣的節點主機數量才足以支援,並且建立 RAID-6(Erasure Coding)儲存原則,以便屆時能夠與 OSA 超融合叢集的 RAID-1 儲存原則,進行儲存效能 I/O 的互相比較。
有關 vSAN ESA 超融合叢集的部署操作詳細資訊,請參考本刊 <第 208 期 - vSAN 8 新儲存架構開工,實戰 ESA 超融合叢集>專欄內容。



啟用 vSAN Max 集中式儲存服務

在 vCenter Server 管理介面中,請依序點選「vSAN ESA Cluster > Configure > vSAN > Services」,在 vSAN Services 頁面中,可以看到有三個服務選項,分別是 vSAN HCI、vSAN Compute Cluster、vSAN Max,請點選 vSAN Max 選項(如圖 16 所示),並採用預設值 Single site vSAN cluster 後,點選下方 Configure 鈕繼續。

圖 16、準備啟用 vSAN ESA 叢集中的 vSAN Max 服務

在彈出的 Configure vSAN 互動視窗中,系統會自動檢查選擇的 vSAN 叢集,是否為已經啟用並運作中的 vSAN ESA 叢集,否則將無法繼續執行啟用 vSAN Max 服務的動作,在 2 Services 頁面中,管理人員可以依據需求,選擇是否啟用加密選項 Data-At-Rest 或 Data-In-Transit(如圖 17 所示),以及 vSAN ESA 叢集預設便啟用的 Auto-Policy management 功能,確認無誤後按下 Next 鈕繼續。

圖 17、在稍後啟用的 vSAN Max 服務中是否啟用資料加密機制

在 3 Claim disks 頁面中,可以看到本文實作環境中,vSAN ESA 叢集共 6 台節點主機,每一台節點主機配置 4 個 NVMe SSD 儲存裝置,所以整個 vSAN ESA 叢集共有 24 個 NVMe SSD 儲存裝置,並且預設情況下宣告所有 NVMe SSD 儲存裝置,成為屆時 vSAN Max 的儲存資源池(如圖 18 所示)。

圖 18、宣告所有 NVMe SSD 儲存裝置成為 vSAN Max 儲存資源池

在 4 Create fault domains 頁面中,由於 vSAN Max 也支援建立容錯網域機制,所以管理人員可依據需求,按下 ADD 建立容錯網域,或採用預設值不建立容錯網域按下 Next 鈕繼續。最後,在 5 Review 頁面中,再次確認組態設定值無誤後,按下 Finish 鈕後,系統便立即為 vSAN ESA 叢集啟用 vSAN Max 服務。



使用 vSAN Max 儲存資源

順利啟用 vSAN Max 集中式儲存機制後,便可以組態設定 vSphere 運算叢集,使用 vSAN Max 儲存資源。事實上,組態設定方式和過去 vSAN HCI Mesh 機制相同,主要差異在於,過去 vSAN HCI Mesh 機制,無論是 Client Cluster 或 Server Cluster 最多僅支援「5 個」vSAN Datastore 儲存資源。
有關 vSAN HCI Mesh 運作機制的詳細資訊,請參考本刊 < 第 190 期 - 實戰部署 HCI Mesh 架構,最大化 vSAN 資源使用 >專欄內容。

請點選本文實作環境中,負載運作 VM 虛擬主機等工作負載的 Compute 運算叢集,依序點選「Compute Cluster > Configure > vSAN > Services」,在 vSAN Services 頁面中,請點選「vSAN Compute Cluster」選項(如圖 19 所示),以及預設的 Configure cluster without vSAN datastore 選項後,按下 Configure 鈕繼續組態設定作業。

圖 19、組態設定 Compute 運算叢集使用 vSAN Max 儲存資源

在彈出的 Configure vSAN Compute Cluster 視窗中,系統提醒將組態設定為 vSAN 運算叢集角色,稍後掛載使用的 vSAN 儲存資源將為遠端叢集,避免管理人員誤認儲存資源為本地端儲存資源,確認無誤後按下 Apply 鈕以便套用生效。

回到 vCenter Server 管理介面中,可以看到 Compute 運算叢集中,vSAN 組態設定區塊中多了 Remote Datastores 項目,點選後按下 Mount Remote Datastore,在彈出的 Select datastore 視窗中,可以看到剛才啟用的 vSAN Max 儲存資源,點選後按下 Next 鈕。值得注意的是,倘若在 Select datastore 視窗中,無法看到剛才啟用的 vSAN Max 儲存資源時,表示 Compute 運算叢集的 VMkernel Port,無法和 vSAN Max 儲存叢集進行通訊所導致的結果。

在 Check compatibility 頁面中,系統將會針對剛才選擇的遠端 vSAN Max 儲存資源,進行多個項目的相容性檢查(如圖 20 所示),例如,遠端 vSAN Max 儲存資源是否為支援格式的版本、Compute 運算叢集和 vSAN Max 儲存資源之間,網路延遲時間是否低於 5ms…… 等,確保能夠順利掛載和使用選擇的遠端 vSAN Max 儲存資源。

圖 20、系統執行掛載遠端 vSAN Max 儲存叢集的相容性檢查作業



部署 VM 虛擬主機並使用 vSAN Max 儲存資源

現在,Compute 運算叢集,無論是部署新的 VM 虛擬主機,或先前部署並運作中的 VM 虛擬主機,只要執行 Storage vMotion 儲存資源遷移任務,在遷移 VM 虛擬主機的儲存資源時,都能選擇已經掛載完成的遠端 vSAN Max 儲存資源,並且套用具備彈性和高可用性的 vSAN 儲存原則。

舉例來說,管理人員在 Compute 運算叢集中,於新增 VM 虛擬主機的流程中,在 4 Select storage 步驟中,當選擇的儲存資源為掛載的 vSAN Max 儲存資源時,便能同時選擇套用至 VM 虛擬主機的 vSAN 儲存原則,以本文實作環境為例,便可以套用 RAID6 的儲存原則至新增的 VM 虛擬主機中(如圖 21 所示)。

圖 21、Compute 運算叢集新增 VM 虛擬主機並使用 vSAN Max 儲存資源

當 Compute 運算叢集部署完成 VM 虛擬主機後,管理人員可以點選 vSAN-ESA 叢集,可以看到啟用 vSAN Max 服務的 vSAN-ESA 叢集,已經內建儀表板功能並有四大區塊顯示相關資訊,分別是 vSAN Health、vSAN Performance、vSAN Client Clusters、vSAN Capacity,在 vSAN Health 區塊中,除了顯示 vSAN Max 健康情況之外,屆時若有效能上的問題時,還能點選 Troubleshoot 進行故障排除,或是點選 View Trend Details 時查看健康情況趨勢圖(如圖 22 所示)。

圖 22、透過 vSAN Max 內建儀表板功能了解整體健康情況

在 vSAN Performance 區塊中則顯示儲存 I/O 效能表示數據,在 vSAN Client Clusters 區塊中,則顯示目前有哪些 vSphere 運算叢集,或其它 vSAN 超融合叢集,掛載 vSAN Max 儲存資源,在 vSAN Capacity 區塊中,則顯示 vSAN Max 整體儲存空間的使用資訊。





結語

透過本文的深入剖析和實作演練後,相信管理人員除了理解最新 vSAN 8 U2 版本中,有哪些亮眼特色功能之外,透過實戰小節在 vSAN ESA 叢集中,啟用和部署 vSAN Max 集中式儲存機制,讓企業和組織的管理人員能夠立即上手,方便在內部資料中心內進行測試和研究 vSAN Max 新功能。

GKE Backup and Restore - Task5 | GSP1110

$
0
0


簡介

本文實作練習中,將在 GKE Cluster 運作環境中,採用內建支援的「Backup for GKE」服務,這項服務由兩個部份所組成,分別是 Google Cloud API 及 GKE Add-on (the Backup for GKE agent)。簡單來說,就是可以針對 GKE Cluster 中的工作負載進行「備份和還原」作業。

圖、Backup for GKE 元件運作示意圖





Task 5 - Verify the deployed workload

請切換到 Cloud Console 頁面中,依序點選「Kubernetes Engine > Workloads > Overview」項目。此時,應該可以看到 WordPress 應用程式和 WordPress-myaql 資料庫。


開啟瀏覽器後,在網址列將剛才取得的 IP 位址,本文實作環境為「35.223.231.7」貼上後,應該可以看到 WorPress 初始化安裝畫面,選擇採用的語系後,按下 Continue 鈕繼續。


在 Welcome 頁面中,鍵入 WordPress 的站台標題 (Site Title) 後,填入管理帳號、密碼、Email 等資訊,確認無誤後按下 Install WordPress 鈕進行安裝作業。


當頁面顯示「WordPress has been installed」訊息,表示 WordPress 應用程式初始化完畢後,請嘗試登入建立一些文章並在文章中加上評論,待後續執行備份還原作業後,可以驗證 WordPress 應用程式產生的資料備份成功。






GKE Backup and Restore - 系列文章

Change AHV and CVM Hostname | Nutanix CE

$
0
0


簡介

預設情況下,系統自動命名 AHV 主機名稱的格式為「NTNX-<block_serial>-<position-in-block>」,而 CVM 主機名稱則是建構於 AHV 主機名稱之上,會在 AHV 主機名稱結尾加上「-CVM」,以本文實作環境來講,第一台 AHV 主機名稱為「NTNX-da1axxxx-A」,而CVM主機名稱為「NTNX-da1axxxx-A-CVM」。

在本文中,將參考下列官網文章,說明及實作變更 AHV 和 CVM 主機名稱:



變更 AHV 主機名稱

在變更 AHV 主機名稱的部份,請在 CVM 主機上,執行「change_ahv_hostname --host_ip="10.10.75.21" --host_name="NTNX-Node01-AHV"」指令,即可指定將本文實作環境中,第一台 AHV 主機名稱變更為「NTNX-Node01-AHV」,管理人員即可依據同樣的方式,變更叢集中其它台 AHV 主機名稱,變更完成後可以執行「hostssh "hostname"」指令,查看所有 AHV 主機名稱是否套用生效,或在 PE 管理介面中點選「Hardware」項目,即可看到叢集中所有 AHV 主機名稱。




變更 CVM 主機名稱

至於變更 CVM 主機名稱的部份,必須遵照系統命名規則,開頭為「NTNX-」結尾為「-CVM」,請執行「sudo /usr/local/nutanix/cluster/bin/change_cvm_hostname NTNX-Node01-CVM」指令,系統會提醒必須重新啟動才能套用生效,按下 Y 鍵後便會重新啟動,重新啟動後可發現 CVM 主機名稱順利變更為「NTNX-Node01-CVM」。

然而,管理人員將會發現,雖然 SSH 登入後 CVM 主機名稱已經變更,但是在 AHV 虛擬化平台中,使用指令「virsh list」指令查看 CVM 主機資訊時,或是在 PE 管理介面中,看到的 CVM 主機名稱仍然是未變更前的舊名稱?


此時,只要登入別台 CVM 主機,執行「change_cvm_display_name --cvm_ip="10.10.75.31" --cvm_name="NTNX-Node01-CVM"」指令,系統詢問必須重新啟動 CVM 主機才能套用生效,請按下 Y 鍵即可,當 CVM 主機重新啟動完成後,管理人員即可發現,在 AHV 虛擬化平台中查看 CVM 主機資訊時,或是在 PE 管理介面中看到的 CVM 主機名稱,便會是變更後的主機名稱。


GKE Backup and Restore - Task6 | GSP1110

$
0
0


簡介

本文實作練習中,將在 GKE Cluster 運作環境中,採用內建支援的「Backup for GKE」服務,這項服務由兩個部份所組成,分別是 Google Cloud API 及 GKE Add-on (the Backup for GKE agent)。簡單來說,就是可以針對 GKE Cluster 中的工作負載進行「備份和還原」作業。

圖、Backup for GKE 元件運作示意圖





Task 6 - Create a backup

在前一個工作任務中,我們已經準備好 WordPress 應用程式和資料庫,也完成初始化安裝作業,並且登入產生一些文章和評論後。現在,請切換到 Cloud Shell 視窗中,執行下列指令建立 GKE Backup Plan:
gcloud beta container backup-restore backups create my-backup1 \ --project=$PROJECT_ID \ --location=$REGION \ --backup-plan=$BACKUP_PLAN \ --wait-for-completion

此時,可以看到系統預設會建立名稱為「my-backup1」的備份計畫,一旦備份計畫執行完畢後,便會出現「Backup state: SUCCEEDED」訊息。


後續想要查看 GKE 備份計畫摘要內容時,只要在 Cloud Shell 視窗中,執行下列指令即可:
gcloud beta container backup-restore backups list \ --project=$PROJECT_ID \ --location=$REGION \ --backup-plan=$BACKUP_PLAN


倘若想要查看 GKE 備份計畫詳細內容時,只要在 Cloud Shell 視窗中,執行下列指令即可:
gcloud beta container backup-restore backups describe my-backup1 \ --project=$PROJECT_ID \ --location=$REGION \ --backup-plan=$BACKUP_PLAN






GKE Backup and Restore - 系列文章

建多節點 AKS EE 容器叢集,隨需輕鬆擴增工作節點 | 網管人 220 期

$
0
0


網管人雜誌

本文刊載於 網管人雜誌第 220 期 - 2024 年 5 月 1 日出刊,NetAdmin 網管人雜誌為一本介紹 Trend Learning 趨勢觀念、Solution Learning 解決方案、Technology Learning 技術應用的雜誌,下列筆記為本站投稿網管人雜誌獲得刊登的文章,網管人雜誌於每月份 1 日出刊您可於各大書店中看到它,或透過城邦出版人讀者服務網進行訂閱。





本文目錄






前言

在先前的專欄內容中,已經說明及實際部署「單一節點」AKS EE 容器叢集。在本文中,將更進一步說明「多台節點」AKS EE 容器叢集的運作架構,並且進行實戰演練的部份,幫助企業和組織內的 IT 管理人員,輕鬆建構出可「橫向擴充」(Scale-Out)的多台節點 AKS EE 容器叢集運作架構(如圖 1 所示)。

圖 1、AKS EE 容器叢集運作架構支援二種不同的部署選項

值得注意的是,單一節點和多台節點 AKS EE 容器叢集,這兩者之間最大不同在於網路環境的部份。舉例來說,在單一節點 AKS EE 容器叢集中,系統將自動建立 Hyper-V Internal 類型 vSwitch 虛擬交換器,並且自動組態設定使用「192.168.0.0/24」的網路環境,並且管理人員無法變更這項預設的網路環境組態。

在多台節點 AKE SS 容器叢集,或稱「可調整叢集」(Scalable Cluster),由於多台節點主機之間必須能夠跨節點通訊,所以改為採用 Hyper-V External 類型 vSwitch 虛擬交換器,達到跨越多台節點主機順利通訊的工作任務(如圖 2 所示)。

圖 2、多台節點 AKS EE 容器叢集網路運作架構示意圖





實戰演練 – 部署多台節點 AKS EE 容器叢集

部署支援巢狀式技術的 VM 虛擬主機

原則上,只要採用支援的硬體主機和作業系統版本,便能部署 AKS EE 多節點容器叢集,然而對於中小型企業和組織來說,管理人員可能沒有多餘且符合軟硬體需求的主機。此時,便可以在內部資料中心內,部署支援巢狀式 VM 虛擬主機環境,或是透過 Azure 公有雲環境,部署支援巢狀式虛擬化環境的 VM 虛擬主機。

值得注意的是,無論是採用內部資料中心或 Azure 公有雲環境,採用支援巢狀式虛擬化環境的 VM 虛擬主機,所建構及部署的 AKS EE 容器叢集,都僅適用於研究和測試用途,不適用於真實營運環境。

在本文實作環境中,將會在一台支援巢狀式虛擬化的 Azure VM 虛擬主機中,建立多台 VM 虛擬主機,達成部署 AKS EE 多節點容器叢集的目的。值得注意的是,Azure VM Gen2 世代虛擬主機,預設在安全性類別採用「Trusted launch virtual machines」選項,以便支援 Secure Boot 和 vTPM 等安全性機制,但卻會導致巢狀式虛擬化機制無法運作。

因此,在建立支援巢狀式虛擬化的 Azure VM 虛擬主機時,記得將安全性類別選擇為「Standard」項目(如圖 3 所示),後續才能確保巢狀式虛擬化技術正常運作,詳細資訊請參考 Azure VM 的可信任啟動 - Azure Virtual Machines | Microsoft Learn 官方文件說明。

圖 3、安全性類別選擇為 Standard 巢狀式虛擬化功能才能順利運作



控制節點安裝 AKS EE 環境

在本文實作環境中共有三台主機,一台擔任 Kubernetes 容器叢集中「控制節點」(Control Plane)的角色,這台控制平面僅負責管理 Kubernetes 容器叢集,並且資源調度另外二台「工作節點」(Worker Nodes)主機,負責運作屆時的 Linux 和 Windows 容器等工作負載。

在 AKS EE 運作架構中,支援 主流 K8s精簡版 K3s,企業和組織可視需求部署其中一個,除了底層和 Kubernetes 運作元件不同之外,在 CNI 網路外掛程式的部份也有所不同,採用 K8s 時 CNI 網路外掛程式為「Calico」,而採用 K3s 時則會採用「Flannel」。

值得注意的是,AKS EE 運作架構雖然同時支援 K8s 和 K3s 容器叢集環境,但無法混合環境使用,舉例來說,控制節點安裝 K3s 容器叢集環境的話,那麼其它接受調度的工作節點也必須安裝 K3s 才行。

由於控制節點僅需運作 Linux VM 主機即可,所以控制節點僅需下載並安裝 K3s 安裝程式即可,請以系統管理員身份開啟 PowerShell,鍵入並執行「msiexec.exe /i AksEdge-k3s-1.27.6-1.6.384.0.msi」指令(如圖 4 所示),執行部署 K3s 容器叢集的動作。

圖 4、Kubernetes 節點主機部署 K3s 容器叢集環境

安裝作業完成後,請執行「Import-Module AksEdge」指令,將 AKS EE 相關的 PowerShell 模組載入至系統中,接著執行「Get-Command -Module AKSEdge | Format-Table Name, Version」指令,確保 AKS EE 的 PowerShell Cmdlet 模組順利載入(如圖 5 所示)。倘若,無法順利載入 AKS EE 相關 PowerShell 模組的話,可以嘗試執行「Set-ExecutionPolicy RemoteSigned -Scope Process -Force」調整 PowerShell 安全性等級後,再次嘗試執行匯入 AKS EE 相關 PowerShell 模組的動作。

圖 5、確認控制節點主機是否順利載入 AKS EE PowerShell 相關模組

請執行「Install-AksEdgeHostFeatures」指令,系統將會自動執行驗證程序,確保 AKS EE 節點主機是否安裝並啟用 Hyper-V、OpenSSH Client……等,倘若系統偵測到主機並未安裝或正確的組態設定時,將會自動執行安裝和啟用等工作任務,並且在完成後自動重新啟動主機。建議管理人員,在 AKS EE 節點主機重新啟動後,再次執行指令確保主機已經滿足所有驗證程序,並會在結尾顯示「True」訊息(如圖 6 所示)。

圖 6、確認 AKS EE 節點主機滿足運作容器叢集的需求



產生並驗證 Kubernetes 叢集組態

事實上,AKS EE 容器叢集運作環境,與 Azure 雲端環境中的 AKS 容器叢集,以及地端的 AKS HCI 容器叢集運作機制不同,因為 AKS 或 AKS HCI 預設便會啟用動態機制,建立或刪除相關的 VM 虛擬主機,以便滿足容器叢集生命週期管理,但 AKS EE 則是屬於「靜態」運作機制,每台 AKS EE 主機只會運作一台 Linux VM 虛擬主機,或者視需求搭配運作一台 Windows VM 虛擬主機,並且由管理人員透過 .json 組態設定檔進行容器叢集的部署作業。

請在 PowerShell 視窗中,執行「New-AksEdgeConfig -DeploymentType ScalableCluster -outFile .\aksedge-config.json」指令,產生用於部署多節點容器叢集,並且名稱為「aksedge-config.json」的 JSON 組態設定檔(如圖 7 所示),內含部署運作控制平面角色的 Linux VM 虛擬主機。

圖 7、產生用於部署多節點容器叢集的 JSON 組態設定檔

下列為本文環境調整後客製化參數的項目及說明,其餘則採用系統預設值即可:
  • DeploymentType: 預設值為「ScalableCluster」,屆時將定義 AKS EE 部署類型為多節點容器叢集。
  • Init.ServiceIPRangeStart: 預設值為「null」,組態設定容器叢集服務 IP 位址的啟始位址,由於多節點容器叢集必須採用靜態 IP 位址,在本文實作環境中啟始位址為「10.10.75.101」。請注意,目前 AKS EE 容器叢集僅支援 IPv4 位址,尚未支援採用 IPv6 位址。
  • Init.ServiceIPRangeSize: 預設值為「0」,表示稍後部署的容器叢集將沒有服務 IP 範圍,屆時運作的容器工作負載,系統不會配置服務 IP 位址,管理人員必須手動使用 Get-AksEdgeNodeAddr 等相關指令,確認 Linux 或 Windows 節點主機的 IP 位址,然後搭配相關通訊埠號,才能存取容器工作負載所提供的服務。本文實作環境調整為「50」,表示組態設定容器叢集服務配置 50 個服務 IP 位址。
  • Network.ControlPlaneEndpointIp: 預設值為「null」,組態設定 Kubernetes 容器叢集中控制平面的 IP 位址,本文實作環境採用「10.10.75.50」。請注意,這個 IP 位址不能和節點主機,或者稍後部署的 Linux VM 虛擬主機採用相同的 IP 位址,否則將會發生 IP 位址衝突的情況。
  • Network.NetworkPlugin: 預設值為「flannel」,由於本文實作環境為安裝及部署 K3s 容器叢集,所以 CNI 網路外掛程式的預設值便為 flannel,倘若部署 K8s 容器叢集則預設值將為 calico 。
  • Network.Ip4GatewayAddress: 預設值為「null」,本文實作環境此網段的預設閘道 IP 位址為「10.10.75.1」。
  • Network.Ip4PrefixLength: 預設值為「24」,AKS EE 容器叢集網路環境的子網路遮罩。
  • Network.DnsServers: 預設值為「」,AKS EE 容器叢集屆時使用的 DNS 名稱解析伺服器不可為空值,否則稍後的部署作業將會產生錯誤並停止部署作業,本文實作組態設定「8.8.8.8」為 DNS 名稱解析伺服器。
  • Machines.NetworkConnection.AdapterName: 預設值為「null」,指定 AKS EE 容器叢集中,Linux VM 虛擬主機使用的實體主機網路介面卡名稱,本文實作為「Ethernet」,倘若不確定網路介面卡名稱,可以執行「Get-NetAdapter -Physical | Where-Object { $_.Status -eq 'Up' }」PowerShell 指令進行確認。
  • Machines.LinuxNode.CpuCount: 預設值為「4」,表示稍後部署的 Linux VM 虛擬主機,將會配置 4 vCPU 虛擬處理器資源。
  • Machines.LinuxNode.MemoryInMB: 預設值為「4096」,表示稍後部署的 Linux VM 虛擬主機,將會配置 4GB vMemory 記憶體空間,本文實作環境調整為「8192」。
  • Machines.LinuxNode.DataSizeInGB: 預設值為「10」,表示稍後部署的 Linux VM 虛擬主機,將會配置 10 GB vDisk 虛擬磁碟空間存放資料。
  • Machines.LinuxNode.LogSizeInGB: 預設值為「1」,表示稍後部署的 Linux VM 虛擬主機,將會配置 1 GB vDisk 虛擬磁碟空間存放日誌。
  • Machines.LinuxNode.Ip4Address: 預設值為「null」,組態設定 Linux VM 虛擬主機使用的 IP 位址,本文實作環境採用「10.10.75.51」。請注意,這個 IP 位址不能和節點主機,以及先前組態設定的控制平台採用相同的 IP 位址,否則將會發生 IP 位址衝突的情況。

多節點容器叢集的 JSON 組態設定檔客製化調整後,請在 PowerShell 視窗中,執行「Test-AksEdgeNetworkParameters -JsonConfigFilePath .\aksedge-config.json」指令,在部署 AKS EE 多節點容器叢集之前,確認 JSON 組態設定檔內容是否正確無誤,例如,內容語法是否正確,組態設定的 IP 位址是否有重複的情況發生……等,當系統檢查內容無誤的話,便會顯示「Network parameter validation terminated successfully」的綠色字體訊息(如圖 8 所示),並且檢查結果為「True」,表示可以放心用於稍後的多節點容器叢集部署工作任務中。

圖 8、驗證 JSON 組態設定檔內容及語法是否正確無誤

倘若,系統驗證 JSON 組態設定檔內容及語法有錯誤時,系統便會顯示「Network parameter validation terminated with above errors」的紅色字體訊息,檢查結果為「False」,表示管理人員應該回頭檢視 JSON 組態設定檔內容及語法,舉例來說,本文實作環境中一開始指定的 DNS 名稱解析伺服器為 10.10.75.1,但是系統檢查後發現,組態設定的的 DNS 名稱解析伺服器,並無法解析 microsoft.com名稱(如圖 9 所示)。

圖 9、系統檢查出 JSON 組態設定檔內容或語法有錯誤



部署 AKS EE 容器叢集中的控制節點

當 Test-AksEdgeNetworkParameters 指令檢查結果為「True」時,便可以執行「New-AksEdgeDeployment -JsonConfigFilePath .\aksedge-config.json」指令,開始部署 AKE EE 容器叢集架構中的控制節點(如圖 10 所示)。

圖 10、部署 AKE EE 容器叢集架構中的控制節點

在本文實作環境中,花費約 5 分鐘時間,便成功部署擔任控制節點角色的 Linux 節點主機,管理人員可以開啟 Hyper-V 管理員工具,即可看到系統已經自動建立控制節點角色的 Linux 節點主機,並且看到剛才在 JSON 組態設定檔內容中,組態設定控制節點角色使用「10.10.75.50」的 IP 位址,而 Linux 節點主機使用「10.10.75.51」的 IP 位址,並且系統已經在部署過程中,自動建立名稱為「aksedgesw-ext」的 Hyper-V 外部 vSwitch 虛擬交換器(如圖 11 所示)。

圖 11、成功部署擔任控制節點角色的 Linux 節點主機

在執行 New-AksEdgeDeployment 指令的部署過程中,系統會自動擷取 kubeconfig 檔案和處理 Kubernetes 驗證事宜。現在,管理人員可以透過 kubectl 指令,檢查並確認 AKS EE 容器叢集,以及 Linux 節點主機是否運作正常,請在 PowrShell 指令視窗中,執行「kubectl get nodes -o wide」指令,查看 Linux 節點主機運作資訊,執行「kubectl get pods -A -o wide」指令,可以查看 AKS EE 容器叢集中控制平面運作資訊(如圖 12 所示)。

圖 12、透過 kubectl 指令確認 AKS EE 容器叢集和控制主機資訊



部署 AKS EE 容器叢集中的工作節點

在本文實作環境中,將會部署二台工作節點主機,這二台工作節點主機將會同時部署,Linux 和 Windows 節點主機,以便屆時可以同時分擔運作 Linux 和 Windows 容器的工作任務,由於二台工作節點主機的部署方式相同,下列將以第一台「AKSEE-Worker01」為例。

在為工作節點主機安裝 K3s 容器環境時,由於屆時會同時運作 Linux 和 Windows 節點主機,所以必須額外下載 Windows 節點主機檔案(AksEdgeWindows-1.6.384.0.zip),以便後續能夠部署和運作 Windows 容器。

在執行安裝 K3s 環境之前,請將 K3s 安裝程式和解壓後的Windows節點主機檔案,放置在同一個資料夾內或路徑中,並以系統管理員身份開啟 PowerShell,然後執行「msiexec.exe /i AksEdge-K3s-1.27.6-1.6.384.0.msi ADDLOCAL=CoreFeature,WindowsNodeFeature」指令,安裝 K3s 容器環境的混合部署模式(如圖 13 所示)。

圖 13、部署 AKS EE 容器叢集中工作節點的 k3s

同樣的,安裝完成後必須先執行「Import-Module AksEdge」指令,以便載入 AKS EE 相關 PowerShell 模組,執行「Install-AksEdgeHostFeatures」指令,啟用 Hyper-V、SSH…… 等伺服器角色和功能。

當工作節點 Kubernetes 環境準備完畢後,請切換至控制節點主機,產生用於部署 Linux 和 Windows 主機的 JSON 組態設定檔,請執行「New-AksEdgeScaleConfig -scaleType AddMachine -NodeType LinuxandWindows -LinuxNodeIp 10.10.75.61 -WindowsNodeIp 10.10.75.71 -outFile .\ScaleConfig.json」指令(如圖 14 所示),產生部署第一台工作節點主機的 JSON 組態設定檔,其中指定 Linux 主機使用 10.10.75.61 的 IP 位址,而 Windows 主機則使用 10.10.75.71 的 IP 位址。後續部署第二台工作節點主機時,則指定 Linux 主機使用 10.10.75.62 的 IP 位址,而 Windows 主機則使用 10.10.75.72 的 IP 位址。

圖 14、在控制主機產生部署第一台工作節點主機的 JSON 組態設定檔

管理人員產生並複製 JSON 組態設定檔,至二台工作節點主機後,可以嘗試開啟檔案查看內容,原則上和部署控制主機的內容大同小異,不同的地方為多了「Join.ClusterJoinToken」和「Join.ClusterID」,也就是指定 AKS EE 容器叢集的資訊,確保加入對的 AKS EE 容器叢集運作環境中。同樣的,在執行部署之前,建議檢查 JSON 組態設定檔內容和語法正確無誤後(如圖 15 所示),再執行部署工作節點內 Linux 和 Windows 主機的動作。

圖 15、檢查和確認 JSON 組態設定檔內容和語法正確無誤

執行「New-AksEdgeDeployment -JsonConfigFilePath .\ScaleConfig.json」指令,開始部署 AKE EE 容器叢集架構中的工作節點,開啟 Hyper-V 管理員工具,即可看到系統自動建立 Linux 和 Windows 角色的節點主機,以及在 JSON 組態設定檔內容中,指定 Linux 節點主機使用「10.10.75.61」的 IP 位址,而 Windows 節點主機使用「10.10.75.71」的 IP 位址,並且自動建立名稱為「aksedgesw-ext」的 Hyper-V 外部 vSwitch 虛擬交換器(如圖 16 所示)。

圖 16、AKS EE 工作節點順利部署 Linux 和 Windows 節點主機

現在,管理人員可以在 AKS EE 容器叢集中,任一角色的主機上執行「kubectl get nodes -o wide」指令,即可看到除了先前部署的控制節點主機資訊之外,也看到剛才部署的工作節點中,Linux 和 Windows 節點主機的運作資訊,包含 IP 位址、作業系統映像檔……等資訊。在本文實作環境中,請依照同樣的方式,部署第二台工作節點主機,在第二台工作節點的 JSON 組態設定檔內容中,將會指定 Linux 節點主機使用「10.10.75.62」的 IP 位址,而 Windows 節點主機使用「10.10.75.72」的 IP 位址,部署完成後再次查看即可發現,目前 AKS EE 叢集運作架構中,有一台控制節點主機、二台 Linux 工作節點、二台 Windows 工作節點(如圖 17 所示)。

圖 17、順利部署一台控制節點和各二台 Linux 及 Windows 工作節點



部署 Linux 和 Windows 容器應用程式

由於 AKS EE 容器叢集的分散式運作架構已經成形,稍後在部署 Linux 和 Windows 容器應用程式時,管理人員即可看到,運作起來的 Linux 和 Windows 容器應用程式,將會自動分散在不同的 Linux 和 Windows 工作節點主機中,而無須管理人員進行額外的負載平衡設定。

首先,部署 Linux 容器應用程式,採用微軟 azure-vote-front 容器映像檔為範例,此容器映像檔存放在微軟公開的 ACR(Azure Container Registry)當中,並且部署的 linux-sample.yaml 組態設定檔中,預設指定 nodeSelector 為 Linux,所以系統會自動部署至所有 Linux 節點主機中。

此投票範例應用程式,為採用 .NET 所撰寫的前後端應用程式,後端採用 Key-Value 儲存的Redis,執行部署作業時,只要在 PowerShell 指令視窗中,執行「kubectl apply -f https://raw.githubusercontent.com/Azure/AKS-Edge/main/samples/others/linux-sample.yaml」指令,系統便立即解析 linux-sample.yaml 檔案內容,執行部署前端和後端應用程式的工作任務,並且產生及定義相關的 Kubernetes 物件。

部署作業完成後,執行「kubectl get pods -o wide」指令,即可看到「azure-vote-front」前端應用程式,部署在第一台工作節點上,而「azure-vote-back」後端應用程式,則部署在第二台工作節點中。請查看 STATUS 欄位狀態,倘若狀態為 ContainerCreating 時,只需稍等幾分鐘待運作狀態轉變為 Running 時,表示容器應用程式已經順利啟動並正常運作中。

此範例投票程式,在 linux-sample.yaml 組態設定檔中,已經定義好部署 Kubernetes LoadBalancer 流量負載平衡服務,管理人員可以透過「kubectl get services」指令,確認對外服務 IP 位址是否套用生效,請查看 EXTERNAL-IP欄位,此欄位一開始會顯示 Pending,稍待一小段時間後便會顯示對外服務 IP 位址,本文實作環境為 10.10.75.101(如圖 18 所示)。

圖 18、部署 Linux 容器應用程式並確認對外服務 IP 位址

請開啟瀏覽器鍵入 10.10.75.101 的 IP 位址,即可連線至 Linux 投票應用程式頁面,可以點選 Cats 或 Dogs 鈕進行投票,或按下 Reset 鈕將投票結果進行重置(如圖 19 所示)。

圖 19、驗證 Linux 投票應用程式是否正確運作

在部署 Windows 容器應用程式的部份,將會部署 ASP .NET 容器應用程式,在 win-sample.yaml部署設定檔中,預設已經指定 nodeSelector 為 Windows,表示將會部署在 Windows 節點主機中。

請在 PowerShell 指令視窗中,執行「kubectl apply -f https://raw.githubusercontent.com/Azure/AKS-Edge/main/samples/others/win-sample.yaml」指令,系統將會解析 win-sample.yaml 內容,執行部署和建立 Kubernetes 相關物件。

執行「kubectl get pods -o wide」指令,確認部署的 Windows 容器應用程式是否順利運作。值得注意的是,由於 ASP .NET 容器映像檔較大,必須視工作節點的網際網路連線頻寬而定,所以部署的 Windows 容器需要一些時間才能順利運作,在本文實作環境中,Windows 容器應用程式,從下載到順利運作共花費 10 分鐘。請執行「kubectl get services」指令,可以看到由於此 Windows 容器應用程式中,Kubernetes 服務類型採用「NodePort」,所以系統並不會自動派發對外服務 IP 位址,但可以看到 Windows 容器應用程式使用的服務通訊埠為 30756(如圖 20 所示)。

圖 20、部署 Windows 容器應用程式並取得使用的服務通訊埠為 30756

此時,只要查詢 Windows 容器應用程式,運作在哪一台 Windows 節點主機,即可透過該台 Windows 節點主機的 IP 位址,搭配 Windows 容器應用程式的服務通訊埠,即可順利連線至 Windows 應用程式頁面,在本文實作環境中,Windows 容器應用程式,部署至第一台 Windows 節點主機中,而服務通訊埠為 30756,所以開啟瀏覽器鍵入 IP 位址加服務通訊埠「https://10.10.75.71:30756」,即可連線存取 Windows 容器應用程式頁面(如圖 21 所示)。

圖 21、連線存取 Windows 容器應用程式頁面





結語

透過本文的深入剖析和實作演練後,相信管理人員除了理解多節點 AKS EE 容器叢集的運作架構之外,透過實作演練更能了解如何實際部署多節點 AKS EE 容器叢集,一旦隨著時間或專案增加,而必須擴充 Linux 和 Windows 工作節點主機時,即可非常輕鬆進行工作節點擴充的工作任務。



GKE Backup and Restore - Task7 | GSP1110

$
0
0


簡介

本文實作練習中,將在 GKE Cluster 運作環境中,採用內建支援的「Backup for GKE」服務,這項服務由兩個部份所組成,分別是 Google Cloud API 及 GKE Add-on (the Backup for GKE agent)。簡單來說,就是可以針對 GKE Cluster 中的工作負載進行「備份和還原」作業。

圖、Backup for GKE 元件運作示意圖





Task 7 - Delete the application

在上一個工作任務中,已經完成 GKE 備份計劃。在這個工作任務中,我們要模擬災難事件發生,WordPress 應用程式和資料庫損壞無法使用的情況。請在 Cloud Shell 視窗中,執行下列 kubectl delete 指令,將運作中的 WordPress 應用程式和資料庫刪除:
kubectl delete secret mysql-pass kubectl delete -f https://k8s.io/examples/application/wordpress/mysql-deployment.yaml kubectl delete -f https://k8s.io/examples/application/wordpress/wordpress-deployment.yaml


切換回 Cloud Console 的 GKE Workload 頁面中,確認 WordPress 應用程式和資料庫等工作負載已經徹底刪除了。


切換回 Cloud Shell 視窗中,執行「kubectl get pods」指令,系統將顯示 No resources found in default namespace.訊息,表示確認 WordPress 應用程式和資料庫等工作負載已不存在。請執行「echo -e "\nWordPress URL: http://${EXTERNAL_ADDRESS}\n"」指令,取得剛才 WordPress 應用程式使用的 Public IP 位址,然後開啟瀏覽器再次嘗試存取,可以發現已無法存取 WordPress 頁面。




Best Practices - Physical Networking | Nutanix

$
0
0


前言

最近閱讀 Best Practices - Physical Networking | Nutanix文件,整理出個人想要的重點,詳細資訊請參考該文件內容。



Maximum of Three Switch Hops

在同一個 Nutanix Cluster 環境中,Nutanix Node 之間,最好不要超過「3 個Switch Hops,通常採用 Leaf-Spine架構便能滿足此需求。
  • 另一個規劃重點是「Same Switch Fabric」,簡單來說,Nutanix Node 之間最好處於「Layer 2」網路環境,並且在同一個網段
  • 倘若有跨 WAN 需求時,應該建多個 Nutanix Cluster,然後用 DR Replication 來處理。

圖、Leaf-Spine 示意圖

圖、Scaling the Leaf-Spine 示意圖

另一種是經典的三層式架構「Core-Aggregation-Access」,也很常見。

圖、Core-Aggregation-Access 示意圖

圖、Scaling the Core-Aggregation-Access 示意圖

如果有跨 Site 的需求時,不要只建一個 Nutanix Cluster 然後跨越二個 Site,而是應該建立多個 Nutanix Cluster,然後搭配 Asynchronous Disaster Recovery / NearSync / Metro Availability 機制去處理才對。

圖、Multisite Network Design Using Replication




VLANs 規劃

  • CVM 和 AHV Hypervisor 的 VLAN,應該和 VMs 虛擬主機的 VLAN 分開。
  • Nutanix Node 之間,使用 IPv6 Neighbor Discovery Protocol IPv6 UDP Broadcast溝通。
  • 建議停用MulticastBroadcast Flood Optimizations
  • 建議停用Proxy Address Resolution Protocol (ARP)



Remote Direct Memory Access (RDMA)

預設情況下,Nutanix Node 之間的 Storage Replication 網路流量是走標準的 TCP/IP。倘若,需要 High-Performance 和 Low-Latency 時,Nutanix 支援採用 RDMA技術繞過 TCP/IP Stack,採用的是 RDMA over Converged Ethernet (RoCE)技術。當然,如果 RDMA 失敗時,會退回採用 TCP/IP。
  • 目前的 RDMA 不支援 NIC High Availability 機制。
  • 不支援使用「第二個」RDMA Port。
  • 採用 NVIDIA Mellanox ConnectX-4 Ethernet Adapter (CX-4) 時,記得 Physical Switch 要開啟 Data Center Bridging (DCB)Priority-based Flow Control (PFC),而 PFC 數值通常是「3」。
  • 在 AOS 6.6 版本之前,只能在 Foundation VM 部署期間,使用 RDMA Port Passthrough 去設定。在 AOS 6.6 之後的版本,可以部署叢集後再組態設定 RDMA
  • AOS 6.7 之後的版本,支援 Zero-Touch RDMA over Converged Ethernet (ZTR)就不需要 Physical Switch 設定 DCB/PFC 了,但記得必須是 NVIDIA Mellanox ConnectX-5 Ethernet Adapter (CX-5) 或 NVIDIA Mellanox ConnectX-6 Ethernet Adapter (CX-6) 才支援 ZTR。
  • 不支援混用,例如,CX-4/CX-5,或 CX-5 搭 25Gb 網卡,混用的話 Nutanix Cluster 就不允許啟動 RDMA。

GKE Backup and Restore - Task8 | GSP1110

$
0
0


簡介

本文實作練習中,將在 GKE Cluster 運作環境中,採用內建支援的「Backup for GKE」服務,這項服務由兩個部份所組成,分別是 Google Cloud API 及 GKE Add-on (the Backup for GKE agent)。簡單來說,就是可以針對 GKE Cluster 中的工作負載進行「備份和還原」作業。

圖、Backup for GKE 元件運作示意圖




Task 8 - Plan a restore

請切換到 Cloud Shell 頁面中,執行下列指令以便建立 GKE 復原計劃,建立完成後會看到「Created restore plan [my-restore-plan1]」資訊,表示 GKE 復原計劃建立完成:
gcloud beta container backup-restore restore-plans create my-restore-plan1 \ --project=$PROJECT_ID \ --location=$REGION \ --backup-plan=projects/${PROJECT_ID}/locations/${REGION}/backupPlans/$BACKUP_PLAN \ --cluster=projects/${PROJECT_ID}/locations/${ZONE}/clusters/lab-cluster \ --namespaced-resource-restore-mode=delete-and-restore \ --volume-data-restore-policy=restore-volume-data-from-backup \ --all-namespaces


分別執行下列指令,可以查詢 GKE 復原計劃的概要資訊和詳細資訊:
gcloud beta container backup-restore restore-plans list \ --project=$PROJECT_ID \ --location=$REGION ##### gcloud beta container backup-restore restore-plans describe my-restore-plan1 \ --project=$PROJECT_ID \ --location=$REGION



Best Practices - AHV Networking Overview | Nutanix

$
0
0


前言

本文為閱讀 Best Practices - Nutanix AHV Networking | Nutanix文件後,整理的個人重點心得。



AHV Networking Overview

在 Nutanix 運作架構中,AHV 虛擬化平台便是利用 OVS (Open vSwitch),達成連接和管理 CVM、VM 虛擬主機的虛擬網路部份,OVS 虛擬網路可以透 Prism 或 ACLI 進行組態設定。下列為開始玩 AHV Networking 之前要知道的相關術語:
  • OVS (Open vSwitch):是結合 Linux 核心實作的開源軟體交換器,並可以在伺服器虛擬化環境中運作。在預設情況下,OVS 虛擬網路交換器的運作機制,類似於 Layer 2 功能的虛擬網路交換器 (MAC Address)。 OVS 支援許多網路交換器主流功能,例如,VLAN Tagging、LACP (Link Aggregation Control Protocol)、Port Mirroring、QoS (Quality of Service)……等,每台 AHV Host 會運作一個 OVS 執行個體,多個 OVS 整合之後,將會組成一個邏輯上的虛擬網路交換器,以便後續管理和組護虛擬網路環境。
  • Bridge:預設情況下,AHV Host 會建立一個名稱為 virbr0的 Native Linux Bridge,以及一個名稱為 br0的 OVS Bridge 。其中,virbr0 負責 CVM 和 AHV Host 之間 Management 和 Storage 網路流量,而其它 Storage、AHV Host、VMs……等網路流量便是由 br0 負責。
  • Virtual Switch:在 AOS 5.19 和後續版本中,管理人員呵以透過 Prism 來管理 bridges 和 uplinks。它會在 Nutanix Cluster 中 Aggregates 所有 AHV 主機的 OVS Bridges,達到統一組態設定和管理的目的,預設 vs0便是虛擬交換器,Aggregates 所有 AHV 主機的 OVS Bridges 和 br0-up uplinks。
  • Port: Port 是 Bridge 中的邏輯結構,並且負責處理 AHV Host、VM 虛擬主機、實體網路卡的連接作業。其中,br0負責連接和存取 AHV Host,Tap Ports則是 VM 虛擬主機虛擬網卡連接存取使用,VXLAN Port用於 Acropolis 提供 IP 位址管理功能,Bonded Ports 則是提供 NIC Teaming 機制,以便將 AHV Host 的多個實體網路卡整合的機制。
  • Bonds:預設情況下,系統會自動建立 br0-up 的 Bonding 介面,一般為了方便識別通常會重新命名為 bond0。此外,Bond 建立後,支援多種網路流量負載平衡演算法,例如,Active-Backup、Balance-SLB、Balance-TCP 等,當然 LACP 也支援但必須配合實體網路交換器的設定。值得注意的是,在安裝期間未指定使用的負載平衡演算法 (bond_mode) 時,預設將會採用 Active-Backup 演算法。
圖、AHV 網路架構示意圖



Bridge Chaining

從 Nutanix AOS 5.5 版本開始,所有 AHV 主機都會使用 Bridge Chain 作為 Micro-Segmentation 功能的後端。實體介面連接到 bridge brN,VM 虛擬主機連接到 bridge brN.local,兩個 Bridge 之間是用 br.microseg 把流量引導至網路功能虛擬機的 br.nf。 

圖、AHV Bridge Chain 示意圖



VLAN 組態設定

在下圖中,使用 Prism 為預設的 br0 建立並指派名稱為 Production採用 VLAN ID 27

圖、組態設定 VLAN 示意圖



AHV MAC Address Management

預設情況下,由 AHV 建立的 VM 虛擬主機網卡 MAC Address,將會以「50:6B:8D」開頭。



AHV Networking Terminology

下列是 AHV / VMware / Hyper-V 這三者之間,對於網路名詞的解釋,方便大家互相比較和入門。


GKE Backup and Restore - Task9 | GSP1110

$
0
0


簡介

本文實作練習中,將在 GKE Cluster 運作環境中,採用內建支援的「Backup for GKE」服務,這項服務由兩個部份所組成,分別是 Google Cloud API 及 GKE Add-on (the Backup for GKE agent)。簡單來說,就是可以針對 GKE Cluster 中的工作負載進行「備份和還原」作業。

圖、Backup for GKE 元件運作示意圖





Task 9 - Restore a backup

請切換到 Cloud Shell 頁面中,執行下列指令將先前建立的 GKE 備份計劃進行還原的動作。當還原的工作任務完成後,將會出現「Restore completed. Restore state: SUCCEEDED」資訊,表示還原完成,然後請執行「kubectl get pods」指令進行確認:
gcloud beta container backup-restore restores create my-restore1 \ --project=$PROJECT_ID \ --location=$REGION \ --restore-plan=my-restore-plan1 \ --backup=projects/${PROJECT_ID}/locations/${REGION}/backupPlans/${BACKUP_PLAN}/backups/my-backup1 \ --wait-for-completion


確認二個 Wordpress Pods 的 STATUS 運作狀態欄位,轉變為「RUNNING」之後,表示 Pods 已經正常運作。此時,便可以執行「echo -e "\nWordPress URL: http://${EXTERNAL_ADDRESS}\n"」指令,取得 Wordpress 應用程式的 Public IP 位址 (本文實作環境為 35.223.231.7),然後開啟瀏覽器進行確認,檢查之前建立的文章和評論是否都在,完成這次的 GKE 備份和還原的實作演練。


最後,別忘了檢查是否每個 Task 工作任務都完成,再關閉這個 Cloud Lab 哦!

Viewing all 591 articles
Browse latest View live


<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>