k3os on さくらのクラウド

f:id:febc_yamamoto:20190520181231p:plain

k3osを試してみましたのでメモ残しておきます。

Update: 2019/5/29

さくらのクラウド側でk3OSのISOイメージが提供されるようになりました。
この記事でのISOイメージのダウンロード/アップロードの部分は不要となりました。

febc-yamamoto.hatenablog.jp

===Updateここまで

k3osって?

kubernetesに特化した軽量OSで、軽量kubernetesディストリビュージョンである「k3s」を組み込んだOSとなっています。

k3os.io

Public Keyでも取り上げられましたね。 www.publickey1.jp

前見たときはリリースページにARM向けのISOファイルしかなかったのですが、今日改めて確認したらAMD64向けもちゃんと提供されるようになってたので試してみました。

試してみる

インストール

流れとしては以下の通りです。

  • k3osのリリースページからISOファイル(AMD64向け)をダウンロード
  • ISOファイルを使って仮想マシンなどを起動
  • 起動したらos-configコマンドでディスクへインストール

今回はさくらのクラウド上に仮想マシンを作成して試します。

ISOファイルのダウンロード〜さくらのクラウドへアップロード

curlコマンドでダウンロード、usacloudコマンド(さくらのクラウド向けCLI)でISOファイルをアップロードします。

# ISOファイルのダウンロード
$ curl -LO https://github.com/rancher/k3os/releases/download/v0.2.0/k3os-amd64.iso

# アップロード
$ usacloud iso-image create --iso-file k3os-amd64.iso --name k3os

サーバ作成〜ISOイメージの挿入〜起動

以下のコマンドでサーバ作成〜ISOイメージを挿入〜起動まで行います。

$ usacloud server build --name k3os \
                        --core 2 \
                        --memory 4 \
                        --disk-size 40 \
                        --iso-image-id `usacloud iso-image read -q k3os`

VNCで接続

サーバが起動したらコンパネからコンソールを開くかVNC接続して操作できるようにします。 今回は以下のコマンドでVNC接続を行います。(windowsの方は拡張子.vncが適切に関連付けされていれば動くはずです)

$ usacloud server vnc --wait-for-boot k3os

うまくいけばこんな感じの画面が表示されるはずです。牛ですね!

f:id:febc_yamamoto:20190520173013p:plain

ユーザー名rancherでパスワードなしでログインできるはずです。

ディスクへのインストール

ディスクへのインストールは表示されている通りsudo os-configコマンドを実行すればOKです。
いくつか聞かれますが適当に進めていきます。

途中でSSH用の公開鍵をGitHubから取ってくるか聞いてくれます。この機能便利ですよね。

f:id:febc_yamamoto:20190520174400p:plain

あとはインストールが進みます。インストールが終わると再起動されるはずです。

SSHで接続してみる

ディスクへのインストール&再起動まで終わったらSSHで接続してみます。

$ ssh rancher@<サーバのIPアドレス>

動作確認

とりあえずkubectlしてみました。 f:id:febc_yamamoto:20190520175745p:plain

OKっぽいですね。

次にpodを起動してみます。

kubectl run nginx --image=nginx

、、、あれ?いつまでたっても上がってこない? ということでログなどを確認すると、どうも自身のホスト名が名前解決できないってエラーが出てるようでした。

Waiting for hostname sv-NNNNNNNNNNNN to be resolvable: lookup sv-NNNNNNNNNNNN on 133.242.0.3:53: no such host

このIssueですかね。 cannot run k3s server · Issue #60 · rancher/k3s · GitHub

ひとまず/etc/hostsを編集したら動きました。

f:id:febc_yamamoto:20190520180519p:plain

時間なくなっちゃったので細かな検証はまた今度。

終わりに

k3sの環境構築が楽に行えるのが確認できました。 細かいところはまだ確認できてませんが追々試していきます。

2019/5/20 追記

Packerでk3osのアーカイブ(AWSでのAMIみたいなやつ)作るサンプルを作成しておきました。

github.com

毎回ISOイメージからインストールするのが面倒という場合などにどうぞ。

===追記ここまで

以上です。