Ubuntu ServerにKubernetesクラスターを適切にデプロイする方法

Ubuntu ServerにKubernetesクラスターを適切にデプロイする方法
Microk8s を使用して Kubernetes クラスターをデプロイする開発者。
画像: Seventyfour/Adobe Stock

Kubernetesが難しいことは間違いありません。Kubernetesクラスターの導入は、最初の段階から多くのITプロフェッショナルにとって大きな課題となる可能性があります。幸いなことに、特にホスティングプラットフォームとしてUbuntu Serverを使用している場合、この作業を大幅に簡素化するツールがあります。そのツールとはMicrok8sです。この記事では、私がKubernetesクラスターを定期的に導入し、成功させている方法を解説します。

参照:採用キット: Python 開発者(TechRepublic Premium)

プロセス自体はそれほど難しくありませんが、必要な手順をすべて実行する必要があります。何かを省略すると、クラスターは動作しなくなります。それでは、デプロイに進みましょう。

Microk8sでKubernetesをデプロイするために必要なもの

Microk8s を使用して Kubernetes クラスターを正常にデプロイするには、次のものが必要です。

  • Ubuntu Server のインスタンスを少なくとも 3 つ実行します。
  • すべてのノードで sudo 権限を持つユーザー。

以上です。仕事に取り掛かりましょう。

適切なタイムゾーンを設定する方法

まず最初に、3つのノードすべてに適切なタイムゾーンを設定する必要があります。私は、適切なタイムゾーンが設定されていないことに気づかずに3台のマシンにデプロイしようとした際に、このことを痛感しました。適切なタイムゾーンが設定されていないと、ノードはコントローラーに接続できません。

タイムゾーンを設定するには、最初のノードにログインして次のコマンドを発行します。

timedatectl list-timezones

リストから、America/New_York などのタイムゾーンを見つけます。そのタイムゾーンを設定するには、次のコマンドを実行します。

sudo timedatectl set-timezone America/New_York

必ず、タイムゾーンを America/New_York に置き換え、クラスターの一部となるすべてのノードで上記の操作を実行してください。

各ノードのホスト名を設定する方法

各ノードのホスト名を設定します。ここではk8s1、k8s2、k8s3を使用します。ホスト名を設定するコマンドは以下のとおりです。

sudo hostnamectl set-hostname k8s1

コマンドを実行したら、変更を有効にするためにログアウトしてから再度ログインしてください。クラスタに参加するすべてのマシンで、各ノード名を置き換えてこのコマンドを実行してください。

ホストファイルの設定方法

次に、すべてのノードでhostsファイルを設定する必要があります。アドレスマッピングが次のようになっているとします。

192.168.1.70 k8s1
192.168.1.71 k8s2
192.168.1.72 k8s3

次のコマンドで hosts ファイルを開きます。

sudo nano /etc/hosts

上記のアドレスマッピングを、IPアドレスとホスト名を置き換えてファイルの末尾に追加します。ファイルを保存して閉じます。

Microk8sのインストール方法

ここで別の問題を発見しました。私がクラスタリングに成功したMicrok8sの最新バージョンは1.24です。Microk8sバージョン1.24をインストールするには、以下のコマンドを実行します。

sudo snap install microk8s --channel=1.24/stable --classic

上記のコマンドをすべてのノードで必ず実行してください。

ノードをクラスターに参加させる方法

上記の構成では k8s1 となるコントローラーで、次のコマンドを発行します。

microk8s add-node

上記のコマンドは、すべてのノードへの参加指示を返します。これらの指示には、次のようなコマンドが含まれます。

microk8s join 192.168.1.70:25000/b72da5f131d0aa09cbeaa9712cd865f5/5786c9b72085

その後、他のすべてのノードでも上記コマンドを実行する必要があります。すべてのノードで join コマンドが正常に実行されたら、コントローラーに戻り、次のコマンドでステータスを確認します。

microk8s kubectl get nodes

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

k8s1   Ready    <none>   24h   v1.24.8-2+1dda18a15eea38
k8s2   Ready    <none>   24h   v1.24.8-2+1dda18a15eea38
k8s3   Ready    <none>   24h   v1.24.8-2+1dda18a15eea38

クラスターの準備ができました

Microk8s を使った Kubernetes クラスターのデプロイはこれで完了です。クラスターのデプロイが失敗しないように、上記の手順をすべて実行してください。クラスターの準備ができたら、ポッドのデプロイを開始し、Kubernetes のパワーを享受できます。

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

TechRepublic Academy の The Mastering Linux Development Bundle で Linux についてさらに詳しく学びましょう。

Tagged: