Portainer Documentation
Official WebsiteKnowledge BasePricingGet 3 Nodes of BE Free
2.21 LTS
2.21 LTS
  • Welcome
  • What's new in version 2.21
  • Release Notes
  • Getting Started
    • Introduction
    • Portainer architecture
    • Lifecycle policy
    • Requirements and prerequisites
    • Install Portainer BE
      • Set up a new Portainer BE Server installation
        • Docker Standalone
          • Install Portainer BE with Docker on Linux
          • Install Portainer BE with Docker on WSL / Docker Desktop
          • Install Portainer BE with Docker on Windows Container Service
        • Docker Swarm
          • Install Portainer BE with Docker Swarm on Linux
          • Install Portainer BE with Docker Swarm on WSL / Docker Desktop
          • Install Portainer BE with Docker Swarm on Windows Container Service
        • Kubernetes
          • Install Portainer BE on your Kubernetes environment
          • Install Portainer BE with Kubernetes on WSL / Docker Desktop
        • Initial setup
    • Install Portainer CE
      • Set up a new Portainer CE Server installation
        • Docker Standalone
          • Install Portainer CE with Docker on Linux
          • Install Portainer CE with Docker on WSL / Docker Desktop
          • Install Portainer CE with Docker on Windows Container Service
        • Docker Swarm
          • Install Portainer CE with Docker Swarm on Linux
          • Install Portainer CE with Docker Swarm on WSL / Docker Desktop
          • Install Portainer CE with Docker Swarm on Windows Container Service
        • Kubernetes
          • Install Portainer CE on your Kubernetes environment
          • Install Portainer CE with Kubernetes on WSL / Docker Desktop
        • Initial setup
    • Add an environment to an existing installation
    • Updating Portainer
      • Updating on Docker Standalone
      • Updating on Docker Swarm
      • Updating on Kubernetes
      • Updating on Nomad
      • Updating the Edge Agent
      • Updating from Portainer 1.x
      • Switching to Portainer Business Edition
        • Upgrade to Business Edition from within Portainer Community Edition
        • Docker Standalone
        • Docker Swarm
        • Kubernetes
        • Upgrading Agent-only deployments
  • Using Portainer
    • Home
      • Snapshot browsing
      • OpenAMT
    • Docker/Swarm
      • Dashboard
      • Templates
        • Application
        • Custom templates
        • Deploy a stack
        • Deploy a container
      • Stacks
        • Add a new stack
        • Inspect or edit a stack
        • Create a template from a deployed stack
        • Webhooks
        • Migrate or duplicate a stack
        • Remove a stack
      • Services
        • Add a new service
        • Configure service options
        • Scale a service
        • View the status of a service task
        • View service logs
        • Roll back a service
        • Webhooks
      • Containers
        • Add a new container
        • View a container's details
        • Inspect a container
        • Edit or duplicate a container
        • Advanced container settings
        • Webhooks
        • Attach a volume to a container
        • View container logs
        • View container statistics
        • Access a container's console
        • Change container ownership
        • Remove a container
      • Images
        • Pull an image
        • Build a new image
        • Import an image
        • Export an image
      • Networks
        • Add a new network
        • Remove a network
      • Volumes
        • Add a new volume
        • Browse a volume
        • Remove a volume
      • Configs
        • Add a new config
        • Remove a config
      • Secrets
        • Add a new secret
        • Remove a secret
      • Events
      • Host
        • Details
        • Setup
        • Registries
      • Swarm
        • Details
        • Cluster visualizer
        • Setup
        • Registries
    • Kubernetes
      • Dashboard
      • kubectl shell
      • Kubeconfig
      • Custom Templates
        • Add a new custom template
        • Edit a custom template
        • Remove a custom template
      • Namespaces
        • Add a new namespace
        • Manage a namespace
        • Manage access to a namespace
        • Remove a namespace
      • Helm
      • Applications
        • Add a new application using a form
        • Add a new application using a manifest
        • Inspect an application
        • Inspect a Helm application
        • Edit an application
        • Webhooks
        • Detach a volume from an application
        • Remove an application
      • Networking
        • Services
        • Ingresses
          • Add an Ingress manually
          • Add an Ingress using a manifest
          • Remove an Ingress
      • ConfigMaps & Secrets
        • Add a ConfigMap
        • Add a Secret
      • Volumes
        • Inspect a volume
        • Remove a volume
      • More Resources
        • Service Accounts
        • Cluster Roles
        • Roles
      • Cluster
        • Details
        • Inspect a node
        • Setup
        • Security constraints
        • Registries
    • Azure ACI
      • Dashboard
      • Container instances
        • Add a new container
        • Remove a container
    • Nomad
    • Edge Compute
      • Edge Groups
      • Edge Stacks
        • Add a new Edge Stack
      • Edge Jobs
      • Edge Configurations
      • Waiting Room
      • Edge Templates
        • Application
        • Custom
    • Account settings
  • Administering Portainer
    • User-related
      • Users
      • Add a new user
      • Turn a user into an administrator
      • Reset a user's password
      • Teams
        • Add a new team
        • Add a user to a team
      • Roles
    • Environment-related
      • Environments
      • Add a new environment
        • Add a local environment
        • Add a Docker Standalone environment
          • Install Portainer Agent on Docker Standalone
          • Connect to the Docker API
          • Connect to the Docker Socket
          • Install Edge Agent Standard on Docker Standalone
          • Install Edge Agent Async on Docker Standalone
        • Add a Docker Swarm environment
          • Install Portainer Agent on Docker Swarm
          • Connect to the Docker API
          • Connect to the Docker Socket
          • Install Edge Agent Standard on Docker Swarm
          • Install Edge Agent Async on Docker Swarm
        • Add a Kubernetes environment
          • Install Portainer Agent on your Kubernetes environment
          • Install Edge Agent Standard on Kubernetes
          • Install Edge Agent Async on Kubernetes
          • Import an existing Kubernetes environment
        • Add an ACI environment
        • Add a Nomad environment
        • Provision KaaS Cluster
          • Civo
          • Akamai Connected Cloud
          • DigitalOcean
          • Google Cloud
          • AWS
          • Azure
        • Create a Kubernetes cluster
          • MicroK8s
            • Offline installation
        • Add an environment via the Portainer API
      • Auto onboarding
      • Groups
      • Tags
      • Manage access to environments
      • Manage access to environment groups
      • Update & Rollback
    • Registries
      • Add a new registry
        • Add a DockerHub account
        • Add an AWS ECR registry
        • Add a Quay.io registry
        • Add a ProGet registry
        • Add an Azure registry
        • Add a Gitlab registry
        • Add a GitHub registry
        • Add a custom registry
      • Browse a registry
      • Manage a registry
    • Licenses
    • Logs
      • Authentication
      • Activity
    • Notifications
    • Settings
      • General
      • Authentication
        • Authenticate via LDAP
        • Authenticate via Active Directory
        • Authenticate via OAuth
      • Shared credentials
        • Add Civo credentials
        • Add Akamai Connected Cloud credentials
        • Add DigitalOcean credentials
        • Add Google Cloud credentials
        • Add AWS credentials
        • Add Azure credentials
        • Add SSH credentials
      • Edge Compute
  • Frequently Asked Questions
    • Portainer Concepts
    • Installing
    • Upgrading
    • Troubleshooting
    • Contributing
  • Advanced Topics
    • CLI configuration options
    • App templates
      • Build and host your own app templates
      • App template JSON format
    • The Portainer Edge Agent
    • Access control
    • Reset the admin user's password
    • Security and compliance
    • Encrypting the Portainer database
    • Using your own SSL certificate with Portainer
    • Using mTLS with Portainer
    • Stream auth and activity logs to an external provider
    • Using Portainer with reverse proxies
      • Deploying Portainer behind Traefik Proxy
      • Deploying Portainer behind nginx reverse proxy
    • How Relative Path Support works in Portainer
    • Helm chart configuration options
    • Docker roles and permissions
    • Kubernetes roles and bindings
    • Deprecated and removed features
  • API
    • Accessing the Portainer API
    • API documentation
    • API usage examples
  • Get More Help
    • Knowledge Base
    • Portainer Academy
    • YouTube
    • GitHub
    • Slack
    • Discord
    • Open a support request
  • Contribute to Portainer
    • Contribute
    • Build instructions
      • Set up a macOS build environment
      • Set up a Linux build environment
