惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Simon Willison's Weblog
Simon Willison's Weblog
Google DeepMind News
Google DeepMind News
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
P
Proofpoint News Feed
Recent Announcements
Recent Announcements
MongoDB | Blog
MongoDB | Blog
U
Unit 42
云风的 BLOG
云风的 BLOG
Recorded Future
Recorded Future
G
Google Developers Blog
I
InfoQ
Blog — PlanetScale
Blog — PlanetScale
A
About on SuperTechFans
Jina AI
Jina AI
量子位
宝玉的分享
宝玉的分享
The Cloudflare Blog
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
博客园 - 聂微东
Last Week in AI
Last Week in AI
WordPress大学
WordPress大学
美团技术团队
The Hacker News
The Hacker News
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
D
Darknet – Hacking Tools, Hacker News & Cyber Security
T
Tailwind CSS Blog
博客园 - 司徒正美
博客园 - 叶小钗
Hugging Face - Blog
Hugging Face - Blog
P
Palo Alto Networks Blog
博客园_首页
阮一峰的网络日志
阮一峰的网络日志
博客园 - 【当耐特】
Spread Privacy
Spread Privacy
The GitHub Blog
The GitHub Blog
Y
Y Combinator Blog
Vercel News
Vercel News
Martin Fowler
Martin Fowler
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
Forbes - Security
Forbes - Security
Attack and Defense Labs
Attack and Defense Labs
Google DeepMind News
Google DeepMind News
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
Microsoft Azure Blog
Microsoft Azure Blog
P
Privacy International News Feed
G
GRAHAM CLULEY
The Last Watchdog
The Last Watchdog
C
Cyber Attacks, Cyber Crime and Cyber Security
AI
AI
V2EX - 技术
V2EX - 技术

Learn Cloud Native

Agentgateway rate limiting for agents | Learn Cloud Native Local development with coding agents on Kubernetes using Signadot | Learn Cloud Native cuenv: one typed file for your whole project | Learn Cloud Native Preflight: AI Code Review Before You Push Anatomy of AI Agents Accessing Google Drive from Next.js Deploying to Fly.io using Dagger and Github Top Cloud-Native & Kubernetes Certifications [2026 Guide] Rapid microservices development with Signadot How to prepare for Istio certified associate exam (ICA) Global Rate Limiting in Istio with Envoy Rate Limit Service My Journey with Istio: From Incubation to Graduation Cilium Network Policy Tutorial: Secure Kubernetes Step by Step Kubernetes Networking: How kube-proxy and iptables Work Istio ServiceEntry: DNS vs. STATIC Resolution & Endpoints Explained Apply an Istio DestinationRule Globally (Mesh-Wide) Istio Rate Limiting: Configure a Local Rate Limiter in Envoy How to expose custom ports on Istio ingress gateway Traefik Proxy 2.x and TLS 101 Kubernetes CLI (kubectl) tips you didn't know about Setting up SSL certificates with Istio Gateway ArgoCD Best Practices You Should Know 在 OCI Ampere A1 计算实例上运行 AI Running AI On OCI Ampere A1 Instance How to Deploy Traefik Proxy Using Flux and GitOps Principles Firebase Emulators with Next.js: Local Setup Guide Running Hugo on free Ampere VM (Oracle Cloud Infrastructure) How to use kwatch to detect crashes in Kubernetes clusters Continuous profiling in Kubernetes using Pyroscope Monitoring containers with cAdvisor Creating a Kubernetes cluster in Google Cloud (LAB) Your first Kubernetes Pod and ReplicaSet (LABS) Container Lifecycle Hooks Maybe Convert Wasm Extension Config? GetIstio - CLI, training, and community Attach multiple VirtualServices to Istio Gateway Kubernetes Volumes Explained: Keep Data Beyond the Pod Send a Slack message when Docker images are updated Kubernetes Network Policy Ambassador Container Pattern Start Kubernetes Release Sidecar Container Pattern Kubernetes Init Containers Deploying multiple Istio Ingress Gateways Branch by Abstraction Pattern The Strangler Pattern Kubernetes Development Environment with Skaffold Securing Kubernetes Ingress with Ambassador and Let's Encrypt All About the Ingress Resource How to quarantine Kubernetes pods? Getting started with Kubernetes Horizontal partitioning in MongoDB Docker image tagging scheme Six things to keep in mind when working with Dockerfiles Beginners guide to Docker Beginners guide to gateways and proxies Deploy and Operate Multiple Istio Meshes in one Kubernetes Cluster Managing service meshes with Meshery Circuit Breaking in Istio Explained Build and push your Docker images using Github Actions Kubernetes and Istio service mesh workshop materials Build Netlify-like deployment for React app using Kubernetes pods Six exciting enhancements in Istio 1.4.0 Fallacies of Distributed Systems CAP Theorem Explained Master the Kubernetes CLI (kubectl) - Cheatsheet Minikube Basics and How to Get Started with Kubernetes 5 Tips to Be More Productive with Kubernetes What are sticky sessions and how to configure them with Istio? Debugging Kubernetes applications using Istio Kubernetes Ingress and Istio Gateway Resource Zero Downtime Releases using Kubernetes and Istio Traffic Mirroring with Istio Service Mesh Expose a Kubernetes service on your own custom domain
Portainer Tutorial: A Web UI for Kubernetes & Containers
Anuja Kumari · 2022-06-02 · via Learn Cloud Native

