Install Portainer BE with Kubernetes on WSL / Docker Desktop
Introduction
The following instructions will guide you in setting up Portainer Server with Kubernetes running on Docker Desktop with WSL.
We are aware of an issue where namespace and application access privileges are not fully implemented when running Kubernetes via Docker Desktop. We are looking into the root cause and hope to have a resolution soon.
Preparation
Before you start, you must make sure that Kubernetes is enabled and running within your Docker Desktop installation. To enable Kubernetes in Docker Desktop, you need to open the dashboard of Docker Desktop. Right click the Docker icon in the system tray and click Dashboard:

Click Settings, then select Kubernetes, tick Enable Kubernetes, then click Apply and Restart (clicking Install in the dialog to install Kubernetes):

After a few minutes, you will see that Kubernetes is running in the bottom left status bar of Docker Desktop:

Deployment
To deploy Portainer within a Kubernetes cluster you can use our provided Helm charts or YAML manifests.
Deploy using Helm
First add the Portainer Helm repository by running the following commands:
helm repo add portainer https://portainer.github.io/k8s/
helm repo update
Once the update completes, you're ready to begin the installation. Which method you choose will depend on how you wish to expose the Portainer service:
Using the following command, Portainer will be available on port 30777
for HTTP and 30779
for HTTPS:
helm upgrade --install --create-namespace -n portainer portainer portainer/portainer \
--set enterpriseEdition.enabled=true \
--set enterpriseEdition.image.tag=sts
Deploy using YAML manifests
Our YAML manifests support exposing Portainer via either NodePort or Load Balancer.
To expose via NodePort, you can use the following command (Portainer will be available on port 30777
for HTTP and 30779
for HTTPS):
kubectl apply -n portainer -f https://downloads.portainer.io/ee-sts/portainer.yaml
kubectl patch deployments -n portainer portainer -p '{"spec": {"template": {"spec": {"nodeSelector": {"kubernetes.io/hostname": "'$(kubectl get pods -n portainer -o jsonpath='{ ..nodeName }')'"}}}}}' || (echo Failed to identify current node of portainer pod; exit 1)
Logging In
Now that the installation is complete, you can log into your Portainer Server instance. Depending on how you chose to expose your Portainer installation, open a web browser and navigate to the following URL:
https://localhost:30779/ or http://localhost:30777/
Replace localhost
with the relevant IP address or FQDN if needed, and adjust the port if you changed it earlier.
You will be presented with the initial setup page for Portainer Server.
Initial setupWas this helpful?