Portainer - 用于管理容器的 UI-k8s
简介
🔰什么是Portainer?
Portainer 是一个开源的轻量级管理 UI,它允许我们在 Docker、Docker Swarm、Kubernetes 和 Azure ACI 中轻松构建和管理容器,例如管理 Swarm 服务的创建和删除、用户身份验证、授权、连接、执行命令运行容器的控制台,并查看容器的日志。
Portainer 由一个可以在任何集群上运行的容器组成。它可以部署为 Linux 容器或 Windows 原生容器。
它是世界上使用最广泛的容器管理平台,在 GitHub 上拥有超过 650,000 名用户和 21,700 颗星。
🔰 为什么选择 Portainer 🤔
Portainer 的目标是提供真正与平台无关的世界级容器原生应用程序部署和管理工具。为了实现这一点,他们使底层容器管理平台(例如,Kubernetes)对只想管理其应用程序的工程师不可见。如果您使用 Portainer,我们无需成为专家即可使用容器平台。
✅ Portainer 简化了容器管理的操作
使用 Portainer,工程师可以部署和查看单个容器的状态,在必要时重新启动和调试它们——所有这些都无需使用命令行。 Portainer 还可以深入了解正在运行的内容、运行的位置以及运行方式,这有助于工程师优化应用程序性能。
由于 Portainer 连接到您的所有主机和平台,因此您可以在单个网页上获得完整的可见性,从而无需连接到每个单独的容器来检查其状态。这节省了大量时间,让工程师专注于重要的事情。
✅ Portainer 提供符合 IT 治理最佳实践的企业敏感工具
技术领导者需要能够以安全、可重复和可扩展的方式管理应用程序。 Portainer 提供了一个结构化的框架来实现这一点,并使团队能够协同工作。这可以降低您的业务风险,并帮助您在部署和管理应用程序的方式上保持合规。
身份和访问管理是原生容器平台管理中的一个问题,也是 Portainer 解决的问题。它使您能够将具有预设功能限制的特定角色分配给用户和团队,甚至可以嵌套角色以创建细粒度的访问权限。
此外,Portainer 还会自动记录围绕容器管理采取的所有操作,捕获有关谁创建、维护甚至删除容器的详细信息——帮助您追溯组织中可能发生的任何问题。
搬运工架构
Portainer 由两个元素组成:** Portainer 服务器和 Portainer 代理**。
-
Portainer 代理应部署到集群中的每个节点,并配置为向 Portainer 服务器容器报告。单个 Portainer 服务器将接受来自任意数量的 Portainer 代理的连接,从而提供从一个集中式界面管理多个集群的能力。为此,Portainer Server 容器需要数据持久性。
-
Portainer Agents 是无状态的,数据被传送回 Portainer Server 容器。
搬运工的特点
-
可观察性和分类 - 监控容器化应用程序的性能和行为。
-
集中式 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。
🔰 先决条件
-
一个工作的和最新的 Kubernetes 集群。
-
有权在集群上运行 helm 或 kubectl 命令。
-
Kubernetes 集群的集群管理员权限。这样 Portainer 就可以创建必要的 ServiceAccount 和 ClusterRoleBinding 来访问 Kubernetes 集群。
-
配置了默认的 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>
📌 就我而言,它已经设置为默认值。
👉 现在,通过运行以下命令添加 Portainer Helm 存储库:
helm repo add portainer https://portainer.github.io/k8s/
helm repo update
👉 安装 helm chart:
helm install --create-namespace -n portainer portainer portainer/portainer
👉检查服务
kubectl get svc -n portainer
👉 要从本地环境的 30777 端口访问 portainer 服务,可以使用 port-forward 命令将流量转发到本地系统:
kubectl port-forward -n portainer svc/portainer 30777:9000
👉 打开网络浏览器并导航到以下 URL:
http://localhost:30777 or http://localhost:30779/ or http://localhost:30776/
📌 现在,设置用户名和密码,然后点击 create user
📌 点击开始
现在,我们都准备好探索 Portainer UI 🥳
🔰 选择我们的环境,然后我们将登陆到仪表板,从中我们可以管理集群。
现在,让我们动手实践一下🚀
📌 点击 Namespace ,你会看到默认的 Namespace
📌 点击 Add Namespace with form
📌 给出名称,设置内存和 CPU 使用率,然后点击创建命名空间
📌 让我们看看命名空间列表
所以,我们已经成功创建了我们的命名空间🤩
👉现在。让我们在上面创建的自己的命名空间中创建一个应用程序。
📌 点击申请
📌 点击添加申请表格
📌 从下拉列表中选择我们创建的命名空间,提供应用程序名称、图像名称,然后选择服务类型。
📌让我们看看申请清单
Wooooh,我们已经成功创建了我们的应用程序🥳
结论
Portainer 是一款出色的工具,可用于通过简单直观的 Web 用户界面管理 Docker 容器、Swarm 服务和其他资源。 Portainer 提供了一些免费功能和付费插件,可以增强用户管理 Docker 集群的体验。另一方面,一些付费插件仍然有一些限制或缺少可以改进产品的功能。
转https://devpress.csdn.net/k8s/62f9a1c9c6770329307ff0dc.html