What is Portainer?

Portainer is an open-source, lightweight management UI that allows us to quickly build and manage containers in Docker, Docker Swarm, Kubernetes, and Azure ACI. It will enable us to manage the creation and deletion of Swarm services, user authentication, authorizations, connecting, executing commands in the console of running containers, and viewing containers’ logs.

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.

It is the most widely adopted container management platform in the world, with over 650,000 users and 21,700 stars on GitHub.

Why Portainer?

Portainer removes the complexity associated with deploying and managing containers

Portainer’s goal is to deliver a world-class container-native application deployment and management tool that is truly platform agnostic. They have made the underlying container management platform (e.g., Kubernetes) invisible to the engineers who want to manage their apps. If you use Portainer, we can CONSUME the container platform without being an expert in it.

Portainer streamlines the operations of container management

With Portainer, engineers can deploy and see the state of individual containers, restart them and debug them when necessary – all without needing to use the command line. Portainer also provides deep visibility into what’s running, where it's running, and how it's running, which helps engineers optimize app performance.

And because Portainer connects to all your hosts and platforms, you get complete visibility on a single web page, eliminating the need to connect to each container to check on its state. This saves time, and lets engineers focus on what’s important.

Portainer provides an enterprise sensitive tool that complies with IT governance best practice

Technology leaders need to be able to manage apps in a secure, repeatable, and scalable manner. Portainer provides a structured framework that enables this to happen and enables teams to work collaboratively. This reduces risk to your business and helps you be compliant in deploying and managing your applications.

Identity and Access Management (IAM) is a problem in native container platform management, and it’s a problem Portainer solves. It allows you to assign specific roles with pre-set functionality limits to users and teams and even nest roles to create fine-grained access rights.

And also, Portainer automatically logs all actions taken around container management, capturing details on who created, maintained, or even deleted containers – helping you trace any issues that might occur across your organization.

Portainer Architecture

Portainer architecture
Portainer architecture

Portainer consists of two elements: the Portainer Server and the Portainer Agent.

  • Both Portainer Server and Portainer Agent run as lightweight containers on your existing containerized infrastructure.

  • The Portainer Agent should be deployed to each node in your cluster and configured to report back to the Portainer Server container. A single Portainer Server will accept connections from any number of Portainer Agents, allowing one to manage multiple clusters from one centralized interface. To do this, the Portainer Server container requires data persistence.

  • The Portainer Agents are stateless, with data being shipped back to the Portainer Server container.

Features of Portainer

  • Application Deployment - Manage the deployment of containerized applications through a manual GUI or Simple GitOps.

  • Observability & Triage - Monitor the performance and behavior of containerized applications.

  • Centralized IAM - Control who can do what, when, and why inside your environment.

  • Platform Management - Set up and configure your environment - on-prem, in the cloud, or at the edge.

Portainer Products

Portainer is available in two versions: Community Edition (CE) and Business Edition (BE).

💥 Portainer CE

It is an open source software intended for personal use and supported by vibrant and growing community users.

Portainer Community Edition (CE) is the foundation. With over half a million regular users, CE is a powerful, open-source toolset that allows you to quickly build and manage containers in Docker, Docker Swarm, Kubernetes, and Azure ACI.

