k3os on さくらのクラウド
k3osを試してみましたのでメモ残しておきます。
Update: 2019/5/29
さくらのクラウド側でk3OSのISOイメージが提供されるようになりました。
この記事でのISOイメージのダウンロード/アップロードの部分は不要となりました。
===Updateここまで
k3osって?
kubernetesに特化した軽量OSで、軽量kubernetesディストリビュージョンである「k3s」を組み込んだOSとなっています。
Public Keyでも取り上げられましたね。 www.publickey1.jp
前見たときはリリースページにARM向けのISOファイルしかなかったのですが、今日改めて確認したらAMD64向けもちゃんと提供されるようになってたので試してみました。
試してみる
インストール
流れとしては以下の通りです。
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
うまくいけばこんな感じの画面が表示されるはずです。牛ですね!
ユーザー名rancher
でパスワードなしでログインできるはずです。
ディスクへのインストール
ディスクへのインストールは表示されている通りsudo os-config
コマンドを実行すればOKです。
いくつか聞かれますが適当に進めていきます。
途中でSSH用の公開鍵をGitHubから取ってくるか聞いてくれます。この機能便利ですよね。
あとはインストールが進みます。インストールが終わると再起動されるはずです。
SSHで接続してみる
ディスクへのインストール&再起動まで終わったらSSHで接続してみます。
$ ssh rancher@<サーバのIPアドレス>
動作確認
とりあえずkubectlしてみました。
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を編集したら動きました。
時間なくなっちゃったので細かな検証はまた今度。
終わりに
k3sの環境構築が楽に行えるのが確認できました。 細かいところはまだ確認できてませんが追々試していきます。
2019/5/20 追記
Packerでk3osのアーカイブ(AWSでのAMIみたいなやつ)作るサンプルを作成しておきました。
毎回ISOイメージからインストールするのが面倒という場合などにどうぞ。
===追記ここまで
以上です。