のべラボ.blog

謙虚に、臆せず、さぼらずにブログを書く

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 よりもシンプルに使えそうだというのが個人的な感想です!