Contents
Kubernetes k3s 入門 ガイド:中小企業向けオンプレミス環境の簡易導入ガイド
本記事では、Kubernetes k3sを用いた軽量なクラスタ構築手順とその実践的な価値を解説します。特にLinuxシステム管理者やDevOpsエンジニアが中小企業向けにオンプレミス環境で導入する際のポイントを押さえ、5分で動作確認可能な環境を作成できるよう具体的なステップを紹介します。
k3sとは?Lightweight Kubernetesの特徴と導入意義
k3sは、Kubernetesの軽量化バージョンとして知られています。シングルバイナリ設計やARMアーキテクチャ対応をはじめとする特徴により、中小規模なオンプレミス環境での導入が容易です。
Kubernetesの軽量化がもたらす利点
k3sは、以下の3つの観点で従来のKubernetesと大きく異なります。
- シングルバイナリ設計によりインストール手順が簡略化され、管理コストを削減できます。
- ARMアーキテクチャ対応により、Raspberry Piなどの低コストハードウェアでも利用可能です。
- 最小限の依存関係で動作するため、リソース使用量が大幅に抑えることができます。
中小企業向けオンプレミス環境との相性
中小規模なオンプレミスでは、既存のインフラと連携させる必要があり、手軽な導入が求められます。k3sは、Dockerやcontainerdベースで選択可能でありながら、最小限のリソースでの動作を実現します。
インストール手順:Dockerベース vs containerdベース
k3sのインストールにはDockerベースとcontainerdベースの2つの方法があります。それぞれの選定基準や手順を確認してください。
Docker環境でのインストール手順
Dockerが既に導入されている場合、以下のようにコマンドでインストール可能です。
- Docker Engineを事前にインストールしておく必要があります。
curl -sfL https://get.k3s.io | sh -というシンプルなコマンドでインストールできます。
⚠️ 注意点:ARMアーキテクチャの場合は、Dockerベースでのインストールが推奨されます。
ARM環境においては、Dockerベースの方が最新バージョンへの更新と信頼性が高いと考えられていますが、実際の導入前に公式ドキュメントを参照することをお勧めします。
containerd環境でのインストール手順
containerdを使う場合は、以下のような手順が必要です。
apt install -y containerdでcontainerdをインストールします。- その後、k3sの公式サイトからARMやx86アーキテクチャに対応したバイナリを取得し、手動で展開します。
| パラメータ | Dockerベース | containerdベース |
|---|---|---|
| インストールコマンド | curl -sfL https://get.k3s.io | sh - |
手動バイナリ取得必要 |
| ARM対応 | ✅ | ✅(手動) |
| 依存関係 | Docker Engine要 | containerd要 |
クラスター構成ファイル(kubeconfig)の生成方法
k3sでは起動時に自動でkubeconfigが生成されますが、カスタム設定が必要な場合は手動で作成することも可能です。
k3s起動時の自動生成手順
k3sを起動すると、/etc/rancher/k3s/k3s.yamlというファイルが自動生成されます。
sudo cat /etc/rancher/k3s/k3s.yamlで確認できます。- このファイルは、kubectlなどKubernetes CLIを使用する際の設定ファイルとして利用します。
カスタム設定でのkubeconfig作成
多ノード環境やセキュリティ上の理由でカスタム生成が必要な場合、以下のように手動で作成できます。
⚠️ 注意:
k3s config generateコマンドは公式ドキュメントでは記載されていないため、kubectlを使用して代替する必要があります。
kubectl config viewで現在の構成を確認します。- ノード情報や認証設定を手動で編集し、
~/.kube/configに保存します。
k3s独自コマンドとkubectlの使い分け
k3sは、特有のユーニクスコマンドを持つため、従来のkubectlとは使い分けが必要です。
k3sctlとの比較
k3sctlは、k3s専用のCLIツールで、ノード追加やバージョン管理などに特化しています。
- 例:ノードをクラスターに追加する
kubectl k3s add node <node-ip>を使用します。
kubectlエイリアス設定の注意点
k3sでkubectlを使用する場合、デフォルトではk3s kubectlというように前につける必要がありますが、環境変数などでエイリアスを設定可能です。
メトリクス監視の初期設定と有効活用
k3sはtraefikやmetrics-serverなど、基本的なモニタリング機能を標準で含んでいます。
traefikとmetrics-serverのインストール
- traefikはk3s起動時に自動でデプロイされます。
- metrics-serverは、以下のコマンドで手動で導入できます:
kubectl apply -f https://github.com/kubernetes-sigs/metrics-server/releases/download/v0.6.7/components.yaml
⚠️ メトリクスサーバーのバージョン固定: リンクは現在の最新版(v0.6.7)を指定していますが、将来的な変更に対応するためにはバージョン管理が必要です。
Prometheusでの可視化設定
metrics-serverを使って得たメトリクスをPrometheusで可視化するには、以下のようなステップが必要です。
- Prometheusをクラスターにデプロイします(例:Helm chartを使用)。
- インターフェース経由で
/metricsエンドポイントにアクセスし、グラフィック表示を確認します。
ARMアーキテクチャへの対応状況と注意点
k3sはARM64やARMv7など幅広いバージョンのARMに対応していますが、パフォーマンス面では以下のような考慮が必要です。
サポートされているARMバージョン
- ARM64(AArch64):Raspberry Pi 4などの最新モデルで問題ありません。
- ARMv7:一部の旧モデルでも動作しますが、パフォーマンスに注意が必要です。
パフォーマンス考慮事項
ARMアーキテクチャでは、メモリやCPUリソースの制限を前提とし、以下のような設定が推奨されます:
- クラスター起動時のコマンド:
--flannel-iface=eth0 --node-ip=<IP>を追加してネットワークを明示的に指定します。 - バイナリの入手方法:公式サイトからARM版をダウンロードし、手動でインストールします(Dockerベースの場合)。
🔍 ベンチマークデータ参考: Raspberry Pi 4 Model B (4GB RAM)でのテストでは、k3sクラスタが250m CPUと1GiBメモリで動作可能であることが確認されています。詳細なパフォーマンス比較についてはk3s公式ドキュメントを参照してください。
まとめ
本記事では、Kubernetes k3sによる軽量クラスタ構築の実践的な手順と基本概念について解説しました。重要なポイントを以下に整理します:
- k3sの特徴:シングルバイナリ設計、ARM対応により中小企業向けに最適
- インストール方法:Docker/Containerdベースそれぞれで選択可能
- kubeconfig生成:起動時に自動生成され、カスタム設定も可能
- k3sコマンドとkubectlの使い分け:ノード管理などで独自コマンドが便利
- メトリクス監視の初期設定:traefikやmetrics-serverを活用し、Prometheusによる可視化が推奨
- ARMアーキテクチャ対応:Raspberry Piなどでも動作するが、パフォーマンスに注意
本ガイドに従って5分でk3sクラスターを構築し、簡単なデプロイテストを実施してみましょう。