Amazon Linux 2 に microk8s をインストールする方法
先日、Amazon Linux 2 に minikube をインストールする方法という記事を書きましたが、今回は microk8s をインストールする方法をまとめていきます。
インストール手順は、 Canonical 社の microk8s の Getting Start のページに記載されていますが、まず推奨される環境を用意します。
Getting Startのページでは次のような環境が推奨されています。
- 最低 20G のディスク空き容量
- 最低 4G のメモリ
そのため、EC2 インスタンスのインスタンスタイプは t3.medium を選択して、EBS のストレージ容量も 余裕をもって 30GB に設定することにしました。 t3.medium は、AWSの無料利用枠ではないためご注意ください。
また、EC2インスタンスに接続した後のシェルを bash にしておきましょう。
そのため、もし Systems Manager の Session Manager で接続した場合は、次の例のコマンドを実行して、シェルをbash
にして、かつホームディレクトリに移動しておくとよいでしょう。
sudo su - ssm-user
インスタンスに接続したら、さっそく microk8s をインストールしたいところですが、Amazon Linux 2 の場合は、まずは snapd
をインストールする必要があります。
snapdのリポジトリをダウンロードします。
cd /etc/yum.repos.d/
sudo wget https://people.canonical.com/~mvo/snapd/amazon-linux2/snapd-amzn2.repo
次に /etc/yum.conf
を開きます。
sudo vi /etc/yum.conf
そして、一番最後に下記を追記して保存します。
exclude=snapd-*.el7 snap-*.el7
これで、snapd をインストールできるようになります。
cd sudo yum install -y snapd sudo systemctl enable --now snapd.socket
snapd のインストールが完了したら、いよいよ microk8s をインストールします。
sudo snap install microk8s --classic --channel=1.24
注意: 実行後、次のようなエラーが表示された場合は、1,2分待ってから再度実行して下さい。
error: too early for operation, device not yet seeded or device model not acknowledged
インストールが完了すると、次のようなメッセージが表示されます。
microk8s (1.24/stable) v1.24.0 from Canonical installed
次に、OSユーザーを microk8sグループ に追加するなどの処理を行います。
sudo usermod -a -G microk8s $USER sudo chown -f -R $USER ~/.kube
設定を反映させるため、新たにセッションを開始します。
sudo su - $USER
microk8sのステータスを確認しておきましょう。
microk8s status --wait-ready
これで、microk8s を使用する準備が整いました。
ただ、microk8s では、Kubernetes を操作するのに microk8s kubectl
を使うため、次のような alias
を設定しておくことにします。
alias kubectl='microk8s kubectl'
では、シンプルな Deployment を作成して確認みましょう。
kubectl create deployment nginx --image=nginx
kubectl get pods
kubectl get deploy
microk8s を問題なくインストールできていれば、Pod のステータスは Running になっているはずです。
bash
を使う、snapd
のインストールが必要、という点に注意すれば、minikube よりもシンプルに使えそうだというのが個人的な感想です!