Kubernetesを使う際、すべてCLIでもいいのだけど、全体を俯瞰して見る場合、UIがあると格段に楽です。他にもRancherのUIからPodの中にshellで実行できたりするのもちょっとした確認などにもとても便利です。
もちろん、RancherからKubernetesクラスタを作成するのもとても楽です。
特にオンプレ環境の方やお家クラスタ管理者な人ならこの楽さを感じるのではないでしょうか。
そこで、Kubernetesクラスタの管理プラットフォームであるRancherを体験出来るまでの流れを説明していきます。また、HTTP PROXYな環境を考慮して進めていきます。
本番を想定するなら、LBと最低3ノード用意してKubernetesをセットアップした後に、そこにRancherをインストールする必要がありますが、Kubernetesクラスタ管理を体験するだけならDocker化したRancherを使うだけでも十分です。
本番を意識したRancherの構成は以下を参照
Architecture Recommendations | Rancher
前提
- Ubuntu v22以降
- Rancher v2.11.x
今回は、全てOSはUbuntu v22.04 とし、Rancherの実行は Docker Engine v28.3.2 にて確認。
構成
- Dockerホスト:1ノード
- Rancherコンテナを起動するためのノード
- Rancherから作成して管理下に置くKubernetesクラスタ
- "etcd + control plane(システムコンポーネントのみ)" のみを 1ノード
- "worker"のみを 5ノードとする
Rancherで管理するKubernetesノードは、1ノードでも大丈夫
やること
-
docker stop
/docker rm
しても状態が消えないRancherを用意 - 起動したRancherからRancherと別NodeにDownstream Clusterを作成
手順
大まかな手順としては、RancherをDockerコンテナで起動し、Rancher UIを使ってRancher管理化のKubernetesクラスタを構築していきます。
Rancherのセットアップ
Rancherの起動
DockerコンテナでRancherを起動していきます。
Rancherのお試し環境を作成する際、Rancherのクイックスタートにもある様に以下で実行は出来ます。
$ sudo docker run -d --restart=unless-stopped \
-p 80:80 -p 443:443 \
--privileged \
index.docker.io/rancher/rancher:v2.11.3
ただ、この場合、コンテナを削除すると中身のデータが揮発します。
そこで、コンテナを落としても復旧出来るようにデータは永続化した状態でRancherを起動します。
ポイントは /var/lib/rancher
をホストディスクか名前付きボリュームなどで永続化したらOK。また、Proxy環境の場合は以下のようにProxyの環境変数の設定もお忘れなく。特にNO_PROXYは Rancher 独自の追加値が必要です(例にあるNO_PROXYの後に続けている箇所)。
例:
$ sudo mkdir -p /opt/rancher/data
$ cd /opt/rancher/data
$ sudo docker run -d --restart=unless-stopped \
--name rancher \
-p 80:80 -p 443:443 \
-v /opt/rancher/data:/var/lib/rancher \
--privileged \
-e HTTP_PROXY=$HTTP_PROXY \
-e HTTPS_PROXY=$HTTPS_PROXY \
-e NO_PROXY="${NO_PROXY},0.0.0.0,10.0.0.0/8,cattle-system.svc,.svc,.cluster.local" \
index.docker.io/rancher/rancher:v2.11.3
参考
Rancher UIにログインする
コンテナを起動後、docker logs -f rancher
でRancherコンテナのログを見てると以下のようなログが出てきます。表示されているURLにブラウザでアクセスして、管理者ユーザ admin のパスワードを設定ください。
$ sudo docker logs rancher 2>&1 | grep "Bootstrap Password:"
2025/07/16 08:59:48 [INFO] Bootstrap Password: 7lz67qmp4bhtndmphwx6gvwhb7k8jfgdsd4cf4jk2nf5skbc8zjmbf
もしくは以下のようにRancherコンテナの中に入って確認も出来ます。
$ sudo docker exec -ti rancher bash
bash-4.4# kubectl get node
NAME STATUS ROLES AGE VERSION
local-node Ready control-plane,etcd,master 3h39m v1.32.1+k3s1
bash-4.4# kubectl get secret --namespace cattle-system bootstrap-secret -o go-template='{{.data.bootstrapPassword|base64decode}}{{"\n"}}'
7lz67qmp4bhtndmphwx6gvwhb7k8jfgdsd4cf4jk2nf5skbc8zjmbf
bash-4.4# exit
adminユーザーのパスワード設定後、Rancher UIで、localクラスタ(Rancher)のPodの状態が以下のようにすべて正常であればOK
Kubernetesクラスタの作成
Rancherで管理するKubernetesクラスタをRancherではDownstream Cluster(またはManaged cluster)と呼びます。
RancherのUIからDownstream Clusterを作成していきます。
下図の様に左のメニューの「家のアイコン」を選択し、Cluster Management UIの「Create」ボタンからDownstream Clusterを作成します。
作成したい環境に応じて選んでいきます。
- Managed Kubernetesの場合 → ①
- AWSやAzureなどのVMを作成しつつRKE2 or K3sでKubernetesを構成する場合 → ②
- 準備済のVMインスタンス または ベアメタル環境の場合 → ③
今回はOSセットアップ済みの環境でセットアップするので ③ で進めていきます。
下図の各項目にて必要なオプションを設定したら画面右下の「Create」ボタンを押下する。
項目 | 例 |
---|---|
RKE2/K3s 及びK8sバージョンの選択 |
![]() |
CNIの選択 | ![]() |
HTTP PROXY環境向け |
![]() ⚠️NO_PROXYに CIDR/Service CIDR が含まれているかチェック |
その他については以下を参照。
他にも、既存のKubernetesクラスタを後からRancher管理化にする(Import)方法もあります。状況に応じて、出来ること・出来ないことがあるので、詳しくは以下を参照。
Registrationタブにて、①のロールを選択し、②については、今回RancherをDockerコンテナ使って起動し、TLSについては自己証明書を使っているのでチェックをつけます。
ぼかしにはcurlを含むセットアップのコマンドコマンドが記載されてるので、これをコピーして、用意しているノードにコピペして実行します。
①について、今回は「自分のワークロード」と「システムコンポーネント(etcdやcontrol plane)」を分けたいので、1ノード目だけ「etcdとcontrol plane」だけチェックをいれた状態のコマンドとし、 2ノード目以降は「worker」だけチェックを入れた状態のコマンドとします。
各ノードでコマンドを実行して5分くらい暫く待つと、以下のように全てのノードがActiveになります。
初回はイメージの取得などに時間かかるので、コーヒーのおかわりでも入れにいって戻ったあたりには出来上がってます ☕
動作確認
①の様なアイコンが出来てるので、そこから作成したクラスタのダッシュボードへアクセスします。
②にて、作成したクラスタのKubeConfigがコピーまたはダウンロード出来るので、自分の環境に合わせてkubectl環境に反映。
反映したらkubectlコマンドを実行して問題がないか確認。全てのノードのSTATUSがReadyになっていたらOK。
$ k get node -o wide
NAME STATUS ROLES AGE VERSION INTERNAL-IP EXTERNAL-IP OS-IMAGE KERNEL-VERSION CONTAINER-RUNTIME
yassan-test03 Ready control-plane,etcd,master 27h v1.32.5+k3s1 172.30.46.33 <none> Ubuntu 22.04.5 LTS 5.15.0-144-generic containerd://2.0.5-k3s1.32
yassan-test04 Ready worker 27h v1.32.5+k3s1 172.30.46.34 <none> Ubuntu 22.04.5 LTS 5.15.0-144-generic containerd://2.0.5-k3s1.32
yassan-test05 Ready worker 27h v1.32.5+k3s1 172.30.46.35 <none> Ubuntu 22.04.5 LTS 5.15.0-144-generic containerd://2.0.5-k3s1.32
yassan-test06 Ready worker 27h v1.32.5+k3s1 172.30.46.36 <none> Ubuntu 22.04.5 LTS 5.15.0-144-generic containerd://2.0.5-k3s1.32
yassan-test07 Ready worker 27h v1.32.5+k3s1 172.30.46.37 <none> Ubuntu 22.04.5 LTS 5.15.0-144-generic containerd://2.0.5-k3s1.32
yassan-test08 Ready worker 27h v1.32.5+k3s1 172.30.46.38 <none> Ubuntu 22.04.5 LTS 5.15.0-144-generic containerd://2.0.5-k3s1.32
Tips(更に深堀りしたい人へ)
Rancher固有の用語について
RancherとDownstream Clusterの関係や各コンポーネントの概要は以下。
Rancherを使う場合にDownstream Clusterとの通信がどうなっているかを掴むなら以下。
おまけ1:Rancherから作成出来るKubernetes Clusterやノードについて
デフォルトはInactiveになって入るけど、下図の様に選択肢としては存在する。
Cluster Driver
Node Driver
おまけ2:Rancherのユーザ管理
Rancherは独自の認証もあるのだけど、Authentication Providersとして下図に対応しています。
Githubについては、Github Enterpriseにも対応している。