Rancher入門:Rancherを用いたKubernetesクラスター管理

はじめに

前回の記事では、Terraformを使用してAWS上にEC2インスタンスを構築し、RKE2を用いてKubernetesクラスターとRancher Serverをセットアップする手順を解説しました。
今回の記事では、前回構築したRancherを活用して、複数のKubernetesクラスターを管理する方法を紹介します。

本記事の内容

  • RancherからEKSクラスターを作成する方法
  • 既存のKubernetesクラスターをRancherにインポートする方法
  • RancherでNode数を管理する方法
  • RancherからKubernetesクラスターをアップグレードする方法
  • RancherのGUIからnginxをデプロイする方法

概要

本記事では、Rancherのダッシュボードを活用して、複数クラスターの構築・管理を行う手順を説明します。

前提条件

  • Rancher Serverが構築済みであること
  • Rancherのダッシュボードにログインできていること

構築イメージ

複数クラスターの構築イメージは以下のようになります。管理対象クラスターのセットアップ方法は後ほど解説します。

管理対象クラスターの追加

RancherからEKSクラスターを作成

Rancher Serverにログインし、ホーム画面のサイドバーからクラスター管理画面(Cluster Management)に移動します。

まずはRancherからAWS環境にアクセスできるよう、AWSの認証情報を登録します。

Cloud Credentialsを選択して、クラウドの認証情報を管理する画面に遷移します。
Createを選択し、クラウドプロバイダーの選択画面に遷移します。

Amazonを選択し、AWSのクレデンシャル情報を入力します。なお、今回使用するAWSのIAMユーザーにはAdministrator Access権限をアタッチしています。

  • Credential Name: 任意の名称
  • Access Key: アクセスキー
  • Sercret Key: シークレットキー

AWSの認証情報を保存します。これでRancherからAWSアカウント上のリソースを操作できるようになりました。
続いて、クラスター作成メニュー画面でAmazon EKSを選択します。

クラスター初期設定画面で必要な項目を入力し、Createを押下します。

  • クラスター名
  • リージョン:us-east-1を選択
  • Kubernetes Version: 1.30※1
  • Instance Type: t3.medium
  • スケール設定
    • Desired ASG Size: 2
    • Minimum ASG Size: 2
    • Maximum ASG Size: 2

※1: あとでRancherのダッシュボードからクラスターのアップグレードをするため、最新よりひとつ前のバージョンを選択しています。

クラスターの作成が完了したら、サイドバーからEKSクラスターのダッシュボードに遷移します。

Nodeを選択すると、クラスター内のNodeの情報を閲覧できます。

これでEKSクラスターの構築が完了しました。このように、Rancherのダッシュボードから簡単にEKSクラスターを構築することができます。また、構築後もRancherの画面UIからNodeを操作することができます。

既存のKubernetesクラスターをRancherにインポートする

クラスターの概要

今回は、以下の構成でKubernetesクラスターを構築し、Rancherにインポートします:

  • Control Plane:3台
  • Worker Node:2台

既存のKubernetesクラスターをRancherにインポートすることで、Rancherの管理下で監視・操作が可能になります。

前提条件

Terraformを利用して、以下の設定を含むEC2インスタンスを5台デプロイします:

  • OS:Ubuntu 24.04
  • 各インスタンスのセキュリティグループ設定が完了していること(ポート443, 9345などが開放済み)

Terraformのコードはこちらを使用します。
Kubernetesディストリビューションは前回同様RKE2を使用します。

Terraformを実行し、AWS上にリソースを作成します:

$ terraform init
$ terraform apply

1. Control Planeの構築

Control Planeの構築手順は前回の記事で詳しく説明しています。
以下をご参照ください: RKE2でControl Planeを構築する方法

2. Worker Nodeの構築

ここでは、Worker Nodeを追加する手順を解説します。
参考:公式ドキュメント(Linux Agent (Worker) Node Installation)
Worker Node用にデプロイしたEC2インスタンスにSSHでログインします:
IPアドレスはTerraformのoutput「worker_node_public_ips」に出力されます。

$ ssh -i <YOUR_INSTANCE_KEY> ubuntu@<WORKER_NODE_PUBIC_IP>
RKE2エージェントのインストール

以下のコマンドを実行して、RKE2エージェントをインストールします:

$ curl -sfL https://get.rke2.io | sudo INSTALL_RKE2_TYPE="agent" sh -
$ sudo systemctl enable rke2-agent.service
RKE2エージェントの設定

設定ファイルを作成し、Control Planeと接続するための情報を記述します:

$ sudo mkdir -p /etc/rancher/rke2/
$ sudo vi /etc/rancher/rke2/config.yaml

設定内容(例):

server: https://<NLB_DNS_NAME>:9345
token: <TOKEN_FROM_SERVER>

※TOKEN_FROM_SERVERはControl Planeで設定したtokenと同じ

Worker Nodeを起動します。

$ sudo systemctl start rke2-agent.service
ノードの状態確認

Control Plane用のインスタンスにSSHでログインし、ノードの状態を確認します。

$ kubectl get nodes

Worker Nodeが正常に表示されれば、クラスターの構築は完了です。

3. Rancherにクラスターをインポートする

