云原生之容器管理工具Portainer

1. 简介        

        前面文章我们讲Docker、Docker Compose和Docker Swarm都是在Linux系统上手工命令行去操作,在第一次安装的时候可以命令行,以后运维和CICD流程操作中,如果还要命令行去各个节点操作,操作就麻烦了,工作效率就低了,我们需要有一个集中管理的系统,而且是web界面化的管理系统,而且是开源的,Portainer正是这样的系统。

        Portainer是一款开源的容器管理工具系统,旨在简化Docker容器和Kubernetes集群的管理。通过提供一个直观的Web界面,Portainer可以帮助用户轻松地创建、管理和维护容器,而无需使用复杂的命令行工具。

        Portainer系统开源代码托管在github上:https://github.com/portainer/portainer。

        Portainer提供两个版本:社区版和企业版。

        Portainer Community Edition is a lightweight service delivery platform for containerized applications that can be used to manage Docker, Swarm, Kubernetes and ACI environments. It is designed to be as simple to deploy as it is to use. The application allows you to manage all your orchestrator resources (containers, images, volumes, networks and more) through a ‘smart’ GUI and/or an extensive API.

        Portainer consists of a single container that can run on any cluster. It can be deployed as a Linux container or a Windows native container.

        Portainer Business Edition builds on the open-source base and includes a range of advanced features and functions (like RBAC and Support) that are specific to the needs of business users.

2. 架构

        Portainer由两个元素组成:Portainer服务器和Portainer代理。两者都作为轻量级容器在现有的容器化基础设施上运行,如Docker Swarm集群上运行。Portainer代理应该部署到集群中的每个节点,并配置为向Portainer Server容器报告。

        单个Portainer服务器将接受来自任意数量Portainer代理的连接,从而能够从一个集中式接口管理多个集群。为此,PortainerServer容器需要数据持久性。Portainer代理是无状态的,数据被运回Portainer服务器容器。

3. 安装

        这里单讲社区版的安装,Portainer社区版提供三种安装方式:Docker standalone、Docker Swarm、Kubernetes。官网文档:Install Portainer CE - Portainer Documentation。

        其实安装都及其简单,我的开发环境安装采用Docker Swarm方式,这里简述一下。我们采用docker-compose.yml来编排安装最方便了:

version: '3.2'services:agent:image: portainer/agent:2.0.0volumes:- /var/run/docker.sock:/var/run/docker.sock- /var/lib/docker/volumes:/var/lib/docker/volumesnetworks:- agent_networkdeploy:mode: globalplacement:constraints: [node.platform.os == linux]portainer:image: portainer/portainer-ce:2.0.0command: -H tcp://tasks.agent:9001 --tlsskipverifyports:- "9000:9000"- "8000:8000"volumes:- portainer_data:/datanetworks:- agent_networkdeploy:mode: replicatedreplicas: 1placement:constraints: [node.role == manager]networks:agent_network:driver: overlayattachable: truevolumes:portainer_data:

        我的Docker版本是:

$ docker version
Client: Docker Engine - Community
 Version:           20.10.16
 API version:       1.41
 Go version:        go1.17.10
 

Server: Docker Engine - Community
 Engine:
  Version:          20.10.16
  API version:      1.41 (minimum version 1.12)
  Go version:       go1.17.10
 containerd:
  Version:          1.6.4

        安装执行一行命令即可:

docker stack deploy -c docker-compose.yml portainer

        可以在docker swarm管理节点执行命令来查看,你将看到两个service:

docker service ls| grep portainer

4. Web管理        

        安装完毕之后,我们可以访问其Web管理系统地址,例如我的开发环境url地址是:http://192.168.1.10:9000/。

        从上图可以看到,Portainer可以对stack、service、container、image、volume、networks、config等进行界面化集中管理,这样大大简化了我们对Docker Swarm集群的运维工作。 

5. 实用工具

        虽然说运维管理要用Portainer Web管理系统来进行操作,但是CI/CD管道流水线的一切自动化操作,还是需要通过Linux命令行实用工具,可以编写Bash脚本或Python程序来自动化应用程序的安装部署。

        也有好人做了一个开源portainer-stack-utils:GitHub - greenled/portainer-stack-utils: CLI client for Portainer,安装直接看官网文档,这里不累述了。最后的工具是psu:

$ psu -h
A CLI client for Portainer

Usage:
  psu [command]

