Sealos 私有云已經正式發布了,它為企業用云提供了一種革命性的新方案。Sealos 的核心優勢在于,它允許企業在自己的機房中一鍵構建一個功能與 Sealos 公有云完全相同的私有云。這意味著企業可以在自己的控制和安全范圍內,享受到公有云所提供的靈活性和擴展性。這對于需要高度數據安全和個性化服務的企業來說,具有極大的吸引力。
而且 Sealos 私有云的維護成本極低,只需要半個人力資源即可。極大地減輕了企業的運營負擔,特別是對于那些沒有大量 IT 支持的中小型企業來說尤為重要。
本文我們將詳細介紹如何在本地環境中一鍵部署 Sealos 私有云。
大規模集群以及企業生產環境強烈建議使用 Sealos 私有云的企業版或者定制版。
準備工作
服務器
以下是一些基本的要求:
- 每個集群節點應該有不同的主機名。
- 所有節點的時間需要同步。
- 建議使用干凈的操作系統來創建集群。不要自己裝 Docker!
- 支持大多數 Linux 發行版,例如:Ubuntu、Debian、CentOS、Rocky linux。
- 系統內核版本在 5.4 及以上。
推薦使用 Ubuntu 22.04 LTS 操作系統,內核版本在 5.4 及以上,配置如下:
操作系統 | 內核版本 | CPU | 內存 | 存儲 | Masters | Nodes |
---|---|---|---|---|---|---|
Ubuntu 22.04 LTS | ≥ 5.4 | 4C | 8GB | 100GB | 奇數臺 | 任意 |
Kubernetes 和 Sealos Cloud 的系統組件在每個 Master 節點上大約需要 2 核心(2c)和 2GB 內存(2g),在每個 Node 節點上則需要大約 1 核心(1c)和 1GB 內存(1g),請確保集群中每個節點都有足夠的計算資源以支持系統組件的運行。
網絡
- 所有節點之間網絡互通;
- 需要在 Kubernetes 集群的第一個 Master 節點上執行腳本,目前集群外的節點不支持集群安裝;
- 所有節點之間可以互相通信。
域名
- 需要一個域名用于訪問 Sealos 及相關服務;
- 如果您沒有域名,可以使用
nip.io
提供的免費域名服務。
證書
Sealos 需要使用證書來保證通信安全,默認在您不提供證書的情況下我們會使用 cert-manager 來自動簽發證書。
如果您能提供證書,證書需要解析下列域名 (假設您提供的域名為:cloud.example.io):
*.cloud.example.io
cloud.example.io
安裝步驟
為了便于部署,我們提供了一個一鍵安裝腳本。該腳本可以從零開始部署 Sealos 集群,也可以在已有的 Kubernetes 集群上部署 Sealos 集群(在已有集群上執行時請謹慎操作)。
該腳本只支持在 “使用 Sealos 安裝的 Kubernetes 集群” 上部署 Sealos 集群,暫不支持其他方式部署的 Kubernetes。
關于如何使用 Sealos 部署 Kubernetes 集群,可以參考:安裝 Kubernetes 集群,支持 Docker Hub 中的幾乎所有 Kubernetes 版本(暫不支持 1.28 及以上版本)。
如果您的機器還沒有安裝過 Kubernetes,建議直接使用該腳本連同 Kubernetes 和 Sealos 集群一起安裝。
根據您的域名情況,可以分為以下幾種安裝方式:
1、無公網域名,也不想自定義域名
如果您沒有公網域名,也不需要自定義域名,可以選擇直接使用 nip.io
提供的免費域名服務。nip.io
是一個免費的通配符 DNS 服務,它可以將動態分配的 IP 地址映射到一個固定的子域名上,特別適合用于本地開發環境。具體的工作原理為:
您可以使用任何 IP 地址作為 nip.io
子域名的一部分,而 nip.io
會將它解析回相應的 IP 地址。例如,如果你有一個內網 IP 地址 192.168.1.10
,你可以使用 192.168.1.10.nip.io
作為域名,所有向這個域名發送的請求都會被解析到 192.168.1.10
這個 IP 地址上。這樣就無需修改本地 hosts 文件,也不需要搭建內網 DNS 服務,直接通過這個域名就能訪問內網服務了。
使用 nip.io 作為 Sealos 的域名非常簡單,只需在第一個 Master 節點上執行以下命令,并根據提示輸入參數:
$ curl -sfL https://gh-proxy.com/https://raw.githubusercontent.com/labring/sealos/main/scripts/cloud/install.sh -o /tmp/install.sh && bash /tmp/install.sh \--image-registry=registry.cn-shanghai.aliyuncs.com --zh \--proxy-prefix=https://gh-proxy.com
當需要你輸入 Sealos Cloud 域名時,你需要輸入這種格式的域名:[ip].nip.io
,其中 [ip] 是你的 Master 節點 IP。
安裝完成后,終端會輸出 Sealos 訪問域名以及用戶名和密碼,例如:
Sealos cloud login info:
Cloud Version: latest
URL: https://10.214.210.102.nip.io
admin Username: admin
admin Password: sealos2023
2、有公網域名,想公網訪問
如果你有自己的公網域名,并且想通過公網訪問 Sealos,那你就需要準備好公網受信任的 SSL/TLS 證書。你可以通過 acme.sh 等工具自動簽發證書,也可以從域名提供商處下載免費證書或者購買商業證書。
準備好域名證書后,需要將證書放到第一個 Master 節點的某個目錄中,例如 /root/certs/
。
您還需要在域名服務商處添加一條該域名的 A 記錄,地址解析到第一個 Master 節點的公網 IP 地址。同時還需要添加一條泛解析記錄,將該域名的子域名也解析到第一個 Master 節點的公網 IP 地址。
例如 (假設你的域名是
cloud.example.io
,假設你的 Master 節點內網地址是192.168.1.10
):
cloud.example.io A 192.168.1.1*.cloud.example.io A 192.168.1.1
然后在第一個 Master 節點上執行以下命令,并根據提示輸入參數:```bash
$ curl -sfL https://gh-proxy.com/https://raw.githubusercontent.com/labring/sealos/main/scripts/cloud/install.sh -o /tmp/install.sh && bash /tmp/install.sh \--image-registry=registry.cn-shanghai.aliyuncs.com --zh \--proxy-prefix=https://gh-proxy.com \--cloud-domain=<your_domain> \--cert-path=<your_crt> \--key-path=<your_key>
- 需要替換成你自己的公網域名。
- 需要替換成你的證書位置,通常是
.crt
或.pem
文件。例如:/root/certs/example.crt
。 - 需要替換成你的私鑰位置,通常是
.key
或.pem
文件。例如:/root/certs/example.key
。
3、有公網域名,想內網訪問
如果您有自己的公網域名,但是只有內網 IP,或者只想在內網訪問 Sealos,那您只需要在域名服務商處添加一條該域名的 A 記錄,地址解析到第一個 Master 節點的內網 IP 地址。同時還需要添加一條泛解析記錄,將該域名的子域名也解析到第一個 Master 節點的內網 IP 地址。
例如 (假設你的域名是 cloud.example.io
,假設你的 Master 節點內網地址是 192.168.1.10
):
cloud.example.io A 192.168.1.1
*.cloud.example.io A 192.168.1.1
然后在第一個 Master 節點上執行以下命令,并根據提示輸入參數:
$ curl -sfL https://gh-proxy.com/https://raw.githubusercontent.com/labring/sealos/main/scripts/cloud/install.sh -o /tmp/install.sh && bash /tmp/install.sh \--image-registry=registry.cn-shanghai.aliyuncs.com --zh \--proxy-prefix=https://gh-proxy.com \--cloud-domain=<your_domain>
其中 需要替換成你自己的公網域名。
安裝過程中 Sealos 會使用 cert-manager 來自簽名證書。
4、無公網域名,但想自定義域名
如果您沒有公網域名,但是需要自定義域名,那么就需要在內網自建 DNS,然后將自定義域名解析到第一個 Master 節點的內網 IP 地址。
假設您的第一個 Master 節點的內網 IP 地址為
192.168.1.10
。假設您的域名為cloud.example.io
。
可以考慮使用 CoreDNS 來自建 DNS 服務,參考配置:
(global_cache) {cache {# [5, 60]success 65536 3600 300# [1, 10]denial 8192 600 60prefetch 1 60m 10%}
}.:53 {errorshealthreadyimport global_cachetemplate IN A cloud.example.io {answer "{{ .Name }} 60 IN A 192.168.1.10"fallthrough}forward . 223.5.5.5logloopreload 6s
}
這樣不管您訪問 cloud.example.io
還是 *.cloud.example.io
都會解析到第一個 Master 節點的內網 IP 地址。
然后在第一個 Master 節點上執行以下命令,并根據提示輸入參數:
$ curl -sfL https://gh-proxy.com/https://raw.githubusercontent.com/labring/sealos/main/scripts/cloud/install.sh -o /tmp/install.sh && bash /tmp/install.sh \--image-registry=registry.cn-shanghai.aliyuncs.com --zh \--proxy-prefix=https://gh-proxy.com \--cloud-domain=<your_domain>
其中 需要替換成你自己的自定義域名。
安裝過程中 Sealos 會使用 cert-manager 來自簽名證書。
信任自簽名證書
如果您選擇了上面提供的安裝方式中的 1 或 3 或 4,那么您的證書默認是不受瀏覽器信任的,當你訪問 Sealos Cloud 時,瀏覽器會提示下面的信息:
即使點擊繼續訪問,進入 Sealos Cloud 之后也無法正常顯示 App 圖標,無法打開 App。
我們需要導出自簽名證書,并讓系統信任自簽名證書。步驟如下。
導出自簽名證書
各個瀏覽器導出自簽名證書的步驟略有不同。以下是在一些常用瀏覽器中導出自簽名證書的步驟:
Chrome (以及基于 Chromium 的瀏覽器如新版 Edge 和 Brave)
- 在瀏覽器地址欄左側點擊 “不安全” 字樣。
- 點擊 “證書無效”,這將打開一個證書信息窗口。
- 在打開的證書窗口中,切換到 “詳細信息” 標簽頁。
- 在 “詳細信息” 標簽頁中,找到并點擊 “導出”。
- 選擇一個文件名和保存位置,然后完成導出過程。
Firefox
點擊頁面中的 “高級”。
然后點擊 “查看證書”。
在證書頁面中點擊 “PEM (證書)”。
Safari
點擊頁面中的 “顯示詳細信息”。
然后點擊 “查看此證書”。
在證書視圖中,可以看到一個帶有證書鏈的窗口。
拖動紅框圈出來的證書到桌面或文件夾中,證書就會被導出了。
信任自簽名證書
macOS
在 macOS 上信任自簽名證書可以使用以下命令:
# 假設證書保存在 ~/Downloads/10.214.210.102.nip.io.cer
$ sudo security add-trusted-cert -d -r trustRoot -k /Library/Keychains/System.keychain ~/Downloads/10.214.210.102.nip.io.cer
您也可以通過以下步驟來操作:
1、添加證書到鑰匙串
- 啟動鑰匙串訪問 (Keychain Access) 應用程序,點擊左側 “系統鑰匙串” 下方的 “系統” 類別。
- 然后打開 “訪達”,進入證書保存位置,雙擊證書文件:這通常是一個
.cer
,.crt
,或.pem
文件。 - 輸入您的用戶名和密碼以允許修改。
- 證書現在應該已經被添加到您的鑰匙串中。
2、信任證書
- 在鑰匙串訪問中,從 “系統” 類別的列表中找到剛剛添加的自簽名證書,并雙擊它。
- 在打開的窗口中,展開 “信任” 部分。
- 在 “當使用此證書時” 選項旁邊,有一個下拉菜單,默認設置可能是 “使用系統默認值”。要信任證書,請改為 “始終信任”。
- 關閉證書信息窗口,系統可能會提示您驗證您的用戶名和密碼,以確認更改。
- 現在,證書已經被標記為受信任。
自簽名證書不由第三方證書頒發機構 (CA) 頒發,因此,其他設備也不會信任該證書。如果您是在公司或組織內部使用自簽名證書,可能需要在每個需要信任此證書的設備上手動進行上述步驟。
Windows
- 在根證書文件點鼠標右鍵,選擇 “安裝證書”。
- 選擇 “當前用戶” 或者 “本地計算機”,下一步
- “將所有的證書都放入下列存儲”,“瀏覽”,“受信任的根證書頒發機構”,“確定”,下一步。
- 完成,“是”,確定。