Powered by GitBook
On this page
  • Method 1: Updating using Helm
  • Method 2: Upgrading using YAML Manifest
  • Option 1: Via the Portainer UI
  • Option 2: Via the command line
  • Method 3: Force an update

Was this helpful?

Edit on GitHub
  1. Getting Started
  2. Updating Portainer

Updating on Kubernetes

PreviousUpdating on Docker SwarmNextUpdating on Nomad

Last updated 4 months ago

Was this helpful?

Always match the agent version to the Portainer Server version. In other words, when you're installing or updating to Portainer 2.21.5 make sure all of the agents are also on version 2.21.5.

Starting from Portainer CE 2.9 and BE 2.10, HTTPS is enabled by default on port 9443. These instructions will configure Portainer to use both 9443 for HTTPS and 9000 for HTTP. You can choose to after the update.

Before you make Portainer HTTPS only, make sure you have all your Agents and Edge Agents already communicating with Portainer using HTTPS.

Before beginning any update, we highly recommend of your current Portainer configuration.

Select the Portainer update method which matches the original installation method used.

Method 1: Updating using Helm

Add the Portainer Helm repository by running the following commands. Ignore any warnings about the repo already being there:

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

Next, run one of the following commands to update to version 2.21 of Portainer:

helm upgrade -n portainer portainer portainer/portainer \
    --set enterpriseEdition.image.tag=2.21.5
