关于搬运工

搬运工已于 2020 年 11 月 18 日添加到 CNCF。

Portainer 是通用容器管理系统,是 Kubernetes、Docker 和 ACI 的权威开源 UI 解决方案。它抽象了传统上与编排引擎相关的所有复杂性,背后是一个简单的**“点击配置”**界面,使每个人都可以访问 Kubernetes,而不会强迫任何人在功能或能力上妥协。

Portainer 简化了容器操作,因此您可以更快地将软件交付到更多地方。

什么是容器

容器是包含在任何环境中运行的所有必要元素的软件包。通过这种方式,容器虚拟化了操作系统并在任何地方运行,从私有数据中心到公共云,甚至在开发人员的个人笔记本电脑上。

要了解更多信息,请查看我关于的博客“虚拟化、管理程序和容器简介”。

Portainer 入门

image.pngPortainer 有两个单独的版本,商业版(BE)和社区版(CE)。

社区版是免费的,由开源软件社区提供支持。

商业版具有完全支持的产品,这些产品添加了大多数组织所需的安全、审计和自动化功能。从这里开始演示。

image.png

我们将安装和使用社区版。

安装搬运工

在继续安装 Portainer 社区版之前,请检查要求和先决条件。

如果你有Docker和/或Kubernates,现在是检查它们的版本和兼容性的好时机。

全新安装

根据您的要求和您使用的操作系统进行新安装。您可以从这里设置一个新的安装。

向现有安装添加环境

如果您想在现有的 Portainer 安装中添加另一个环境,请首先选择您要添加的环境类型,然后按照此页面进行安装。

搬运工架构

Portainer 是一个用于容器化应用程序的“通用”服务交付平台。它可以部署在任何 Kubernetes、Docker 或 Docker Swarm 环境中,部署后,可用于简化容器化应用程序的部署、对性能问题进行分类和管理平台治理。

Portainer 可以部署在本地、云中、跨混合云和边缘,以独特的方式为用户提供通过单个界面的多个容器环境的可见性。

Portainer 可通过任何通过 HTTPS 的网络浏览器访问。角色权限全部通过完全集成的 RBAC 引擎进行控制,以确保没有人可以访问他们不应该拥有的功能。 Portainer CE 支持具有 2 个角色的基本 RBAC,而 Portainer Business Edition 支持更丰富的角色集。

Kubernetes 兼容 API 是 Portainer CE 和 Portainer BE 的一部分,允许 Portainer 用作第三方开发人员工具和集群之间的安全管道。它使开发人员能够使用他们喜欢的任何工具,同时让他们的访问权限由 Portainer 管理。

features.png

image.png

搬运工的特点

1.应用部署

Portainer 拥有自己的简化 GUI,让用户可以轻松上手。对于高级用户,Portainer 包含一个 API,允许它连接到 CI/CD 工具或第三方仪表板/部署工具。

Portainer 帮助开发人员将云原生应用程序部署到容器中简单、快速、安全。

手动部署选项

Portainer 旨在提供包含的服务,并为用户提供有限的零知识容器使用“点击部署”引导程序来快速启动和运行常用应用程序。

对于应用程序模板,用户只需要部署一个应用程序,根据需要调整/配置它,然后将其保存为“点击部署”模板

Portainer 支持 Kubernetes 集群的 HELM 图表,并为用户提供部署通过 Bitnami HELM 存储库提供的任何应用程序的能力。

基于代码的部署适用于希望对其应用程序的部署进行更严格控制的更有经验的用户

自动化部署选项

Portainer 还可以用作持续部署系统,并允许 DevOps 专业人员将 Portainer 连接到他们的 Git 存储库。

Portainer 将自动部署存储库中定义的任何应用程序,并确保将 Git 存储库中所做的更改传播到正在运行的应用程序。这是一个非常强大的功能。

2.可观察性

要正确监控基于容器的应用程序,您需要对底层容器平台具有直接和深入的可见性。容器可能会在几秒钟内崩溃并重新调度,这通常意味着最终用户可能不会注意到故障,但这并不意味着没有问题。

日志记录

Portainer 能够在单个容器/pod 级别或通过聚合的服务/应用程序视图显示您的应用程序日志。日志在容器的生命周期内保持可见,并通过 Portainer GUI 呈现给用户。 Portainer 甚至允许将日志保存在本地,以进行深入的取证分析

集群可视化

Portainer 还包括一个集群可视化器,允许用户快速查看其应用程序的哪些组件在哪些物理主机上运行。此功能可用于验证负载平衡是否按预期工作或是否已遵守任何放置约束。

