🐳

Rancher2.8とRKE2を使ってみる

2024/04/29に公開

Rancher を使ってみる

RancherというKubernetesの管理UIシステムがあり,それを使ってKubernetesを構築してみます。
つい最近Rancherのv2.8がリリースされたので最新版を試して見つつ自宅にKubernetes環境を導入することを目指します。

環境

  • 基盤
    Proxmox VE 8.1
  • Rancher Server
    Ubuntu22.04 2CPU、2GBメモリ、40GBディスク
  • RKE Cluster
    Ubuntu22.04 4CPU、4GBメモリ、40GBディスク

Rancher Server インストール

仮想化基盤のproxmoxにUbuntu Server22.04をインストールしてその上で使うことにします。
初期インストールは割愛。
思ったよりもストレージを使うので多めに確保しておくと良いかもしない、16GBでは容量一杯で失敗した.....
インストールオプションはいくつかあるのだけれど、今回はk3sを使ったシングルノードのRancher Serverとします。
その場合Dockerを使って簡単に構築できます。

Dockerのインストール

Dockerを利用するのでDockerをインストールします。
SnapのDockerだとうまくいかないので公式の手順を使います。

Ubuntu
$ sudo apt-get install ca-certificates curl gnupg
$ sudo install -m 0755 -d /etc/apt/keyrings
$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
$ sudo chmod a+r /etc/apt/keyrings/docker.gpg
$ echo   "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
   $(. /etc/os-release && echo "$VERSION_CODENAME") stable" |   sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
$ sudo apt-get update
$ sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

$ sudo usemod -aG docker $USER

Rancher Serverの展開

次にRancherをインストールしていきます。
インストールと言ってもDockerイメージを落としてきて立ち上げるだけなのだけれど。

docker run -d --restart=unless-stopped -p 80:80 -p 443:443 --privileged rancher/rancher:latest
これでDocker Image をpullしたあと立ち上がってきたGUIにアクセスできれば良いです。
http://localhost(IPADDRESS)へアクセスし下のような画面が出れば成功。
内部でk3sを立ち上げるようなので起動にはやや時間がかかるため気長に待ちます。

初期設定

WEBインターフェースに入ることができたら初期設定を行っていきます。
最初にログイン方法の指定があり、デフォルトパスワードを取得しないといけないので指示通り

rancher
$docker ps
$docker logs <docker logs  container-id>  2>&1 | grep "Bootstrap Password:" 2>&1 | grep "Bootstrap Pass"

とコマンドを叩くと長いランダム作成されたパスワードが表示されるのでこれを入力してログインします。

ログイン成功するとパスワードを設定するか聞かれるのでそのままで良ければ表示通り、カスタムする場合は任意の文字列を入力しパスワードを設定します。

WEB UI

中に入ると自身を動かしているk3sがLocalのKubernetes環境として認識されています。
一通り中を確認できたらRancher Server構築完了です。
既にKubernetes環境がある方は管理下に追加しても良いですし、また新たに作っても良いでしょう。
良いk8sライフを!

Rancher によるKubernetes環境のデプロイ

Rancher は多くのKubernetes クラスタを管理できますが、UIから簡単に構築することもできます。
我が家にはまだKubernetesクラスタが存在していないため、今回はRancher を使ってKubernetesクラスタを構築してみます。

準備

Rancher Serverから各クラスタを構築するマシンへSSH接続できることを確認しておきます。
次にRancher UIからCluster Management -> Create へ進みどの環境へクラスタを作成するか選択します。
パブリッククラウドで提供されている、Amazon EKS,Azure AKS, Google GKEやvSphereやらその他多くの環境にも対応しています。
今回はCustomを選択して構築します。

クラスタ作成

Customで作成を選ぶとクラスタの名前とその他設定をすることができます。
好きなクラスタの名前を付けてその他はデフォルトのまま構築してみます。
クラスタ画面に入ったら各ノードを登録します。
Registration からノードをセットアップするコマンドを作れます。
Nodeの役割を選択すると、コマンドが出てきます。
証明書を入れていないので、--insecureを付与してエラーを回避しています。

curl --insecure -fL https://RancherServerIP/system-agent-install.sh | sudo  sh -s - --server https://RancherServerIP --label 'cattle.io/os=linux' --token xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx --ca-checksum yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy --etcd --controlplane --worker

これを構築するノードで実行すれば自動的にRKE2による環境が構築され管理下に置かれます。

Machines に投入したノードが現れれば成功です。
スペックや環境によっては時間がかかるかもしれないので気長に待ってみましょう。
私はスペックが悪かったのかかなり苦戦しました、Rancher Serverを一度作り直したら上手くいったので試してみると良いかもしれません。

オマケ

上のような環境では上手くいかなかったり、dockerなのでそのままだと消えたりして面倒だったりするのでk3sかなんかで作り直す予定。
k8sはまだまだ始まらない。

Discussion