Available Commands:
  completion  Generate Bash completion scripts
  config      Manage configs
  container   Manage containers
  endpoint    Manage endpoints
  help        Help about any command
  login       Log in to a Portainer instance
  network     Manage networks
  proxy       Start an HTTP proxy to an endpoint's Docker API
  secret      Manage secrets
  service     Manage services
  setting     Manage settings
  stack       Manage stacks
  status      Check Portainer status
  volume      Manage volumes

Flags:
  -A, --auth-token string      Portainer auth token.
  -h, --help                   help for psu
  -i, --insecure               Skip Portainer SSL certificate verification.
      --log-format string      Log format. One of text or json. (default "text")
  -v, --log-level string       Log level. One of trace, debug, info, warning, error, fatal or panic. (default "info")
  -p, --password string        Portainer password.
      --settings-file string   Settings file. (default "$HOME/.psu.yaml)"
  -t, --timeout duration       Waiting time before aborting (like 100ms, 30s, 1h20m).
  -l, --url string             Portainer url.
  -u, --user string            Portainer user.
      --version                version for psu

Use "psu [command] --help" for more information about a command.        

        我在GitLab CICD里使用,通过gitlab-runner来调用psu进行服务部署。

6. API接口

         Portainer系统还提供了API接口,供我们进行二次开发管理,swagger地址:Build, Collaborate & Integrate APIs | SwaggerHub

         

7. 总结

         Portainer是一款开源的容器管理工具系统,通过提供一个直观的Web界面,帮助我们轻松地创建、管理和维护容器,同时也提供实用工具供我们自动化操作使用,还提供API接口供我们进行二次开发管理。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/698097.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

每日学习总结20240222

每日总结 一旦停下来太久,就很难继续了 ——《一个人的朝圣》 20240222 1. 自定义逻辑 请设计一个函数single_track_logic,传入三个参数,第一个参数是int数组,第二个参数是一个int变量,第三个参数是一个以int为返回值&#xff0c…

Android中自定义View时尺寸需要注意的相关事项

前些天发现了一个蛮有意思的人工智能学习网站,8个字形容一下"通俗易懂,风趣幽默",感觉非常有意思,忍不住分享一下给大家。 👉点击跳转到教程 在Android中自定义View时,一定要用dp或者sp不要用px,这样在不同的…

【0266】postmaster创建共享内存(shared memory)、信号量(semaphores)

1. 前言 postmaster守护进程的每次启动过程中,会先执行一次“共享内存、信号量的重置”。 创建或重新创建共享内存和信号量注意:在每个“生命周期”中,我们通常会分配相同的IPC密钥(如果使用SysV shmem和/或semas)。 这有助于确保在postmaster崩溃并重新启动的情况下,我…

【前端素材】推荐优质后台管理系统GramOs平台模板(附源码)

一、需求分析 后台管理系统是一种用于管理网站、应用程序或系统的工具,它通常作为一个独立的后台界面存在,供管理员或特定用户使用。下面详细分析后台管理系统的定义和功能: 1. 定义 后台管理系统是一个用于管理和控制网站、应用程序或系统…

求逆序对的三种姿势

洛谷P1774 题目&#xff1a;登录 - Luogu Spilopelia​​​​​​ 为什么最小的交换次数就是逆序对的个数&#xff0c;请看相关证明 1、归并排序 // 归并排序解法 #include<iostream> #include<cstring> #include<algorithm> using namespace std; con…

MKP勒索病毒:了解.Henderson@cock.li.mkp变种,以及如何保护您的数据

尊敬的读者&#xff1a; 近年来&#xff0c;网络安全威胁不断涌现&#xff0c;其中勒索病毒尤其令人担忧。最新的一种名为[hudsonLcock.li].mkp、[myersairmail.cc].mkp、.Hendersoncock.li.mkp、[datastorecyberfear.com].mkp的勒索病毒已经开始在网络中传播&#xff0c;并且…

pyspark统计指标计算

下面介绍如何使用pyspark处理计算超大数据的统计指标&#xff0c;主要为&#xff1a;最大值、最小值、均值、方差、标准差、中位数、众数、非重复值等。 # 加载稽核数据 rd_sql f"select * from database.table" spark_data spark.sql(rd_sql)# 计算众数 由于spar…

Redis 工具类 与 Redis 布隆过滤器

Redis 工具类 1. 核心依赖 <!--redis--> <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-redis</artifactId> </dependency> <dependency><groupId>com.google.guava…

论文选题分享及思路(一)《基于C51单片机的自动化测量产线的设计》

论文选题分享及思路 题目 《基于C51单片机的自动化测量产线的设计》 核心&#xff1a;使用C51单片机按键控制传送带运动&#xff0c;并增加激光测量高度宽度功能及称重功能。 框架&#xff1a;摘要&#xff0c;题目背景&#xff0c;创新点&#xff0c;设计原理&#xff0c;程…

ubuntu解决“E: Unable to locate package lrzsz“

今天在ubuntu上安装rzsz包时报错&#xff0c;提示无法定位包&#xff0c;提示如下 出现这个问题是因为apt的源没有更新&#xff0c;我们直接说解决办法 把下面的命令执行一遍即可 sudo add-apt-repository main sudo add-apt-repository universe sudo add-apt-repository re…

fly-barrage 前端弹幕库(1):项目介绍

fly-barrage 是我写的一个前端弹幕库&#xff0c;由于经常在 Bilibili 上看视频&#xff0c;所以对网页的弹幕功能一直蛮感兴趣的&#xff0c;所以做了这个库&#xff0c;可以帮助前端快速的实现弹幕功能。 项目官网地址&#xff1a;https://fly-barrage.netlify.app/&#xff…

Redis信创平替之TongRDS(东方通),麒麟系统安装步骤

我的系统: 银河麒麟桌面系统V10(SP1)兆芯版 1.先进入东方通申请使用 2.客服会发送一个TongRDS包与center.lic给你(我这里只拿到.tar.gz文件,没有网上的什么安装版) 3.上传全部文件到目录中 4.服务节点安装,并启动 tar -zxvf TongRDS-2.2.1.2_P3.Node.tar.gz cd pmemdb/bin/…

QT入门看这一篇就够了——超详细讲解(40000多字详细讲解,涵盖qt大量知识)

目录 一、Qt概述 1.1 什么是Qt 1.2 Qt的发展史 1.3 Qt的优势 1.4 Qt版本 1.5 成功案例 二、创建Qt项目 2.1 使用向导创建 2.2 一个最简单的Qt应用程序 2.2.1 main函数中 2.2.2 类头文件 2.3 .pro文件 2.4 命名规范 2.5 QtCreator常用快捷键 三、Qt按钮小程序 …

MySQL5.7.24解压版安装教程

一、MySQL5.7.24解压版安装步骤 1.在指定目录下解压压缩包。比如在D:\Program Files\mysql下解压 2.在D:\Program Files\mysql\mysql-5.7.24-winx64目录下新建data文件夹&#xff0c;如果此目录下没有my.ini也需要手动创建 3.my.ini 文件配置内容如下 [mysqld] # 设置3306端口…

逻辑回归算法概述

逻辑回归算法概述 概述如何调用库函数选择适当的优化算法优化算法的作用逻辑回归 LogisticRegression 中优化算法的选择 其他机器学习算法&#xff1a;机器学习实战工具安装和使用 概述 逻辑回归是一种用于估计某种事物可能性的算法&#xff0c;可用于回归和分类任务。它通过历…

vue3使用百度地图

前情提要&#xff1a; 本文vue采用vue3框架&#xff0c;使用百度地图通过组件vue-baidu-map-3x&#xff1a; 组件官网&#xff1a;地图容器 | vue-baidu-map-3x 使用百度地图需要 申请百度地图AK秘钥 步骤&#xff1a;1.进入百度地图开放平台 | 百度地图API SDK | 地图开…

Nginx 配置前端工程项目二级目录

前提&#xff1a; 前端工程技术框架: vue 后端工程技术工程&#xff1a;spring boot 需求&#xff1a;需要通过二级目录访问前端工程&#xff1a; 如之前&#xff1a;http://127.0.0.1:80/ 改成 http://127.0.0.1/secondDirectory:80/ 一.前端工程支持二级目录 1.编译文…

三、矩阵基本知识

目录 1. 理解 2、矩阵的直观感受 3、矩阵与向量 1. 理解 ①矩阵是一个向量组&#xff0c;由许多 行向量 和 纵向量 组成。 ②矩阵方程求解 用增广矩阵初等变换化为 E 。齐次/非齐次方程组 的解用 初等变化 化为 行最简阶梯型。 ③初步认为由多元一次方程组的系数组成&…

petalinux_zynq7 驱动DAC以及ADC模块之六:qt显示adc波形

前文&#xff1a; petalinux_zynq7 C语言驱动DAC以及ADC模块之一&#xff1a;建立IPhttps://blog.csdn.net/qq_27158179/article/details/136234296petalinux_zynq7 C语言驱动DAC以及ADC模块之二&#xff1a;petalinuxhttps://blog.csdn.net/qq_27158179/article/details/1362…

stm32看门狗

目录 一、看门狗介绍 二、看门狗分类 1、独立看门狗(Independent Watchdog,lWDG) 例程