Portainer 能够为环境中运行的每个容器/pod 显示交互式控制台,当您需要准确了解正在发生的事情并能够直接在运行的应用程序环境中进行分类时,这是一个很好的故障排除工具.

性能可视化

Portainer 通过仪表板显示集群上运行的所有应用程序的实时性能。它为堆栈中的每个容器/pod 合并了 CPU/RAM/磁盘/网络统计数据的实时流。

3.治理与安全

默认情况下,像 Kubernetes 这样的编排平台是不安全的,这对于任何希望以任何规模部署 K8s 的组织来说都是一个问题。

Portainer 通过允许平台工程师控制谁可以做什么、记录谁做什么以及提供备份和恢复 Portainer 配置数据库的能力,帮助平台工程师保护他们的环境。 RBAC 和 oAuth 是治理框架的基石。

Portainer 的核心是一个强大的策略和治理平台,也是 IT 堆栈中的一个基本元素。

身份管理

Portainer 为 OAuth 提供了一个超级简单的“点击配置”接口,允许即时连接到 Azure AD、GitHub Auth 和 Google Auth;而 Portainer Business 和 Portainer Community 都支持“自定义”OAuth 字段,允许手动连接到任何其他符合 OAuth 的源。

访问管理

用户可以看到什么以及他们可以在 Portainer 中做什么是基于他们自己分配的访问控制和他们团队的访问控制的组合来控制的。

安全

Portainer 为管理员提供了启用或禁用用户访问对每个有助于管理风险的风险技术组件的能力。当然,完全安全的环境仍然可以运行应用程序;但是,这些应用程序在构建时需要考虑到这种级别的安全控制。

审核日志

Portainer 提供所有用户身份验证请求的日志,并记录每次登录的成功或失败,作为用户与 Portainer 互动时间的记录。此日志会在被清除之前保留一周。身份验证日志主要用于在暴力密码登录机器人尝试以用户身份登录时提醒管理员。

备份与恢复

Portainer 是一个基础设施组件,因为它提供了用户和容器平台之间的网关,所以它拥有大量的配置信息。所有用户访问控制信息、部署位置的连接信息以及所有应用程序部署定义文件都保存在 Portainer 数据库中。

4.平台管理

Portainer 的平台管理功能允许工程师配置编排器,然后设置配置“规则”,定义平台用户(通常是开发人员)在环境中可以做什么和不可以做什么。

注册表管理

Portainer 允许您定义任意数量的容器注册表 - 公共或私有、安全或开放 - 然后允许您将访问权限分配给用户。

只有授权用户才能从任何给定的注册表中提取/推送,这使得 Portainer 成为保护对内部容器映像存储库的访问的好方法,也是一种定义和保护整个组织访问的简单方法。

存储管理

鉴于应用程序的不同需求,管理持久存储在任何容器化环境中都是一项挑战。 Portainer 使用户的存储配置和管理变得非常简单。

  • Docker 配置 - Portainer 支持针对 docker 主机上的本地路径、CIFS 共享或 NFS 挂载创建持久卷。

  • Volume Browsing - Portainer 为授权用户提供浏览附加到容器的持久卷的能力。用户可以直接与卷内容交互,上传/下载文件或重命名/删除。

  • Kubernetes 容量管理 - 在 Kubernetes 环境中,Portainer 允许用户在创建时指定其请求卷的最大大小。

网络管理

确保应用程序在集群内正确联网至关重要,而 Portainer 让这一切变得简单。对于 Docker,您可以创建和使用额外的网桥、覆盖或 MACVLAN 网络。对于 Kubernetes,您可以跨集群配置和使用 Ingress 和 Load Balancer。

  • Kubernetes:应用程序负载平衡 - Portainer 允许用户通过 Kubernetes 入口控制器(反向代理)发布他们的应用程序,其中包括定义 HTTP 路由、重写标头或执行 SSL 卸载。

  • Kubernetes:网络负载均衡 - Portainer 允许用户通过 Kubernetes 负载均衡器(或 Swarm Ingress)发布他们的应用程序,这使得他们的应用程序能够在整个集群中全局可见。

  • Kubernetes 集群访问和集群创建 - 将 Kubectl 本地集成到 Portainer 中,以帮助用户对 Kubernetes 应用程序进行故障排除,而无需离开 Portainer UI。

  • Portainer 作为第三方容器环境的代理 - Portainer 能够用作 CE 2.9.1 中第三方容器环境的安全认证代理。这允许平台和 DevOps 工程师将 Portainer 与第三方 CI/CD 工具无缝集成,并构建安全的端到端自动化交付工作流。

