【rancher:2.6.1/docker】dockerを使用して単一ノードにRancherをインストールする(自己証明書とデータの永続化とバックアップ)
本記事で行うこと
- dockerを使用して単一ノードにRancherをインストールする
- 自己証明書を使って、Rancherをインストールする
- rancherのデータの永続化を行う
- rancherのデータのバックアップとリストアを行い
本記事で行わないこと
- 自己証明書の発行 ※以下記事で実施しています。
【OpenSSL(LibreSSL)】OpenSSL(LibreSSL)を利用して自己証明書の作成(pem形式) - haku-maiのブログ
モチベーション
- k3s上にhelmでrancherをdeployし使っていたが、自宅サーバが増えたので、別serverに分離したかった。
- rancher2.6が出たので、使ってみたかった。
環境
- HW GMKTEC NucBox 以下参考です。
$ cat /etc/os-release |grep VERSION VERSION="20.04.3 LTS (Focal Fossa)" VERSION_ID="20.04" VERSION_CODENAME=focal
参考サイト
- 公式マニュアル
- 自己証明書を利用してインストール
Rancher Docs: Installing Rancher on a Single Node Using Docker
- データの永続化
Rancher Docs: Advanced Options for Docker Installs
dockerでrancherを起動、自己証明書、データの永続化
以下のように実行するだけです。
各証明書は適当なディレクトリに配置し、
/etc/rancher/ssl/
にbindさせてください。- また中間証明書がない場合は、
cert.pem
とcacert.pem
は同じで大丈夫です。 - データの永続化をする場合はcontainerの
/var/lib/rancher
をホストOS側にbindすればOKです。
docker run -d --restart=unless-stopped \ --name rancher-hkm \ --hostname rancher-hkm \ -p 80:80 -p 443:443 \ -v /var/lib/cert_directory/rancher.hkm.home/cert.pem:/etc/rancher/ssl/cert.pem \ -v /var/lib/cert_directory/rancher.hkm.home/key.pem:/etc/rancher/ssl/key.pem \ -v /var/lib/cert_directory/rancher.hkm.home/cert.pem:/etc/rancher/ssl/cacerts.pem \ -v /var/lib/rancher:/var/lib/rancher \ --privileged \ rancher/rancher:v2.6.1
webアクセス
- 以下のように作成した自己証明書をmacにインストールすればでなくなります。
- 初回ログイン時は、以下のように初期パスワードを必要とします。
- 画面に従って、logから抽出しログインします。
$ docker logs rancher-hkm 2>&1 | grep "Bootstrap Password:" 2021/10/13 09:33:13 [INFO] Bootstrap Password: XXXXXXX
その後、以下のようにパスワードを設定することで、次回からid:admin、PASSWORD:設定したパスワードでログインできるようになります。
ログイン画面になります。
バックアップとリストア
- バックアップを行うには、rancherを停止して、
/var/lib/rancher
を保存していけば問題ありません。
バックアップのテスト用のdeployment作成
リストアできるか試したいため、簡易的に画面からdeploymentを作成します。
左上のハンバーガーメニューから、
EXPLORE CLUSTER
のlocalを選択
- Workload -> Deploymentsの画面から、右上のCreateを選択
- NameとContainer Inageだけ設定してCreateします。
- backupでフィルターすると以下の状態です。
rancherの停止とバックアップ
- rancherを停止し、
/var/lib/rancher
のバックアップをします
rancherの停止
- 以下のコマンドでdocker Containerを停止します。
$ docker ps --filter name=rancher-hkm CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 05f3a1f54ae7 rancher/rancher:v2.6.1 "entrypoint.sh" 2 hours ago Up 2 hours 0.0.0.0:80->80/tcp, :::80->80/tcp, 0.0.0.0:443->443/tcp, :::443->443/tcp rancher-hkm $ docker stop rancher-hkm rancher-hkm $ docker ps --filter name=rancher-hkm CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES $ docker ps -a --filter name=rancher-hkm CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 05f3a1f54ae7 rancher/rancher:v2.6.1 "entrypoint.sh" 2 hours ago Exited (1) 6 seconds ago rancher-hkm
/var/lib/rancher
のバックアップ
tarで
/var/lib/rancher
を別ディレクトリに固めます。初期状態
$ ls -l /var/lib/rancher/ 合計 1464 drwxr-xr-x 5 root root 4096 10月 17 01:21 k3s -rw-r--r-- 1 root root 1486050 10月 17 13:48 k3s.log drwx------ 6 root root 4096 10月 17 01:28 management-state
- 他のストレージにバックアップすべきですが簡易的にバックアップ用のディレクトリ
/var/lib/rancher_backup
を作成します。 /var/lib/rancher_backup
にバックアップファイルを格納します
$ sudo mkdir /var/lib/rancher_backup $ ls -l /var/lib/rancher_backup 合計 0 $ sudo tar -C /var/lib/rancher -pzcvf /var/lib/rancher_backup/rancher_backup_$(date +%Y%m%d%H%M%S).tar.gz ./ $ ls -lh /var/lib/rancher_backup 合計 426M -rw-r--r-- 1 root root 426M 10月 17 14:37 rancher_backup_20211017143633.tar.gz
/var/lib/rancher
の削除とリストア
/var/lib/rancher
の削除
- 少し怖いですがバックアップをとったので
/var/lib/rancher
を綺麗サッパリ削除します。
$ ls -l /var/lib/rancher 合計 1464 drwxr-xr-x 5 root root 4096 10月 17 01:21 k3s -rw-r--r-- 1 root root 1486050 10月 17 13:48 k3s.log drwx------ 6 root root 4096 10月 17 01:28 management-state $ sudo rm -rf /var/lib/rancher/* $ ls -l /var/lib/rancher 合計 0
/var/lib/rancher
のリストア
- 取得したバックアップファイルを
/var/lib/rancher
に戻します。
$ ls -lh /var/lib/rancher_backup 合計 426M -rw-r--r-- 1 root root 426M 10月 17 14:28 rancher_backup_20211017143633.tar.gz $ sudo tar -pzxvf /var/lib/rancher_backup/rancher_backup_20211017143633.tar.gz -C /var/lib/rancher $ ls -l /var/lib/rancher 合計 1460 drwxr-xr-x 5 root root 4096 10月 17 01:21 k3s -rw-r--r-- 1 root root 1486050 10月 17 13:48 k3s.log drwx------ 6 root root 4096 10月 17 01:28 management-state
rancherの起動と確認
- 以下のコマンドでdocker Containerを起動します。
$ docker start rancher-hkm rancher-hkm $ docker ps --filter name=rancher-hkm CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 05f3a1f54ae7 rancher/rancher:v2.6.1 "entrypoint.sh" 3 hours ago Up 16 seconds 0.0.0.0:80->80/tcp, :::80->80/tcp, 0.0.0.0:443->443/tcp, :::443->443/tcp rancher-hkm
- 起動したら画面から先程、確認用に用意したdeploymentを確認します。
- 問題なくバックアップできていますね!
- 以上、dockerを使用して単一ノードにRancherをインストールする(自己証明書とデータの永続化とバックアップ)でした。