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
  • Introduction
  • Prerequisites
  • What to expect
  • Deployment
  • Add SSH credentials
  • Configure your cluster
  • Provision progress

Was this helpful?

Edit on GitHub
  1. Administering Portainer
  2. Environment-related
  3. Add a new environment
  4. Create a Kubernetes cluster

MicroK8s

PreviousCreate a Kubernetes clusterNextOffline installation

Last updated 6 months ago

Was this helpful?

Introduction

Portainer consists of two elements, the Portainer Server and the Portainer Agent. Both elements run as lightweight containers on Kubernetes. This document will outline how to connect Portainer to your existing infrastructure to deploy MicroK8s and install the Portainer Agent. If you do not have a working Portainer Server instance yet, please refer to the first.

Prerequisites

In order to connect to and deploy MicroK8s and the Portainer Agent on your existing infrastructure, you will need:

  • One or more Linux-based machines on which MicroK8s will be deployed. We have primarily tested on Ubuntu 20.04 LTS but most comparable Linux distributions should work. These machines can be bare metal servers or virtual machines.

  • Root or passwordless sudo SSH access to the above machines on port 22. This is needed in order to install MicroK8s. Portainer supports both password-based and key-based authentication.

  • The snap tool installed on the above machines. You can find installation instructions for most Linux distributions . The snap tool is used to install MicroK8s and any selected addons.

  • Communication between the Portainer Server and the above machines, as well as communication between the individual machines in the cluster. This is to ensure the Portainer Server can reach the machines both for the initial installation and for communication with the Portainer Agent once the cluster is up and running, and so that the cluster nodes can communicate with each other.

  • For the standard installation, internet access (specifically to Docker Hub and registry.k8s.io) from the machines where MicroK8s will be deployed. If internet access is not available you can perform an offline installation, though there are some that must be completed. In addition, operating offline may affect enabling of some addons.

What to expect

By necessity, our MicroK8s deployment makes some configuration decisions for you.

  • The Portainer Agent is deployed using NodePort, on port 30778.

  • There may be some configuration differences between versions of MicroK8s deployed. One notable difference is from version 1.25, if the ingress addon is installed an additional ingress named nginx is configured. This does not occur on version 1.24. We recommend referring to the for further detail.

  • The deployment does not configure any storage classes on your cluster (unless the hostpath-storage addon is installed, though this is not recommended for multiple node clusters). Due to the vast amount of potential storage class configurations, this is not something we currently provide automatically. We recommend configuring a storage class once provision completes.

Deployment

To create and deploy MicroK8s and the Portainer Agent to your machines, from the menu expand Environment-related, click Environments, then click Add environment.

Select Create a Kubernetes cluster and click Start wizard.

Add SSH credentials

Fill in the fields based on the table below:

Field/Option
Overview

Credentials name

Enter a name for this credential set. This is how it will be listed in Portainer.

SSH username

Enter the username for your SSH account.

SSH password

Enter the password for your SSH account. You can leave this field blank if you intend to use SSH key authentication.

Use SSH key authentication

Enable this toggle to use SSH key authentication instead of password authentication.

SSH private key passphrase

If your SSH private key is encrypted, provide the passphrase here.

SSH private key

Paste your SSH private key in this field.

Configure your cluster

Once you have a set of credentials configured, you can proceed to configuring your cluster. Fill out the fields based on the table below:

Field/Option
Overview

Name

Enter a name for your environment. This is how the environment will appear in Portainer.

Credentials

Select the set of SSH credentials to use from the dropdown.

Control plane nodes

Enter a comma-separated or line-separated list of the IP addresses for the machines that will be the control plane nodes for your cluster. You can also specify a range of IP addresses with a hyphen.

Worker nodes

Enter a comma-separated or line-separated list of the IP addresses for the machines that will be the worker nodes for your cluster. You can also specify a range of IP addresses with a hyphen.

Once you have selected a credential set and entered the node IPs, you can click Test connections to ensure the credentials work for all the IP addresses and that they are reachable from the Portainer Server instance. If there are any issues connecting to the nodes they will be displayed.

You can now proceed to configuring MicroK8s itself. Fill out the fields based on the table below:

Field/Option
Overview

Kubernetes version

Select the version of MicroK8s to deploy on your cluster. This field is disabled if Offline install is enabled.

Offline install

Addons

Optionally click the Add addon button to select one or more addons to deploy alongside the MicroK8s installation. You can also specify any arguments needed for each addon. This is disabled if Offline install is enabled.

As an optional step you can expand the More settings section to customize the deployment further.

Field/Option
Overview

Custom Template

Select a custom template to deploy on your cluster once the MicroK8s and Portainer Agent installations are complete. This is handy for pre-loading a new environment with your applications. The template will be deployed in the default namespace unless the template specifies a namespace to use. You can also set any variables the template requires.

Group

Tags

Once you have entered your cluster configuration details, click Provision environment to begin the provision. Portainer will start provisioning your cluster with the options you selected. If you have other environments to configure click Next to proceed, otherwise click Close to return to the list of environments.

Provision progress

From the Environments page you will be able to see the progress of any running Kubernetes environment provisions. The status will be updated as the provision completes, and if the provision runs into problems an error will be displayed here. You can hover over the status or error for additional detail.

Once the provision completes, you will be able to access the environment as you would any other Portainer-configured environment.

If you have not yet , you will be asked to provide them now. If you already have a credential set configured, you can skip to .

You can also choose to generate a new SSH key pair by clicking the Generate new RSA SSH key pair button, or upload an existing private key by clicking the Upload SSH private key button. You can find more detailed instructions for generating a new SSH key in our .

Once you have entered your credentials click Add credentials. The credential set will be saved under the name you entered, and you will be taken to the .

Enable this toggle if you are performing an installation on an environment that has no internet access. You must complete for offline installation.

Select a to add the new environment to once provisioning completes.

Select any to add to the environment.

Portainer Server installation guide
at the Snapcraft website
prerequisite steps
MicroK8s release notes
configured a set of SSH credentials
cluster configuration
cluster configuration
pre-configuration of your nodes
group
tags
SSH credentials documentation