microk8s を使って Kubernetes 開発クラスターを素早くデプロイする方法 - TechRepublic

microk8s を使って Kubernetes 開発クラスターを素早くデプロイする方法 - TechRepublic
木製の文字タイルで表現されたKubernetesのコンセプトの頭字語k8s
画像: lexiconimages/Adobe Stock

Kubernetesクラスターを立ち上げて稼働させるのは、本当に大変な作業です。開発者がDockerランタイムエンジンのサポートを終了したことで、この課題はさらに顕著になっています。そのため、開発用のクラスターをすぐに立ち上げたいと思っても、そのためにわざわざ新しい手順を踏むのは気が進まない、という場合もあるでしょう。

幸いなことに、microk8s があるので、いくつかの簡単なコマンドで小さな Kubernetes クラスターを簡単に作成できます。

参照: 採用キット: バックエンド開発者 (TechRepublic Premium)

これがどれほど簡単か、これからお見せします。このクラスターを起動して稼働させるのに5分もかかりません。

microk8sとは何ですか?

Microk8sは、Canonicalによって開発されたCNCF認定のアップストリームKubernetesデプロイメントツールです。これにより、単一ノードまたは複数ノードのクラスターのデプロイメントが非常に簡単になります。ただし、microk8sは本格的なKubernetesクラスターの代替ではないことにご注意ください。このツールは開発目的に限定されており、本番環境へのデプロイメントには適していません。

Microk8s を使用すると、Kubernetes 開発を非常に簡単に開始でき、スナップ経由で簡単にインストールできます。

必要なもの

これを起動するために必要なのは、Snapパッケージ(Ubuntuなど)をサポートするLinuxマシン2台と、sudo権限を持つユーザーだけです。ここでは、Ubuntu Server 22.04の仮想マシンインスタンス2台を使ってデモを行います。

Kubernetes の魔法を見てみましょう。

ホスト名の設定方法

microk8sをインストールする前に、ホスト名を設定しましょう。コントローラーをmicrok8s1、ノードをmicrok8s2に設定します。これを行うには、コントローラーにログインして次のコマンドを実行します。

sudo hostnamectl set-hostname microk8s1

ログアウトして再度ログインしてください。

ノードでも同じようにして、名前を microk8s2 に変更します。

次に、hostsファイルにそれぞれのエントリを追加する必要があります。コントローラー上のファイルを次のコマンドで開きます。

sudo nano /etc/hosts

そのファイルに、次のような 2 つのエントリを追加します。エントリは、IP アドレス スキームとドメインに合わせて編集してください。

192.168.1.135 microk8s.monkeypantz.lan microk8s1
192.168.1.137 microk8s.monkeypantz.lan microk8s2

ノードでも同じことを行います。

microk8sのインストール方法

まず最初に、両方のマシンにmicrok8sをインストールする必要があります。最初のマシンにログインし、以下のコマンドでソフトウェアをインストールします。

sudo snap install microk8s --classic

インストールが完了したら、次のコマンドを使用してユーザーを microk8s グループに追加する必要があります。

sudo usermod -aG microk8s $USER

次に、次の内容で .kube ディレクトリを作成します。

mkdir ~/.kube

次のようにして、新しいディレクトリに必要な権限を付与します。

sudo chown -f -R $USER ~/.kube

ログアウトして再度ログインしてください。

次のコマンドでインストールをテストできます。

microk8s status

出力には次のようなものが表示されます。

microk8s is running
high-availability: no
datastore master nodes: 127.0.0.1:19001
datastore standby nodes: none

2台目のマシンでも同じことを行います。

ノードに参加する方法

コントローラーとして機能するマシンで、次のコマンドを発行します。

microk8s add-node

上記のコマンドの出力には、次のような join コマンドが含まれる必要があります。

microk8s join 192.168.1.135:25000/f8f7c8b64ed411cf54a8307cead84e73/e0a27e14e027

2つ目のノードで join コマンドを実行します。コマンドが完了したら、次のコマンドで元のノードで接続を確認できます。

microk8s kubectl get nodes

コマンドの出力には、両方のノードがクラスターの一部であることが示され、次のような出力が表示されます。

microk8s1   Ready <none>   9m46s   v1.24.3-2+63243a96d1c393
microk8s2   Ready <none>   15s v1.24.3-2+63243a96d1c393

Kubernetesクラスターに高可用性(HA)を追加する場合、クラスターに最低3つのノードを結合する必要があることにご注意ください。ノードが3つあれば、HAは自動的に有効になります。また、ノードをワーカーとして結合することもできます。ワーカーはワークロードをホストできますが、Kubernetesコントロールプランを実行したり、クラスターのHAに追加したりすることはできません。ノードをワーカーとして結合するには、joinコマンドの末尾に--workerフラグを追加します。

microk8s join 192.168.1.135:25000/f8f7c8b64ed411cf54a8307cead84e73/e0a27e14e027 --worker

これで完了です。2ノードのKubernetes開発クラスターが5分以内にデプロイされました。本格的なKubernetesクラスターをデプロイする際の面倒な手順を踏む必要がないため、コンテナ開発を始めるのに最適な方法です。

Jack Wallen によるビジネス プロフェッショナル向けの最新のテクノロジー アドバイスをすべて知るには、YouTube で TechRepublic の How To Make Tech Work を購読してください。

TechRepublic Academy のこれらのリソースを利用して Kubernetes に関する知識を広げましょう。

Tagged: