雖然 Minikube、K3D 或者 Docker for Desktop 都提供 Kubernetes 測試環境可以方便開發雲原生應用軟體。但從運維角度來說,這些工具並不適合用來測試與驗證需要多節點的方案,例如:高可用的 etcd;K8S 的儲存方案如 OpenEBS, ROOK 等需要額外的儲存媒體 (e.g. 硬碟) 來實現;又或者有在主機系統額外安裝套件的需求。本文山姆鍋利用 Vagrant 跟 VirtualBox 虛擬技術作為快速拆建的實驗環境。

閱讀全文

山姆鍋過去雖然提過 Vagrant 以及 VirtualBox 作為開發運維的虛擬化測試環境,但卻都沒有提到過如何安裝。一方面認為這類工具安裝相當基本,一方面也認為網路上很容易就可以找到相關教學文件。由於太常用到 Vagrant,也為了能夠同時支援 Windows、OS X 以及 Ubuntu 系統的技術人員可以快速準備好環境,山姆鍋還是整理了這三個平台的安裝步驟。

閱讀全文

在設定 Surface Pro 作為備用開發環境的過程中,選用 Windows Termainl 作為終端機模擬器。雖然不像 Cmder 那般強大,但作為終端機模擬器,其畫面操作效果還是令人滿意的。由於主要是以 Linux 環境為主,本文山姆鍋說明如何設定 Windows Terminal,讓它一啟動就執行 Ubuntu 文字操作介面。

閱讀全文

在經歷大大小小不同專案後,除了有特殊要求的系統外 (如需符合 PCI-DSS 的第三方支付服務、即時影音串流等), 大部分的 Web 應用架構其實都是大同小異。本文提供一個通用的 Web 應用架構作為參考,希望可以符合 80% 以上 Web 專案的需求。

閱讀全文

在使用 Hexo 撰寫部落格文章或者開發 Web 應用時常常會需要開啟瀏覽器來檢視結果。Hexo 或者 Web 應用開發工具除了支援啟動後端服務外也支援自動啟動系統預設的瀏覽器,但由於在 WSL 環境預設並沒有圖形桌面環境,自然無法開啟瀏覽器。本文山姆鍋將說明如何讓 WSL 中的程式可以自動開啟 Windows 系統預設的瀏覽器。

閱讀全文

雖然 Docker Desktop for WSL 利用 WSL 來執行 Linux 容器,一方面提高容器在 Windows 環境的執行效率,一方面也提高記憶體等資源與主機系統的共用程度。雖然相對之前採用完整虛擬機相對節省資源,但對山姆鍋的低配 Surface Pro 來說還是太佔資源。也由於 WSL 2 已經可以直接執行 Docker engine 來支援 Linux 容器的執行,所以決定改採用這個方式來提供 Docker 服務。

閱讀全文

使用 Hexo 寫部落格文章時,雖然 VS Code 有 Markdown 的預覽延伸套件,但因為預覽並不支援主題所使用的 image 標籤,在發布前還是需要在瀏覽器看實際呈現的結果。雖然知道 Hexo 有 hexo-browsersync 以及 hexo-livereload 插建可以利用,但按照說明一直無法設定成功。

閱讀全文

雖然已經有 Docker Desktop、Minikube 等可以提供 K8S 本機的測試環境,但最近才發現 Canonical 公司 (Ubuntu 的發行商) 提供 Multipass 這個輕量級的跨平台虛擬機管理方案,標榜跟 Docker Desktop 一樣容易使用。由於 Ubuntu 也是山姆鍋偏好的部署環境作業系統,如果能夠從開發、測試到生產環境都使用相同的作業系統,也許是個好主意。因此,嘗試使用 Multipass 來建置 K8S 本地開發、測試環境。

閱讀全文

導入 Kubernetes 的門檻不低,在過去我並不建議新創團隊一開始就採用。隨著雲端託管的 K8S 服務越來越普及,本地開發、測試工具與環境容易取得,加上自建與維運一個 K8S 叢集的解決方案越加成熟,再再都顯示使用 K8S 作為應用部署平台的好處已超過導入的成本。時至今日,對於開發網路軟體產品的團隊,我已經會建議一開始就是以 K8S 作為預設的部署環境,除了利用 K8S 的高可用性與擴充性架構外,也讓網路應用可以更容易移植 (portable) 到不同的基礎設施。

留言與分享

作者的圖片

Sampot (山姆鍋)

個人部落格, 記錄與分享一些軟體開發與運維相關資訊, 偶爾也會碎念一下


IT 自由工作者


台灣/台北