歷經前面好幾天的各種實驗與操作之後,我們可以發現我們都是使用 VM 的方式在創建服務,但其實在 Proxmox VE 中,除了 VM 之外,還有一種叫做 CT 的服務,那麼今天我們就來看看 VM 與 CT 的差異吧!
VM(Virtual Machine)跟 CT(Container)是兩種不同的虛擬化技術,由於這部分的介紹會牽涉到很多的虛擬化技術,因此我們就盡可能白話的說明一下差異:
Virtual Machine 虛擬機,顧名思義是模擬一套硬體設備後,獨立再運作一台服務 / 電腦的技術,那 PVE 就是一種專門為了建置多個虛擬機設備的平台,而這些虛擬機設備可以是 Windows、Linux、MacOS 等等,甚至是其他的虛擬機平台,例如:VMware、VirtualBox 等等。那虛擬機的好處與優勢有
但相對的,虛擬機也有一些缺點,例如:
而 Container 容器,則是另外一種較新的虛擬化技術,他不再從頭模擬一套完整的硬體設備,而是直接使用主機的核心,並且在上面建立一個獨立的環境,讓使用者可以在上面安裝服務,而這些服務可以是 Windows、Linux、MacOS 等等。那這樣的虛擬化情境最大的好處就是
但壞處也很明顯,其
那兩者都已經是很成熟的虛擬化技術了,如何挑選有時候界線也不是很明顯,但我自己會用以下幾點判斷:
因此當今天我是以服務的角度思考時,今天只需要特定環境做特定的事情時,Container 能提供良好的效能、低廉的成本,但今天如果是要測試實驗一些項目時,虛擬機就是一個很好的選擇。
LXC (Linux Containers) 和 Docker 都是容器技術,而在 PVE 上使用的是 LXC,但之前在實驗的時候,我們有使用過 Docker,那兩者有什麼差異呢?
LXC 相比 Docker 技術更早出現,在
在跟 Docker 相比時各有優缺,LXC 相比 Docker 可以說是更加接近 VM 的存在,但由於 Docker 技術上跟規劃上的調整,又使得 Docker 在安全性上跟靈活度上都有更好的表現,兩者各有優缺,但目前 Docker 的生態更加完整一些。
那我們今天就是試著利用 PVE 有所提供的 LXC 跟 Gitlab 服務做範例,看看跟我們之前在 Docker 上的操作有什麼不同。
首先我們要先準備 LXC 容器所需要的環境範本,那其實 PVE 已經提供很多可以供使用的範本,但如果我們直接使用官方範例下載在台灣有點慢,因此這邊推薦使用 Debian 所提供的相關載點:https://cdimage.debian.org/mirror/turnkeylinux/images/proxmox/,我們今天會示範使用的就是其中的 Gitlab 範本, debian-11-turnkey-gitlab_17.1-1_amd64.tar.gz
,先下載回我們的 PVE 主機上。
在完成下載後,我們點選 Create CT 後,有些關於 Container 的基本設定如下參考,
在 Template 的部分就跟選擇我們 VM 的 ISO 一樣,這邊選擇我們要使用的 Container Template 就可以了。
接下來的設定基本上跟 VM 的設定相似,不外乎要給予磁碟大小 / CPU 資源跟記憶體資源,這邊一樣視自己的設備給予,但請注意 Gitlab 所需要的硬體資源不算太少,從官方標準需求中可以看到至少需要 4 core CPU 跟 4 GB RAM 來提供 500 個用戶的服務支援,而最低最低的系統資源也應該要給到 2GB 的 RAM。在提供完基本的資源後,我們就可以點選 Create 按鈕來建立我們的 LXC 容器了。
接下來我們會需要在 Console 中完成 Gitlab 的初次初始化設定,再看到第一次 gitlab login 時,利用 root
:<剛剛設定的密碼>
進行第一次的登入,接下來就可以開始進行 Gitlab 的初始化設定了。
首先會詢問我們新的 gitlab 的 root 密碼,這邊會要求我們設定超過八個字元的大小寫英文數字的密碼,請牢記這個密碼,他會是整個系統最重要的密碼,然後就是包含 Email 等等設定。
接下來會有關於一些服務的設定,
最後就可以看到我們的連線資訊啦!