k3s をインストールしてみた

こんにちは。サイオステクノロジー OSS サポート担当 Y です。

今回は、最近話題の k3s をシングルノード構成でインストールしてみました。(※以下の内容は CentOS 7.6/k3s v0.2.0 にて検証しています。)

■はじめに

今回は、Rancher Labs が開発した k3s を試してみました。

こちらのページにも記載されていますが、k3s は “軽量な Kubernetes (Lightweight Kubernetes)” です。

名前の由来は “5 less than k8s” であり、通常の Kubernetes から 5つの要素が変更 (及び削除) され、より軽量な実装になっているようです。通常の Kubernetes からの変更内容については GitHub の README に記載されています。

■k3s のインストール

それではさっそく、検証してみようと思います。

まずはインストールですが、k3s はシングルバイナリで提供されているため、そのバイナリを 1つダウンロードするだけです。(1つのバイナリの中に “API Server”, “Controller Manager”, “Scheduler” 等の Kubernetes のコンポーネントがまとめられているそうです)

■k3s 起動

では、ダウンロードしたバイナリを使って k3s を起動してみます。

Quick start に記載されている通り、シングルノード構成 (Master のみ起動する) であれば、1コマンドで起動してくれるようです。

しかし、上記の様なエラーになってしまいました。

このエラーについて調べてみたところ、いくつかの類似する Issues あるようであり、それらの内容を見ると /etc/hosts にホスト名を記載すると事象が改善するという情報があったので、試してみました。

すると、上記の様に正常に起動することができました。

■動作検証 (Pod のデプロイ)

最後に、起動した k3s 上にコンテナ (Pod) をデプロイしてみます。

今回は、こちらの記事で利用したものと同じマニフェスト (YAML ファイル) を作成し、k3s kubectl apply コマンドで適用します。

マニフェストの詳細は割愛しますが、大雑把に説明すると以下の様な設定を実施しています。

・NGINX コンテナ (Pod) を 3つデプロイ。
・k3s をインストールした仮想サーバの 30080番 port 宛の通信を、いずれかの NGINX コンテナの 80番 port に転送。

また、どの NGINX コンテナ (Pod) からのレスポンスであるかを判断できるように、Pod 名をレスポンス (index.html) に含めるようにしています。

デプロイが完了すると、各リソースの状態が以下の様になると思います。

それでは、実際に k3s をインストールした仮想サーバの 30080番 port 宛てに HTTP リクエストを投げてみます。

すると、上記の様に正常に HTTP レスポンスが返ってきました。

何回かリクエストを実行すると、レスポンスに含まれている Pod 名が変わっている (複数の NGINX コンテナ宛てにリクエストが振り分けられている) ことも確認できます。

上記の通り基本的な機能については、k3s が通常の Kubernetes と同じように動作 (Pod のデプロイや Service での負荷分散等) していることが確認できました。

■まとめ

今回は、最近話題の k3s を試してみました。

Lightweight Kubernetes という記載の通り、実際に利用したバイナリのサイズを確認してみると約 36MB となっていました。

また、こちらのページに記載されているシステム要件も以下の様になっており、スペックの低いマシンでも動作させることができるようです。

実際に、今回の検証は CPU 1 core / Memory 2GB の仮想サーバ上で実施していますし、コマンド 1つで簡単に起動できるので、ちょっとした Kubernetes の動作検証には丁度良いかもしれません。

まだリリースされて日が浅く、本記事の執筆時点では Server HA 等の機能が実装されていないため、本番環境での利用は難しそうですが、よりシンプルかつ軽量な Kubernetes として今後に期待できそうです。

機会があれば、複数ノードを利用した k3s クラスタ構築にも挑戦してみようと思います。

>> 雑誌等の執筆依頼を受付しております。
   ご希望の方はお気軽にお問い合わせください!

ご覧いただきありがとうございます! この投稿はお役に立ちましたか?

役に立った 役に立たなかった

0人がこの投稿は役に立ったと言っています。

コメント投稿

メールアドレスは表示されません。


*