💥 Portainer BE

Portainer BE is a commercially licensed and supported product. It adds enterprise features to CE to support enterprise requirements and is intended for professional use.

Portainer Business Edition (BE) is the commercial offering. With features geared towards businesses and larger organizations such as Role-Based Access Control, registry management, and dedicated support, Portainer BE is a powerful toolset that allows you to easily build and manage containers in Docker, Docker Swarm, Kubernetes and Azure ACI.

Installation

Check out the official documentation for Portainer installation according to your requirements.

💥 In this blog post, I will be using helm to install Portainer.

Prerequisites

  1. A working and up-to-date Kubernetes cluster. Check out this blog post for instructions on setting up your Kubernetes cluster.
  2. Access to run helm or kubectl commands on your cluster.
  3. Cluster Admin rights on your Kubernetes cluster. This is so Portainer can create the necessary ServiceAccount and ClusterRoleBinding for it to access the Kubernetes cluster.
  4. A default StorageClass configured.

So, let's get started 🚀🥳

👉 Check if you have a default StorageClass by running the following command on your cluster:

📌 If the storage class is not set as default, then we can use the below command to set a default storage class.

kubectl patch storageclass <storage-class-name> -p '{"metadata": {"annotations":{"storageclass.kubernetes.io/is-default-class":"true"}}}'

📌 replacing <storage-class-name> with the name of your StorageClass. Alternatively, if you are installing using our Helm chart, you can pass the following parameter in your helm install command to specify the StorageClass to use for Portainer:

--set persistence.storageClass=<storage-class-name>

📌 In my case, it's already set as default.

Helm and StorageClass
Helm and StorageClass

👉 Now, add the Portainer Helm repository by running the following commands:

helm repo add portainer https://portainer.github.io/k8s/
helm repo update
Helm - add repo and update
Helm - add repo and update

👉 Install the helm chart:

helm install --create-namespace -n portainer portainer  portainer/portainer
Helm - install Portainer chart
Helm - install Portainer chart

👉 Check the service

kubectl get svc -n portainer
Portainer - Kubernetes service
Portainer - Kubernetes service

👉 To access the portainer service from the local environment on port 30777, traffic can be forwarded to your local system using the port-forward command:

kubectl port-forward -n portainer svc/portainer 30777:9000
Portainer - port forward
Portainer - port forward

👉 Open a web browser and navigate to the following URL:

Portainer - admin UI
Portainer - admin UI

📌 Now, set the username and password, then click on Create user.

Portainer - create user
Portainer - create user

📌 Click on Get started

Portainer - Get started
Portainer - Get started

Now, we are all set to explore the Portainer UI 🥳

🔰 Choose our environment, and then we will land on the dashboard from where we can manage the cluster.

Portainer - UI
Portainer - UI
Portainer - UI
Portainer - UI

Now, let's do some hands-on practical examples 🚀

📌 Click on the Namespace, you will see the default namespace

Portainer - default namespace
Portainer - default namespace

📌 Click on the Add Namespace with form button

Portainer - add namespace with form
Portainer - add namespace with form

📌 Give the name, set the memory and CPU limits, and then click on the Create namespace

Portainer - new namespace
Portainer - new namespace

📌 Let's see the namespace list

Portainer - namespace list
Portainer - namespace list

So, we have successfully created our namespace 🤩!

👉Now, let's create an application in our namespace that we created above.

📌 Click on Applications

Portainer - applications
Portainer - applications

📌 Click on Add application with form

Portainer - applications
Portainer - applications

📌 Select the namespace we created from the dropdown, provide the application name (nginx:latest), image name (test-app), and select service type (LoadBalancer).

Portainer - applications
Portainer - applications
Portainer - applications
Portainer - applications

📌 Let's see the application list

Portainer - applications
Portainer - applications

Wooooh, we have successfully created our application 🥳

Conclusion

Portainer is a great tool that can be used to manage Docker containers, Swarm services, and other resources from a simple and intuitive web user interface. Portainer provides several free features and paid plugins to enhance the user experience for managing Docker clusters. On the other hand, some paid plugins still have some restrictions or missing features that could improve the product.

💥 I hope this blog will help you understand how Portainer manages containers.