部署第一個服務
用一個公開的 Nginx 映像檔,從建立專案走到在瀏覽器打開網址。
這一頁會把一個 Nginx 網頁放上網路:建立專案、填入映像檔、檢查變更、套用,最後在瀏覽器看到 Nginx 的歡迎頁。不需要 Git repository,大約五分鐘。
開始前需要一個能登入的 Zeabur,以及一個能指向叢集的網域,例如 web.example.com。如果管理員已經設好應用程式網域,表單會直接建議一個網址,DNS 也不用自己設。
打開專案,按新增專案,名稱填 hello。這個名稱也會是 Kubernetes Namespace 的名稱,建立後不能改。
按檢查變更,畫面會列出 Zeabur 準備做的事:建立 hello Namespace,加上專案標籤,並套用 Pod Security baseline 設定,允許容器以 root 執行,但禁止存取主機。確認沒問題就按建立。
如果找不到新增專案,表示你的角色不能建立 Namespace。請管理員先建立專案並把你加進去,再從下一步開始。
部署 Nginx
Section titled “部署 Nginx”在 hello 專案裡按新增,選Docker 映像檔:
| 欄位 | 填入 |
|---|---|
| 映像檔 | docker.io/nginxinc/nginx-unprivileged:1.30.5-alpine-slim |
| 名稱 | web |
| 連接埠 | 8080 |
| 公開網域 | 開啟,用建議的網址或你準備的網域 |
Zeabur 讀出 nginx-unprivileged 以使用者 101 執行,會自動選 嚴格,表單會說明選擇原因。這個映像檔監聽 8080。nginx:latest 也能執行,Zeabur 會為它選 相容;建立前仍能自行切換。
填完映像檔後,表單會讀出映像檔宣告的連接埠,正常會自動帶入 8080。
檢查變更,再套用
Section titled “檢查變更,再套用”按檢查變更,Zeabur 會列出三個要建立的物件:
webDeployment,執行剛才的映像檔,1 個副本webService,把8080轉給容器webIngress,把你的網域導向webService
這時候叢集裡還沒有任何新東西。發現網域填錯,就回到表單改。確認無誤再按建立,Zeabur 會帶你到服務頁。
在服務的概覽等副本變成 1/1 就緒。接著到網路點開網域,瀏覽器會出現 Nginx 的歡迎頁。
如果網域下方寫著這個網址只有 HTTP,表示叢集還沒有設定自動簽發憑證,請用 http:// 開啟。要 HTTPS,請管理員設定 cert-manager 簽發者。
回到日誌,可以看到剛才那次開啟網頁留下的存取紀錄。
服務頁的概覽長這樣,上方分頁可以切換到日誌、網路、環境變數和設定:
- 服務 概覽 顯示
1/1就緒,瀏覽器打開網址看到 Nginx 的歡迎頁。 - 用 kubectl 也能看到剛才建立的三個物件,都帶 label
app.kubernetes.io/name: web:
kubectl get namespace hello --show-labelskubectl -n hello get deploy,svc,ingress -l app.kubernetes.io/name=webNamespace 帶 zeabur.com/project=true,Deployment 的 READY 是 1/1,Ingress 的 HOSTS 是你的網域。
這些都是一般的 Kubernetes 物件,不用 Zeabur 也能用 kubectl apply 建出一模一樣的服務,完整的 YAML 見部署容器映像檔的「用 kubectl 做同樣的事」。
網頁沒有出來
Section titled “網頁沒有出來”| 看到的狀況 | 先檢查 |
|---|---|
| 副本一直沒有就緒,事件寫著拉不到映像檔 | 映像檔名稱和版本有沒有打錯,節點能不能連到 Docker Hub |
| 副本一直是 0,事件提到 Pod Security | 需要 root 的映像檔是否選了 相容;專案仍強制 restricted 時,請管理員把專案的 Pod Security 等級改為 baseline |
1/1 就緒,網址卻打不開 | DNS 有沒有指向叢集的入口,連接埠是不是 8080 |
| 按套用時出現這份變更已過期 | 按重新檢查,看過新的差異再套用 |
在 web 服務右上角的更多選刪除服務。刪除也會先列出要刪的物件,這次是 Deployment、Service 和 Ingress,確認後套用。
要連專案一起清掉,到專案設定的危險區域按刪除專案,檢查要刪的東西後輸入 hello 確認,見刪除專案。同一處的從 Zeabur 移除只會拿掉專案標籤,Namespace 和裡面的東西都會留著。
- 部署自己的映像檔,或從 Git 建置
- 了解 Zeabur 和既有工具怎麼共存:Zeabur 如何管理服務