如何更改microk8s的默认端口?

How to change the default port of microk8s?

Microk8s默认安装在16443端口,我想改成6443,我用的是Ubuntu16.04。我已经使用 snapd 和 conjure-up 安装了 microk8s。

None 我试过的以下选项都有效。

  1. 试图编辑 /snap/microk8s/current/kubeproxy.config 中的端口。由于该卷是只读的,我无法对其进行编辑。
  2. 编辑了 /home/user_name/.kube/config 并重新启动了集群。
  3. 尝试使用命令并重新启动集群 sudo kubectl config set clusters.microk8s-cluster.server https://my_ip_address:6443.
  4. 尝试使用 kubectl proxy --port=6443 --address=0.0.0.0 --accept-hosts=my_ip_address &。它侦听 6443,但仅侦听 HTTP,而不侦听 HTTPS 流量。

最初已在 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