Portainer - 用於管理容器的 UI-k8s

cn2024發表於2024-10-22

簡介

🔰什麼是Portainer?

Portainer 是一個開源的輕量級管理 UI,它允許我們在 Docker、Docker Swarm、Kubernetes 和 Azure ACI 中輕鬆構建和管理容器,例如管理 Swarm 服務的建立和刪除、使用者身份驗證、授權、連線、執行命令執行容器的控制檯,並檢視容器的日誌。

Portainer 由一個可以在任何叢集上執行的容器組成。它可以部署為 Linux 容器或 Windows 原生容器

它是世界上使用最廣泛的容器管理平臺,在 GitHub 上擁有超過 650,000 名使用者和 21,700 顆星。

🔰 為什麼選擇 Portainer 🤔

✅ Portainer 消除了與部署和管理容器相關的複雜性

Portainer 的目標是提供真正與平臺無關的世界級容器原生應用程式部署和管理工具。為了實現這一點,他們使底層容器管理平臺(例如,Kubernetes)對只想管理其應用程式的工程師不可見。如果您使用 Portainer,我們無需成為專家即可使用容器平臺。

✅ Portainer 簡化了容器管理的操作

使用 Portainer,工程師可以部署和檢視單個容器的狀態,在必要時重新啟動和除錯它們——所有這些都無需使用命令列。 Portainer 還可以深入瞭解正在執行的內容、執行的位置以及執行方式,這有助於工程師最佳化應用程式效能。

由於 Portainer 連線到您的所有主機和平臺,因此您可以在單個網頁上獲得完整的可見性,從而無需連線到每個單獨的容器來檢查其狀態。這節省了大量時間,讓工程師專注於重要的事情。

✅ Portainer 提供符合 IT 治理最佳實踐的企業敏感工具

技術領導者需要能夠以安全、可重複和可擴充套件的方式管理應用程式。 Portainer 提供了一個結構化的框架來實現這一點,並使團隊能夠協同工作。這可以降低您的業務風險,並幫助您在部署和管理應用程式的方式上保持合規。

身份和訪問管理是原生容器平臺管理中的一個問題,也是 Portainer 解決的問題。它使您能夠將具有預設功能限制的特定角色分配給使用者和團隊,甚至可以巢狀角色以建立細粒度的訪問許可權。

此外,Portainer 還會自動記錄圍繞容器管理採取的所有操作,捕獲有關誰建立、維護甚至刪除容器的詳細資訊——幫助您追溯組織中可能發生的任何問題。

搬運工架構

架構.png

Portainer 由兩個元素組成:** Portainer 伺服器和 Portainer 代理**。

  • Portainer Server 和 Portainer Agent 在您現有的容器化基礎架構上作為輕量級容器執行。

  • Portainer 代理應部署到叢集中的每個節點,並配置為向 Portainer 伺服器容器報告。單個 Portainer 伺服器將接受來自任意數量的 Portainer 代理的連線,從而提供從一個集中式介面管理多個叢集的能力。為此,Portainer Server 容器需要資料永續性。

  • Portainer Agents 是無狀態的,資料被傳送回 Portainer Server 容器

搬運工的特點

  • 應用程式部署 - 透過手動 GUI 或簡單 GitOps 管理容器化應用程式的部署

  • 可觀察性和分類 - 監控容器化應用程式的效能和行為。

  • 集中式 IAM - 控制誰可以在您的環境中做什麼、何時以及為什麼。

  • 平臺管理 - 設定和配置您的環境 - 本地、雲端或邊緣。

搬運工產品

Portainer 有兩個版本:Community Edition (CE) 和 Business Edition (BE)。

💥 搬運工 CE

它是一個開源軟體,旨在供個人使用並受到充滿活力且不斷增長的社群使用者的支援。

Portainer 社群版 (CE) 是基礎。 CE 擁有超過 50 萬的普通使用者,是一個功能強大的開源工具集,可讓您輕鬆構建和管理 Docker、Docker Swarm、Kubernetes 和 Azure ACI 中的容器

💥 英國搬運工

它是一種商業許可和受支援的產品,可將企業功能新增到 CE 以支援企業需求,並且旨在用於專業用途。

