はじめに
- インフラ領域で仕事をしていて「コンテナ」をキーワードとして聞くけども、触ったことがない
- 正直k8s,dockerの違いがわからん
- (最近やってないけど)ハイパーバイザーを入れてisoダウンロードしてきて仮想マシン起動、とかは最低限できる
- 中古で購入したMacBook Air 2018 に Linux Mint を入れ(T2セキュリティチップだったのでインストールに一癖ありました。参考にした手順はこちら)たけど検証機として持て余していたので、Kubernetes (k8s) の検証環境を構築した記録です
- 環境:MacBook Air 2018 / Linux Mint 22.3
- 手順はすべてGeminiと対話しながら進めました
- この記事も8割方Geminiにまとめてもらっています
- URL以外は勉強がてら手入力しました
構築手順とぶつかった壁
1. Docker のインストール
まずは土台となる Docker をインストールしました。
sudo apt-get update
sudo apt-get install ca-certificates curl gnupg
sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
# リポジトリ追加 (Mintの場合はベースのUbuntuコードネームを指定するのがコツ)
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu $(. /etc/os-release && echo "$UBUNTU_CODENAME") stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io
#一般ユーザーで実行できるように設定(設定後は再ログインが必要)
sudo usermod -aG docker $USER
2. ぶつかった壁:kubectl が見つからない
- 公式ドキュメント通りに apt-get install しようとしましたが、リポジトリの設定がうまくいかず、以下のエラーに遭遇しました。
E: パッケージ kubectl が見つかりません
- 解決策:
リポジトリ経由を諦め、バイナリを直接 curl でダウンロードしてパスの通った場所に配置しました。
# kubectlの直接ダウンロード
curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl"
sudo install -o root -g root -m 0755 kubectl /usr/local/bin/kubectl
# minikubeの直接ダウンロード
curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64
sudo install minikube-linux-amd64 /usr/local/bin/minikube
- クラスターの起動
minikube を Docker ドライバーで起動します。
minikube start --driver=docker
学習メモ:出てきた疑問と回答
GPG鍵の追加って何?
- ソフトウェアが「本物」であることを証明するための判子(公開鍵)をシステムに登録する儀式です。これがないと、悪意ある偽物を掴まされるリスクがあるため、パッケージマネージャが拒否します。
Pod (ポッド) とは?
- k8s における最小の管理単位です。Docker コンテナをさらに薄皮(Pod)で包んだもので、k8s はこの Pod 単位でスケールさせたり死活監視したりします。
minikube の停止方法
- 検証が終わったら、MacBook Air を休ませるために停止させます。
minikube stop
一旦まとめ
- MacBook Air 2018 + Linux Mint という環境でも、minikube (とGemini) を使えば比較的スムーズに k8s 環境が作れました。次は実際に Pod をデプロイして、サービスを公開するところまでやってみたいと思います。
- minukube起動時にはCPU/メモリ消費はほとんど変わりませんでした(4Kディスプレイにつなぎつつ、ブラウザでタブを4枚ほど開いた状態でminikubeをstart→CPU:30~40%、メモリ:3GB/8GB)