跑步搬运工

使用终端或命令提示符,通过运行以下命令创建便携式_data 磁盘

docker volume create portainer_data

数据卷“portainer_data”在您的硬盘驱动器上创建,它将存储您的配置数据。在没有它的情况下,数据将存储在容器中,并且每次重新启动时都会丢失。

使用命令启动 Portainer 容器。

docker run -d -p 8000:8000 -p 9000:9000 --name=portainer --restart=always -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer

cmd.png

如果你的系统上不存在docker镜像,它会从docker hub分层拉取docker镜像。现在您的 Portainer 正在运行。

连接搬运工

连接到 Portainer 就像安装 Portainer 一样简单。在浏览器中输入localhost:9000以连接到 Portainer。输入新密码并确认新密码。

cmd.png

登录后,您将看到此页面。 Portainer 支持多种选项,我们将选择 Manage the Local Docker Environmentimage.png

连接到本地 Docker 环境后,你会发现自己在这个菜单中运行 Portainer!✨

image.png

仪表板

单击本地 Docker 实例以查看 Docker 仪表板,该仪表板显示了当前运行的所有 Docker 进程的高级概述。

image.png

玩转设置,您会在页面的菜单部分找到我们迄今为止在博客中列出的所有内容。

  • App 模板 - “点击配置”模板。

image.png

  • Containers - 可用的容器。

image.png

  • 图像 - 可用图像列表。您甚至可以从 docker hub 拉取图像。

image.png

  • Host - 列出有关主机的所有详细信息。

image.png

  • Users - 添加用户、分配角色和添加团队

image.png

  • Settings - 启用和禁用安全设置。这些设置相当直观,大多数都集中在限制授予非管理员的权力。

image.png

Portainer 默认使用自己的内部用户管理系统,您可以选择 LDAP 服务器或 OAuth 提供程序。通过选择一种方法然后填写表单中的字段来设置您的首选身份验证方法。

image.png

常见问题

概念

如果您仍然不确定 Portainer 的概念,请访问官方常见问题解答页面,您的问题很可能已经得到解答。

安装

如果您在安装时遇到问题,请查看安装常见问题解答部分以解决您的问题。

升级中

想了解如何升级您的 Portainer,在这里查看资源。

故障排除

如果您在设置或使用 Portainer 时遇到问题,可以在此处查看故障排除页面。

贡献

在您了解什么是 Portainer 之后,我鼓励您查看部分。如果您还没有开源并在贡献的过程中建立您的个人品牌,这将是一个很好的方式。

结论

现在,您已经了解并了解了通用容器管理系统 Portainer。 出去为你自己或你的组织设置它。我是学习和实施的大力倡导者,我建议你也这样做。

通过撰写有关 Portainer 的博客、制作视频或 Twitter 线程来分享您使用 Portainer 的经验作为“Portainer 实验笔记”!

使用命令行很酷,但是当您在企业环境中工作时,让您的工作变得轻松的简单 GUI 是一份礼物。在我看来,Portainer 是一个非常强大的工具,它可以让你开始并完成很多重要的事情。

在编写有关 Portainer 的深入指南的过程中,我也学到了很多关于 Portainer 的用例。一起学习加油!✨

连接Portainer

  • Youtube

  • 松弛

  • 不和谐

随意问任何关于 Portainer 工具的问题 在 Slack 的 General 频道中或前往 Github。为确保您及时准确地回答您的问题,请确保您提供以下信息:

  • 你运行的是什么版本的Portainer:

  • 如果您使用的是 Docker、Swarm 或 K8S:

  • 你在什么操作系统(windows/Linux):

  • 用于启动 Portainer 的命令:

  • 你用的是什么浏览器:

  • 您是在家中还是在商业环境中使用 Portainer:

  • 您是否查看过我们的技术文档和知识库:

论坛不只是供您提问,Portainer 欢迎所有参与 - 如果您看到弹出的问题可以提供帮助,然后加入并建立您的个人公开资料。

资源

  • 搬运工 101

  • 搬运工文档

  • Portainer Github repo

  • 管理多台主机,视频

  • Portainer 2.9 演练,视频

  • 搬运工要求和先决条件

  • 搬运工松弛

  • 搬运工架构

  • Portainer 作为 Docker 桌面扩展

Logo

ModelScope旨在打造下一代开源的模型即服务共享平台,为泛AI开发者提供灵活、易用、低成本的一站式模型服务产品,让模型应用更简单!

更多推荐