How to change the default port of microk8s?

4/17/2019

Microk8s is installed on default port 16443. I want to change it to 6443. I am using Ubuntu 16.04. I have installed microk8s using snapd and conjure-up.

None of the following options I have tried worked.

  1. Tried to edit the port in /snap/microk8s/current/kubeproxy.config. As the volume is read-only, I could not edit it.
  2. Edited the /home/user_name/.kube/config and restarted the cluster.
  3. Tried using the command and restarted the cluster sudo kubectl config set clusters.microk8s-cluster.server https://my_ip_address:6443.
  4. Tried to use kubectl proxy --port=6443 --address=0.0.0.0 --accept-hosts=my_ip_address &. It listens on 6443, but only HTTP, not HTTPS traffic.
-- Srinivasa Rao
kubernetes
microk8s

1 Answer

4/18/2019

That was initially resolved in microk8s issue 43, but detailed in microk8s issue 300:

This is the right one to use for the latest microk8s:

#!/bin/bash
# define our new port number
API_PORT=8888

# update kube-apiserver args with the new port
# tell other services about the new port
sudo find /var/snap/microk8s/current/args -type f -exec sed -i "s/8080/$API_PORT/g" {} ';'

# create new, updated copies of our kubeconfig for kubelet and kubectl to use
mkdir -p ~/.kube && microk8s.config -l  | sed "s/:8080/:$API_PORT/" | sudo tee /var/snap/microk8s/current/kubelet.config > ~/.kube/microk8s.config

# tell kubelet about the new kubeconfig
sudo sed -i 's#${SNAP}/configs/kubelet.config#${SNAP_DATA}/kubelet.config#' /var/snap/microk8s/current/args/kubelet

# disable and enable the microk8s snap to restart all services
sudo snap disable microk8s && sudo snap enable microk8s
-- VonC
Source: StackOverflow