構築したKubernetesクラスターをRancherにインポートします。

  • Rancher UIにアクセスし、サイドバーからクラスター管理画面に遷移します。
  • Import Existingを選択します。
  • Cluster Import画面で「Generic」を選択します。
  • クラスター名を入力し、Createボタンを押下します。
  • クラスターを構築したEC2インスタンスにSSHでログインし、RancherのUI画面に表示されたkubectl applyコマンドを実行してください。

    $ kubectl apply -f <AUTO_GENERATED_MANIFEST>

    Rancherは管理対象クラスターを識別するために、cluster-agentというエージェントを利用します。このエージェントは、RancherのUIで自動生成されるマニフェストを対象クラスターに適用することで起動します。

  • cluster-agentが正常に起動すると、Rancherはcluster-agentを通じてクラスターを認識します。Rancherのサイドバーからクラスターの詳細画面に遷移できるようになります。

Nodesを選択すると、事前に作成した通り、Control Planeが3台、Worker Nodeが2台稼働していることを確認できます。これで、KubernetesクラスターをRancherにインポートして、クラスターを管理できるようになりました。

Rancherを使ったクラスター管理

Node数の調整

連携したKubernetesクラスターをRancherの画面上から操作してみます。

  • サイドバーからクラスター管理画面に遷移し、先ほど作成したEKSクラスターを選択します。
  • Edit Configを選択してクラスター設定の編集画面に遷移します。
  • Node Groupsのgroup1でAutoScalingGroupのスケール数を引き上げて保存します。すると、クラスターの更新が開始されます。
    • Desired ASG Size: 5
    • Maximum ASG Size: 5
  • クラスター更新完了後、全てのNodeがActive状態になったことを確認します。
    これで、Rancherの操作画面からクラスターのNode数を増やすことができました。


続いて、増やしたNode数を減らしてみます。

  • 先ほどと同じ手順でEKSクラスターのクラスター設定編集画面に遷移し、今度はASGのスケール数を引き下げます。
    • Desired ASG Size: 3
  • クラスター更新完了後、指定したDesired Sizeの数までNode数が減少したことを確認します。
    このように、Rancherからクラスター内で稼働するNode数を調整することが可能です。


※Node数の調整はRancherのUIから作成したクラスターのみ利用可能です。インポートしたクラスターはRancherから操作できないため、Node数を増減させることができません。
公式ドキュメント: Node Options Available for Each Cluster Creation Option

クラスターのアップグレード

EKSクラスターのアップグレード

RancherからKubernetesクラスターのバージョンをアップグレードすることができます。

  • サイドバーからクラスター管理画面に遷移し、EKSクラスターのEdit Configを選択します。
  • 編集画面内のプルダウンからKubernetesの新しいバージョンを指定して保存します。
  • クラスターの更新が開始されます。バージョンアップ完了までおよそ10分ほどかかります。
  • AWSのマネジメントコンソールでEKSの画面に遷移すると、EKSクラスターが更新状態になっていることを確認できます。
  • クラスターの更新が完了すると、EKSクラスターのバージョンが1.31に更新されていることが確認できます。

インポートしたクラスターのアップグレード

続いて、先ほどインポートしたクラスターもアップグレードしてみます。

  • EKSクラスターの時と同じ手順で、クラスター管理画面のEdit Configからクラスター設定情報の編集画面に遷移します。
  • 編集画面でKubernetesの新しいバージョン(今回は1.31)を選択して保存します。
  • クラスターの更新が完了すると、Kubernetes Versionの表示が指定したバージョンに更新されていることが確認できます。これで、インポートしたクラスターのアップグレードは完了です。

このように、Rancherを利用すれば、Kubernetesクラスターのバージョンアップを簡単かつ効率的に実施できます。また、クラスター一覧画面で各クラスターのバージョンが一目で確認できるため、どのクラスターに更新が必要かを即座に把握することができます。これにより、複数クラスターのバージョン管理がシンプルになり、運用負荷を軽減することができます。

ワークロード管理

RancherのWeb UIから管理対象クラスター内にPodをデプロイしてみます。

  • サイドバーからインポートしたクラスターのダッシュボードに遷移します。
  • Workloads内のDeploymentsを選択し、Deployments画面内でCreateを選択します。
  • Deploymentの設定画面でnginxのPodを6つ起動する設定を入力します。
  • Createボタンを押下し、しばらくするとnginxのPodが6つ起動します。

今度はnginxのPodのレプリカ数を減らしてみましょう。

  • Deployment一覧画面で先ほど作成したnginx-demo-deploymentを選択し、Edit Configで設定編集画面に遷移します。
  • 編集画面でreplicasを3に変更して保存します。
  • Deploymentの更新が完了すると、nginxのPod数が指定した数まで減少します。

RancherのGUIを活用すれば、Kubernetesクラスター内のリソース設定を直感的に管理できます。マニフェストファイルを一から作成する必要がなく、UI画面上で簡単にリソースの作成や編集が可能です。また、GUIでの操作に加え、必要に応じてYAMLファイルを直接編集して詳細な設定を行うこともできます。

まとめ

Rancherを導入することで、ブラウザ上から複数のKubernetesクラスターを効率的に管理できます。特にマルチクラスター環境の運用を効率化するため、Rancherは強力なツールとなります。
次回の記事では、Rancherのモニタリング機能について詳しく解説しますので、ご期待ください。

参考

Rancher公式ドキュメント

ご覧いただきありがとうございます! この投稿はお役に立ちましたか?

役に立った 役に立たなかった

0人がこの投稿は役に立ったと言っています。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です