5
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

multipassを使って暴速でkubernetes(microk8s)環境を作る

Posted at

Why

multipass を使って microk8s 環境を作ればマルチプラットフォームで kubernetes のテスト環境を手早く構築できる。
でもいつも zsh/oh-my-zsh/powerlevel10k のCLI環境で作業している自分にとって素のbashがとても使いにくい。
それに kubectl のcompletionやもろもろのツールのインストールや設定が面倒

そこで、multipass では--cloud-initフラグで cloud-init が使えるので、これを使用してプロビジョニングする。

(あ…これ全部 canonical のプロダクトやん)

Prerequisite(前提条件)

各環境に合わせて multipass をインストールしてください。
リンク: https://multipass.run/docs

TL;DR

適当なディレクトリに移動して以下のコマンドを実行すれば環境構築完了です。

$ wget https://raw.githubusercontent.com/cashewnuts/multipass-env/master/microk8s/cloud-config.yaml
$ multipass launch -n microk8s-vm --cloud-init cloud-config.yaml --mem 4G --disk 40G

用語解説

multipass

ローカルにlinuxインスタンスを作成するツール
いつでも最新のubuntu環境を気軽に試せて、ホストのファイルシステムのマウントも簡単にできる。

Windows Subsystem for Linux のマルチプラットフォーム版、あるいは Docker を普段使い用にお手軽にしたようなツール

microk8s

kubernetes の環境をまるごと1つのパッケージとしてまとめたもの

cloud-init

クラウドインスタンス(AWSのEC2など)のプロビジョニング方法としてデファクトスタンダードとなっているツール
ほとんどのIaaS のクラウドプロバイダーでは cloud-init を使ったプロビジョニング方法を用意している。
デファクトの割にドキュメントが充実してない。

cloud-config.yamlの解説

追記予定

成果物

うまくいくと以下のようにzshやもろもろのツールを含むCLI環境が構築された microk8s 用インスタンスが作成されます。

image.png

このソース(?)は github 上にあります。
https://github.com/cashewnuts/multipass-env

以下メモ書き

cloud-init のデバッグ方法

cloud-init のデバッグの仕方がよくわからなくて苦労した。

結論として、multipass shell <instance-name>でログインしたあと以下のファイルを見ることで、どこで失敗したのかが確認できた。

# cloud-initが内部で実行しているpythonのデバッグログ
/var/log/cloud-init.log
# cloud-initの設定ファイル(yaml)をもとに実行されたbashスクリプトのログ
/var/log/cloud-init-output.log
5
4
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
5
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?