LoginSignup
7
3

More than 3 years have passed since last update.

MicroK8sを外部のクライアントからkubectlで接続する

Last updated at Posted at 2019-09-27

毎度、ググっても出てこない小ネタを取り扱っております。
本記事は個人的な見解であり、筆者の所属するいかなる団体にも関係ございません。

0. はじめに

MicroK8s 便利です。何が便利かというと、Kubernetesのインストールが簡単、だけじゃなくて
Kubernetesのバージョンを気軽に変更したり、Kubernetes環境をリセットしてやり直したり、
いつのまにかjaegerとか、istioがコマンド1つで動かせるようになっていたり
と便利さ満点です。

ローカルのコンソールで使うというのが基本ですが、MicroK8sがインストールされているホストに対して
外部のクライアントからも当然接続できる(kubectlで利用したりも可)ので、お手軽に試す環境として利用できます。

MicroK8s自体がsnapで動くというのはまあ非常に微妙なところではありますが、ローカルループバックマウントは見ないでくださいというところがポイントです(苦笑)

1. MicroK8sのホストにkubectlで接続する構成

さて、本題です。
図にするほどでもないですが、以下のような構成になります。

image.png

リモート側にはkubectlコマンドを入れておいてください。

2. configをmicrok8s.configで出力する

MicroK8sがインストールされているローカルからのkubectlは認証なんて何それ?必要なの?ぐらいの勢いですが、外から接続する場合にはそうはいかないので.kube/configに書き込む設定をローカル側で出力します。

microk8s.configコマンドで設定が出力されますのでリダイレクトしてファイルに保存しましょう。

$ microk8s.config | tee microk8s-kube-config
apiVersion: v1
clusters:
- cluster:
    certificate-authority-data: LS0tLS1CRUdJTxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=
    server: https://xx.xx.xx.xx:16443
  name: microk8s-cluster
contexts:
- context:
    cluster: microk8s-cluster
    user: admin
  name: microk8s
current-context: microk8s
kind: Config
preferences: {}
users:
- name: admin
  user:
    username: admin
    password: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

3. 2で作成したmicrok8s-kube-configファイルをリモート側に設定

microk8s-kube-configファイルをリモート側のkubectlを動かすホスト側にコピーして、既存のconfigファイルとマージしましょう。contextを設定してもいいですし、KUBECONFIGでファイルを指定してもOKです。

$ kubectl get nodes
NAME     STATUS   ROLES    AGE   VERSION
ubuntu   Ready    <none>   15d   v1.14.6
7
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
3