︿
Top

可視化工具 Portainer for Docker


Portainer 是一款主打將 docker 可視化的 Dashboard 管理工具,近年來也支援了 Kubernetes,其簡單清爽易用的設計成為了多數容器玩家的優先選擇。

Portainer 區分為社群版 Portainer-CE 和企業版 Portainer-EE(Business Edition),主要差別在於提供了多租戶功能與日誌稽核審查…等,目前企業版僅提供 3 個節點內可無償體驗,注意!這邊的三個節點是指主機數量,比如我想在我的 Environments 中添加一個擁有 4 個 nodes 的 Kubernetes Cluster 這樣是不行的唷。

企業版相較於社群版本增強的功能如下:
  • Role Based Access Controls (RBAC)
  • Authentication and Activity Audit Logging
  • Enhanced Support for OAuth
  • Private Registry Management
  • Advanced GitOps
  • Resource Management Quotas
  • Automatic Backups to S3
  • And more. View all Business Edition features



特別聊聊多租戶功能

個人或小工作室使用還行、企業組織就不用想了,Portainer-EE 的多租戶功能分為用戶、群組、角色,比較可惜的是 Roles 皆為系統預設提供的設計,無法自定義,也無法禁止或允入個別 nodes 或 namespaces,細節權限部分對於 docker nodes 也許仍有餘裕,但對於 Kubernetes Cluster 的 RBAC 就真的差點意思了





先決條件:作業系統需事前安裝好 docker 或 podman
系統套件:docker v20.10.24、docker-copose-plugin v2.27.0
實驗版本:Portainer-CE Version 2.29.2 STS、Portainer-EE Version 2.33.1 LTS

安裝 Portainer-CE

官方網站有 docker 指令部署的安裝教學,習慣用 docker compose 來管理的同學可以參考以下配置

services:
  portainer:
    container_name: portainer
    image: portainer/portainer-ce:2.29.2
    ports:
      - 8000:8000
      - 9000:9000
      - 9443:9443
    volumes:
      - /opt/portainer/data:/data
      - /var/run/docker.sock:/var/run/docker.sock
      restart: always
[root@docker ~]# docker compose up -d

網址輸入 https://YourDockerIP:9000,初次登入 Portainer 頁面設置管理員密碼,密碼原則需12碼以上,可以先行配置,稍後再於後台 Settings 調整密碼原則





體驗 Portainer

初次登入會先引導到精靈頁面,Get Started 直接開局,右邊 Add Environments 可添加其他的 docker 主機或 Kubernetes 叢集


點選直接開始後可以看到安裝 Portainer 的 docker 主機已自動被添加到管理節點,我們點進去看看


Stack:可以理解為 docker compose 的列表
Container:管理該主機節點上啟動的容器
Images:主機節點上存儲的鏡像檔,會標示出未使用的鏡像易於管理清理
Volume:主機節點上掛載的路徑空間,會標示出未使用的 Volumes 易於管理清理


Templates 是 Portainer 很實用的功能,可以想像成是應用程式市集,一鍵點擊即可完成應用程式部署,對於新手玩家來說非常方便


我們隨便選擇一個應用,按下「Deploy the container」來自動部署一個 redmine 容器


沒過多久就部署好囉!


從列表中的 Quick Actions 快捷小圖標裡面可以輕鬆看到任一 container 的 Inspect、logs、資源監控還有超方便的 container console



根據列表上的 publicshed ports 透過區網的瀏覽器測試 redmine 是否成功部署無誤


VolumesImages 是很便於管理的功能,可以輔助管理員輕鬆從列表移除已經沒有使用的暫存 volumes 或多餘的 docker 鏡像檔


回到 Environments 我們嘗試添加其他欲控管的 docker 主機



Portainer 提供了幾種方法來添加被管控的節點,一般多選擇 Agent、Socket的方式,本例選擇的 Agent 是在欲被管控的節點上透過執行下方提示的 docker 指令起一個 portainer agent 容器,以便其被 Portainer 控制


如此這般,便可透過一個入口來管控多台 docker host 或者是多個 Kubernetes Cluster 啦~



tomy

來自台灣的系統工程師,一直熱衷於 Open source 相關技術的學習、建置、應用與分享。

  • Image
  • Image
  • Image
  • Image
  • Image

0 Comments:

張貼留言