helm upgrade -n portainer portainer portainer/portainer \
    --set image.tag=2.21.5

Method 2: Upgrading using YAML Manifest

Option 1: Via the Portainer UI

The easiest way to upgrade is to use the Portainer UI along with our manifest files. Copy the contents of the manifest file that matches the method you used to deploy Portainer:

Copy the contents of the relevant NodePort manifest file:

Business Edition:

https://downloads.portainer.io/ee2-21/portainer.yaml

Community Edition:

https://downloads.portainer.io/ce2-21/portainer.yaml

For an agent-only deployment, use one of the following manifests instead:

Business Edition:

https://downloads.portainer.io/ee2-21/portainer-agent-k8s-nodeport.yaml

Community Edition:

https://downloads.portainer.io/ce2-21/portainer-agent-k8s-nodeport.yaml

If you have set a custom AGENT_SECRET on your Portainer Server instance (by specifying an AGENT_SECRET environment variable when starting the Portainer Server container) you must remember to explicitly provide the same secret to your Agent in the same way (as an environment variable) in the YAML when updating your Agent:

environment: - AGENT_SECRET: yoursecret

Copy the contents of the relevant Load Balancer manifest file:

Business Edition:

https://downloads.portainer.io/ee2-21/portainer-lb.yaml

Community Edition:

https://downloads.portainer.io/ce2-21/portainer-lb.yaml

For an agent-only deployment, use one of the following manifests instead:

Business Edition:

https://downloads.portainer.io/ee2-21/portainer-agent-k8s-lb.yaml

Community Edition:

https://downloads.portainer.io/ce2-21/portainer-agent-k8s-lb.yaml

If you have set a custom AGENT_SECRET on your Portainer Server instance you must remember to explicitly provide this in the YAML when updating your agent:

environment:

- AGENT_SECRET: yoursecret

Log into Portainer and connect to the Kubernetes environment where Portainer is installed. From the menu select Applications then select Create from manifest. Toggle Use namespace(s) specified from manifest to on, then enter portainer in the Name field.

If you used a different name for your Portainer deployment, use that instead.

From the Build method selection choose Web Editor and ensure Kubernetes is selected as the Deploy type. Paste the contents of the YAML file then click Deploy. Portainer will process the manifest and should return you to the login page once the update is complete.

Option 2: Via the command line

If you prefer to use the command line to update, you can do so using kubectl commands:

Log into the control node of your Kubernetes cluster and run one of the following commands:

Business Edition:

kubectl apply -n portainer -f https://downloads.portainer.io/ee2-21/portainer.yaml

Community Edition:

kubectl apply -n portainer -f https://downloads.portainer.io/ce2-21/portainer.yaml

For an agent-only deployment, use one of the following commands instead:

Business Edition:

kubectl apply -n portainer -f https://downloads.portainer.io/ee2-21/portainer-agent-k8s-nodeport.yaml

Community Edition:

kubectl apply -n portainer -f https://downloads.portainer.io/ce2-21/portainer-agent-k8s-nodeport.yaml

If you have set a custom AGENT_SECRET on your Portainer Server instance (by specifying an AGENT_SECRET environment variable when starting the Portainer Server container) you must remember to explicitly provide the same secret to your Agent in the same way (as an environment variable) in the YAML when updating your Agent:

environment: - AGENT_SECRET: yoursecret

Log into the control node of your Kubernetes cluster and run one of the following commands:

Business Edition:

kubectl apply -n portainer -f https://downloads.portainer.io/ee2-21/portainer-lb.yaml

Community Edition:

kubectl apply -n portainer -f https://downloads.portainer.io/ce2-21/portainer.yaml

For an agent-only deployment, use one of the following commands instead:

Business Edition:

kubectl apply -n portainer -f https://downloads.portainer.io/ee2-21/portainer-agent-k8s-lb.yaml

Community Edition:

kubectl apply -n portainer -f https://downloads.portainer.io/ce2-21/portainer-agent-k8s-lb.yaml

If you have set a custom AGENT_SECRET on your Portainer Server instance you must remember to explicitly provide this in the YAML when updating your agent:

environment:

- AGENT_SECRET: yoursecret

When the deployment is finished you will be able to log into Portainer. You should notice the new version number at the bottom-left of the Portainer UI.

Method 3: Force an update

If Portainer does not update after running the above commands, you can force a download of the latest image by running the following command:

kubectl -n portainer rollout restart deployment.apps/portainer

Or, for an agent-only deployment, use this command instead:

kubectl -n portainer rollout restart deployment.apps/portainer-agent
taking a backup
completely disable HTTP