Skip to content
This repository has been archived by the owner on Sep 1, 2020. It is now read-only.

portainer/portainer-k8s

Repository files navigation

Important notice

This repository has been archived.

Portainer 2.0 includes support for Kubernetes, head to https://www.portainer.io/installation/ for more details about how to install it.

Portainer on Kubernetes BETA

This repository contains all the manifests you can use to deploy the Portainer for Kubernetes BETA version.

For any feedback regarding the BETA version, please head to the portainer for Kubernetes BETA repository.

These manifests have been tested on:

  • Azure AKS
  • Digital Ocean
  • minikube
  • kind

Have any feedback on the deployment of Portainer inside Kubernetes? Please head to the deployment feedback topic.

Supported platforms:

  • Linux amd64
  • Linux arm

Usage

Notice

These deployment manifests will deploy Portainer inside the portainer namespace. Portainer uses this namespace to store system information, as such this namespace must not be changed.

Deploy Portainer inside your cluster and access it via an external load balancer

If your cloud provider supports external load balancers, you can use the following commands to deploy Portainer:

curl -LO https://raw.githubusercontent.com/portainer/portainer-k8s/master/portainer.yaml
kubectl apply -f portainer.yaml

This will deploy the Portainer application and create an external load balancer which you'll be able to use to access Portainer on port 9000.

Deploy Portainer inside your cluster and access it via node port

If you prefer to access Portainer via a specific port on a node of your cluster, use the following commands:

curl -LO https://raw.githubusercontent.com/portainer/portainer-k8s/master/portainer-nodeport.yaml
kubectl apply -f portainer-nodeport.yaml

This will expose Portainer on the port 30777 inside your cluster (30776 for Edge tunnel server). You can change these ports inside the manifest if you wish.

Deploy Portainer using Helm Chart

Run the following commands to install Portainer via helm:

kubectl create namespace portainer
helm repo add portainer http://portainer.github.io/portainer-k8s
helm upgrade --atomic -i portainer portainer/portainer-beta --version 1.0.0 -n portainer

Note: this deployment defaults to exposing Portainer over an external load balancer, have a look at the chart configuration in the charts/portainer-beta folder for more information on how to configure the helm deployment.

Update to a new version of the beta

In order to update to the latest version of the beta, you'll need to delete the portainer namespace and redeploy it.

kubectl delete namespace/portainer
kubectl apply -f portainer.yaml // or kubectl apply -f portainer-nodeport.yaml based on your initial deployment

Manage a remote Kubernetes cluster

In order to manage a remote Kubernetes cluster, you'll need a Portainer for Kubernetes BETA instance already deployed inside a Kubernetes cluster and connect it to a Portainer agent running inside the remote cluster.

Deploy the Portainer agent and access it via an external load balancer

If your cloud provider supports external load balancers, you can use the following command to deploy the regular Portainer agent (not Edge):

curl -LO https://raw.githubusercontent.com/portainer/portainer-k8s/master/agent/portainer-agent.yaml
kubectl apply -f agent/portainer-agent.yaml

This will deploy the Portainer agent and create an external load balancer which you'll be able to use to connect to the agent on port 9001.

Edge agent

If you wish to deploy the Edge agent inside your Kubernetes cluster, it is recommended to follow the instructions available inside your Portainer instance.

ARM platform

If you wish to deploy Portainer or the agent inside a Kubernetes cluster running on arm, please use the tag linux-arm instead of linux-amd64.