Portainer Business Edition (BE) 是商業產品。 Portainer BE 具有面向企業和大型組織的功能,例如基於角色的訪問控制、登錄檔管理和專用支援,是一個強大的工具集,可讓您輕鬆構建和管理 Docker、Docker Swarm、Kubernetes 和 Azure ACI 中的容器

安裝

根據您的要求檢視官方文件進行 Portainer 安裝。

💥 在這篇部落格中,我將使用 helm 來安裝 Portainer。

🔰 先決條件

  1. 一個工作的和最新的 Kubernetes 叢集。

  2. 有權在叢集上執行 helm 或 kubectl 命令。

  3. Kubernetes 叢集的叢集管理員許可權。這樣 Portainer 就可以建立必要的 ServiceAccount 和 ClusterRoleBinding 來訪問 Kubernetes 叢集。

  4. 配置了預設的 StorageClass。

所以,讓我們開始吧🚀🥳

👉 透過在叢集上執行以下命令來檢查您是否有預設的 StorageClass:

kubectl get sc

📌 如果儲存類沒有設定為預設,那麼我們可以使用下面的命令來設定一個預設的儲存類。

kubectl patch storageclass <storage-class-name> -p '{"metadata": {"annotations":{"storageclass.kubernetes.io/is-default-class":"true"}}}'

📌 替換為您的 StorageClass 的名稱。或者,如果您使用我們的 Helm chart 進行安裝,您可以在 helm install 命令中傳遞以下引數來指定要用於 Portainer 的 StorageClass:

--set persistence.storageClass=<storage-class-name>

📌 就我而言,它已經設定為預設值。

截圖 (1095).png

👉 現在,透過執行以下命令新增 Portainer Helm 儲存庫:

helm repo add portainer https://portainer.github.io/k8s/
helm repo update

截圖 (1096).png

👉 安裝 helm chart:

helm install --create-namespace -n portainer portainer  portainer/portainer

截圖 (1094).png

👉檢查服務

kubectl get svc -n portainer

截圖 (1097).png

👉 要從本地環境的 30777 埠訪問 portainer 服務,可以使用 port-forward 命令將流量轉發到本地系統:

kubectl port-forward -n portainer svc/portainer 30777:9000

截圖 (1077).png

👉 開啟網路瀏覽器並導航到以下 URL:

http://localhost:30777 or http://localhost:30779/  or http://localhost:30776/

截圖 (1076).png

📌 現在,設定使用者名稱和密碼,然後點選 create user

截圖 (1098).png

📌 點選開始

截圖 (1080).png

現在,我們都準備好探索 Portainer UI 🥳

🔰 選擇我們的環境,然後我們將登陸到儀表板,從中我們可以管理叢集。

截圖 (1081).png

截圖 (1082).png

現在,讓我們動手實踐一下🚀

📌 點選 Namespace ,你會看到預設的 Namespace

截圖 (1084).png

📌 點選 Add Namespace with form

重新命名.png

📌 給出名稱,設定記憶體和 CPU 使用率,然後點選建立名稱空間

截圖 (1085).png

📌 讓我們看看名稱空間列表

截圖 (1087).png

所以,我們已經成功建立了我們的名稱空間🤩

👉現在。讓我們在上面建立的自己的名稱空間中建立一個應用程式。

📌 點選申請

應用程式.png

📌 點選新增申請表格

截圖(1088).png

📌 從下拉選單中選擇我們建立的名稱空間,提供應用程式名稱、影像名稱,然後選擇服務型別。

截圖 (1089).png

截圖 (1090).png

📌讓我們看看申請清單

截圖 (1091).png

Wooooh,我們已經成功建立了我們的應用程式🥳

結論

Portainer 是一款出色的工具,可用於透過簡單直觀的 Web 使用者介面管理 Docker 容器、Swarm 服務和其他資源。 Portainer 提供了一些免費功能和付費外掛,可以增強使用者管理 Docker 叢集的體驗。另一方面,一些付費外掛仍然有一些限制或缺少可以改進產品的功能。

轉https://devpress.csdn.net/k8s/62f9a1c9c6770329307ff0dc.html

相關文章