一个能将 Docker、Docker-compose、Kubernetes 统一管理的平台!有点牛逼~

2024-08-19 16:37:24 浏览数 (2)

大家好,我是民工哥!

Docker 和 Kubernetes(简称K8s)的广泛应用为容器化和云原生应用部署带来了诸多便利,随着容器化应用的增多和复杂性的增加,运维和监控的难度也会逐渐增大。企业需要建立有效的运维和监控体系,包括日志收集、性能监控、告警通知等功能,以确保应用的稳定性和性能。

然而,首先需要解决的就是如何统一管理不同的环境(企业都会有多种模式并存),今天,就给大家推荐一个能将 Docker、Docker-compose、Kubernetes 三者统一管理的平台,它就是:Portainer

Portainer 简介

Portainer 是一款开源的轻量级容器管理工具,它主要用于简化Docker容器的部署、管理和监控。

Portainer 提供了直观的图形用户界面(GUI),使用户能够轻松地通过Web界面管理Docker容器、镜像、网络和数据卷等。

  • Github地址
    • https://github.com/portainer/portainer
  • 官网地址
    • https://www.portainer.io/

Portainer 主要功能

容器管理:用户可以通过Portainer进行容器的创建、启动、停止、删除等操作,方便快捷。

镜像管理:支持镜像的拉取、推送、删除等操作,方便用户管理Docker镜像。

资源监控:提供实时的容器资源使用情况监控和统计功能,用户可以查看容器的CPU、内存、网络和磁盘等资源使用情况。

多集群管理:Portainer支持一次性管理多种类型的多个集群,从个人计算机到企业级部署,都能轻松应对。

用户和团队管理:支持用户和团队的管理,可以设置不同的用户角色和权限,以控制用户对Docker资源的访问和操作。

日志查看与导出:用户可以通过Portainer查看容器的日志信息,并支持将日志导出为文件,方便问题排查和故障分析。

产品特点

易用性:Portainer提供了直观易用的图形用户界面,用户无需深入学习命令行工具,即可轻松管理Docker容器和相关资源。

灵活性:Portainer支持多种部署模式,可以在单机环境或多机集群环境中部署和管理Docker容器。

扩展性:Portainer分为企业版(Portainer Business Edition)和社区版(Portainer Community Edition),企业版提供了更多高级特性和功能,如RBAC(基于角色的访问控制)等。

多平台支持:Portainer可以在Linux或Windows服务器上本地安装,也可以作为Docker容器快速部署。

Portainer 架构与组件

Portainer 集群由两个主要部分组成:Portainer Server和Portainer Agent。

Portainer Server:内置了 Portainer API 和 Portainer UI。Portainer API 作为核心的业务逻辑处理单元,提供了 RESTful API接口,实现了用户权限管理、容器编排、镜像管理、网络管理等功能。Portainer UI 则提供了Web界面,方便用户通过浏览器访问和管理 Portainer服务。

Portainer Agent:部署在集群中的每个节点,并配置为向Portainer Server报告数据。Portainer Agent负责与Docker引擎、kubelet等通信,并收集和传递容器和镜像等信息,从而实现了Portainer对Docker和Kubernetes等容器技术的管理和监控。

Portainer 安装与部署

Portainer 的安装和部署非常简单,可以直接通过Docker容器快速部署。用户也可以通过Docker Compose配置文件来部署Portainer,以实现更复杂的配置和自动化部署。

Portainer 服务端安装

代码语言:javascript复制
# 创建存储卷
$ docker volume create portainer_data

# 启动服务
docker run -d -p 8000:8000 -p 9443:9443 
  --name portainer 
  --restart=always 
  -v /var/run/docker.sock:/var/run/docker.sock 
  -v portainer_data:/data 
  portainer/portainer-ee:latest

启动完成后,直接通过浏览器访问 https://localhost:9443 登录,并进行初始化创建账号:

Portainer 客户端安装

我们将 Portainer Agent 安装到所需管理的 Docker 主机或 K8S 集群中,然后在管理界面来选择创建环境进行添加管理即可,如下:

选择需要添加的平台即可

如果需要将Docker主机纳入管理,则需要在所要管理的Docker上先运行下面的命令:

代码语言:javascript复制
docker run -d 
  -p 9001:9001 
  --name portainer_agent 
  --restart=always 
  -v /var/run/docker.sock:/var/run/docker.sock 
  -v /var/lib/docker/volumes:/var/lib/docker/volumes 
  portainer/agent:2.19.4

然后将相关信息填入即可:

更多关于管理Docker 主机的操作,请参阅:https://docs.portainer.io/admin/environments/add/docker和https://docs.portainer.io/admin/environments/add/swarm 这两个文档资料。

管理 K8S 集群

首先需要选择 NodePort 或者load balancer方式暴露端口,然后在需要在要管理的K8S集群主机上通过 Kubectl 上运行以下的命令:

代码语言:javascript复制
#NodePort 方式
kubectl apply -f https://downloads.portainer.io/ce2-19/portainer-agent-k8s-nodeport.yaml

然后填写相关信息即可:

也可以通过导入的方式来管理现有的K8S集群,方法如下:

选择 Kubernetes 选项,然后单击 Start Wizard。然后选择“导入”选项。输入集群的名称,然后单击“选择文件”以浏览 kubeconfig 文件。

填写完成之后,单击“连接”按钮即可。

管理指定的云厂商集群

Portainer 支持直接从界面内选择指定云厂商上配置新的 Kubernetes 环境,让您可以启动新的云 Kubernetes 环境,并只需单击几下即可部署 Portainer 代理。

选择 Provision KaaS Cluster 选项,然后单击 Start Wizard。

以选择 AWS 为例说明。如果您尚未为 AWS 配置凭证,系统会要求您立即提供这些凭证。输入凭据的名称,然后输入您的访问密钥 ID 和秘密访问密钥。完成此操作后,单击“保存”.

单击“Provision environment”以开始配置。

总结

Portainer 适用于各种规模的容器环境,从个人开发者到大型企业都能找到其应用场景。对于小型和中型项目,Portainer提供了简单易用的容器管理界面;而对于需要大规模容器编排和管理的生产环境,如微服务架构、分布式系统等,Portainer也提供了足够的灵活性和可扩展性。

总的来说,Portainer 是一个功能丰富、易于使用的Docker容器管理工具,它通过直观的图形用户界面简化了 Docker 的管理工作,提高了开发者和系统管理员的工作效率。

0 人点赞