Rancher v2.4.0の主要機能を触ってみた


本記事は、Rancher v2.4.0で追加した主要な機能の紹介及び検証を纏めたものです。
・[クラスターのセキュリティスキャン（CIS Kubernetes Benchmark）](#クラスターのセキュリティスキャン)
・[k3sクラスターのメンテナンス機能](#k3sクラスターのメンテナンス機能)
・[ゼロダウンタイムのクラスターのアップグレード](#ゼロダウンタイムのクラスターのアップグレード)
・[クラスターのバックアップとロールバックの機能増強](#クラスターのバックアップとロールバックの機能増強)
・[helm3のサポート](#helm3のサポート)
・[その他](#その他)

# クラスターのセキュリティスキャン
Kubernetesクラスターに対して、CIS Kubernetes Benchmarkの（[チェックリスト](https://www.cisecurity.org/benchmark/kubernetes/)）でスキャン実行とレポート生成の機能です。

## 概要
### 主なの機能
・クラスターのスキャンの実行
・定期スキャンのスケジュールの設定
・セキュリティレポートの生成と結果通知
・Rancher APIのサポート

### 制約事項
・v2.3.x以前のバージョンは、[CIS Benchmarkチェックマニュアル手順](https://rancher.com/docs/rancher/v2.x/en/security/benchmark-2.3.5/)でのチェックとなります。
・v2.4.0の時点は、RKEクラスターのみの対応となります。(import、custom、マネージドk8sクラスター方式で作成されたクラスターは未対応)
・v2.4.0の時点は、CIS_Kubernetes_Benchmark_v1.4.0（Kubernetes 1.13+のクラスターを対象）を対応しております。
・RKEディストリビューションの仕様（k8sコンポネートをコンテナで動くなど）により、一部CIS Benchmarkチェック項目が実施不要（N/A）となっています。

## 検証Goal
■やること：
　クラスターに対して、スキャン実行とスキャン結果確認を行う
　クラスターに対して、定期スキャン実行スケジュールとスキャン結果通知を設定

■前提条件：
Rancherサーバー上に、スキャン対象のRKEクラスターを用意されたこと（構築手順は[こちら](https://rancher.com/docs/rancher/v2.x/en/cluster-provisioning/rke-clusters/)をご参照ください）

### スキャン実行とスキャン結果確認

・[Cluster名]→[Tools]→[CIS Scans]メニューをクリックし、CIS Scans画面に遷移させ、[Run Scan]ボタンをクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/256080/0fd7d27e-a6c9-757d-2640-0ed2c68a785e.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/256080/107e1a7b-12e1-7906-0048-166ddca03369.png)

・CIS Scansのプロファイル選択画面に、下記のようにプロファイルを設定して、[Run]ボタンをクリックします。
　※v2.4.0の現時点に、選択できるプロファイルは下記となります。
　RKE-CIS-1.4 permissive　：一部項目をスキップで実行
　RKE-CIS-1.4 hardened　：スキップなしで実行
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/256080/c3780e78-72d6-27b2-6939-6d6d2f7cb04e.png)

・スキャン実行完了まで待ちます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/256080/a41ce580-e440-d014-74f5-c2f4c5c8dfb2.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/256080/cf878444-53cc-2eb3-8533-a1242d1a4ca9.png)

・スキャン履歴名をクリックし、スキャン結果確認画面に遷移させます。
　結果種類は下記の4種類となります。
   「Pass」:成功
   「Fail」:失敗（Descriptionに対策が書かれてる）
   「N/A」:非該当　<font color="blue">✳︎１</font>
   「Skipped」:スキップ　<font color="blue">✳︎2</font>
　 <font color="blue">✳︎１</font> RKE固有仕様(k8sコンポネートをコンテナで動くなど)により、実施不要な項目。詳細は[こちら](https://rancher.com/docs/rancher/v2.x/en/security/security-scan/#cis-benchmark-v1-4-not-applicable-tests)をご参照ください。
　 <font color="blue">✳︎2</font> トレードオフの結果（AlwaysPullImagesにより、帯域幅消費が増えるなど）により、遵守しない方がよい項目。詳細は[こちら](https://rancher.com/docs/rancher/v2.x/en/security/security-scan/#cis-benchmark-v1-4-skipped-tests)をご参照ください。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/256080/8ec840e8-a60e-632f-7b6b-9ec8f2e5cc87.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/256080/9afafa72-3ebb-9850-bd8f-c28b67619ac0.png)

・スキャン結果確認画面に、[Download]ボタンをクリックし、スキャン結果をダウンロードします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/256080/179bb572-de78-6f1f-cca2-f77e7822fc9e.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/256080/32e8dd97-f376-c972-16cf-6ed60aa79a9c.png)


### スキャン結果が「Fail」の項目の対応
・スキャン結果に、「Fail」の項目がある場合、「Description」の対策に従い、クラスターの設定変更を行うことで解消できます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/256080/402fc039-b248-bd1d-10c8-1e78b1e35c8a.png)

・対策に従い、クラスターのPodSecurityPolicy設定変更を行います。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/256080/90d9ddff-c10d-c65d-91fc-8ff21060de75.png)

・クラスターの設定変更後、スキャンを再度実行し、スキャン結果が「Pass」になったことを確認します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/256080/fb26b255-aead-1f2b-8f59-379f6bfd4cc6.png)

### スキャン定期実行、スキャン結果通知を設定
・CIS Scans画面に、[Add Schedule]ボタンをクリックし、クラスター編集画面に遷移させます。
・クラスター編集画面のCIS Scans設定項目のところに、スキャン用プロファイル、スケジュール、保存世帯数を設定して、クラスター変更内容を保存します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/256080/62f646a9-81c9-1000-673c-b0a16cf38195.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/256080/a512e99e-3ef6-926d-7d80-be2a6ddd6085.png)

・CIS Scans画面に、[Add Alert]ボタンをクリックし、スキャン結果のアラーム通知設定画面に遷移させます。
・アラーム通知設定画面に、Slackやメールなどの通知先を設定して、設定内容を保存します。
　通知先の作成手順は、[こちら](https://rancher.com/docs/rancher/v2.x/en/cluster-admin/tools/notifiers/)をご参照ください。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/256080/f85edd77-9fb6-04f6-4dae-f8e4ff63c6c7.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/256080/8994849b-39dc-80a6-1f56-34e9ae81d515.png)

・スケジュールに指定している時間になったら、通知先のSlackにスキャン実行結果が届いたこと、を確認します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/256080/9fd83986-2609-3172-55b7-fb764bf30145.png)

# k3sクラスターのメンテナンス機能
Rancherは、インポートしたk3sクラスターをk3sとして認識できます。また、リモートでk3sクラスターをメンテナンスできるようになりました。
※アップグレード為のコントローラーは、k3sのローカルに動きます。


## 概要
### 主な機能
Rancherから、リモートでk3sクラスターのアップグレード処理を行う
Rancherから、k3sクラスターの設定情報などを参照する

### 制約事項
・v2.4.0時点は、クラスターのアップグレードのみで、クラスターの設定情報がまだ変更できない

## 検証Goal
■やること：
　k3sクラスターを作成して、Rancherにインポート
　インポートしたk3sクラスターをアップグレード

### k3sクラスターを作成して、Rancherにインポート
・k3sクラスターを用意します
　k3sクラスターの構築手順は[こちら](https://rancher.com/docs/k3s/latest/en/quick-start/)をご参照ください。
　k3sクラスターは、下記の構成(master:1台、worker:３台)となります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/256080/52766e6e-7074-65c1-c852-9d30a34fdf1f.png)

・Rancherで、import方式でクラスターを作成し、k3sクラスター上にimport用のkubectlコマンドを実行します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/256080/393da970-1286-9a43-93f7-447576bea446.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/256080/15c389fd-5ecc-6881-4605-3fa84f1cd000.png)
・インポートしたk3sを確認します。
　＜クラスターのDashboard＞
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/256080/3913eb12-51e3-e99b-24f2-be5322facdfe.png)
　＜クラスターのノード一覧＞
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/256080/805e76cd-c7a4-9b14-0247-af8539967f27.png)

### インポートしたk3sクラスターをアップグレード
・クラスターのDashboard画面に、右上の「Edit」メニューをクリックして、クラスター編集画面に遷移させます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/256080/41752bd2-726e-e275-315f-53b0119db51f.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/256080/9e93ee51-3f68-1d3b-91e8-b3ebc49f65d9.png)

・「Kubernetes Version」項目に、最新のバージョンを選択し、「Save」ボタンをクリックします。
　その他の設定項目は必要に応じて設定してください。
　　「Drain Control Plane Nodes」項目：アップグレード前にDrain実施要否
　　「Drain Worker Nodes」項目：アップグレード前にDrain実施要否
　　「Control Plane Concurrency」項目：同時にアップデート可能のNode数（ローリングアップデートのバッチサイズ）
　　「Worker Concurrency」項目：同時にアップデート可能のNode数（ローリングアップデートのバッチサイズ）
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/256080/12febe9d-65f7-bf5f-d2bf-58ed492bc0dc.png)
・クラスターがUpgradingモードに入り、しばらく待つと、クラスターが選択したバージョンに更新されます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/256080/60653403-9365-5aee-6bd1-9782c3952ea2.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/256080/9ab79cce-dad4-28e4-3011-9bed766309df.png)

# ゼロダウンタイムのクラスターのアップグレード
v2.3以前のバージョンでのクラスターアップグレード処理には、クラスターのノードを並行でアップデートを行う為、ダウンタイムが発生します。（※kube-proxy変更によるiptables書き換えにより、対象ノード上のPODに一時アクセスできないなどが原因）
v2.4からは、ノードのローリングアップデータ方式を採用し、アプリケーションを中断せず、Kubernetesのクラスタとノードをアップグレードすることができるようになりました。

## 概要
### 主なの機能
各ノードのアップデータ方式の変更
・etcdノード　（変更なし）

| v2.3   | v2.4       |
|------|-----------------|
| 1つずつ  |1つずつ | 

・control Planeノード　

| v2.3   | v2.4       |
|------|-----------------|
| 並行（max 50）  |指定したサイズでローリングアップデータ | 

・workerノード　

| v2.3   | v2.4       |
|------|-----------------|
| 並行 |指定したサイズでローリングアップデータ | 

ノードのステータス遷移は、下記となります。
Active → Cordoned → Draining (if drain is enabled) → Drained (if drain is enabled) → Upgrading → Upgraded  → Active



## 検証Goal
■やること：
　ローリングアップデータのバッチサイズを指定して、 control Planeノードとworkerノードのアップデータ動作を検証します。

※RKE CLIもゼロダウンタイムのクラスターのアップグレード機能が対応されておりますが、今回は、検証対象外とします。

### 検証用のクラスターを作成
・検証用のクラスターの作成画面に、各種類のノードプールを下記のような構成で設定します。
　クラスター構築の詳細手順は[こちら](https://rancher.com/docs/rancher/v2.x/en/cluster-provisioning/rke-clusters/)をご参照ください。
　etcdノード：３台
　control Planeノード：３台
　workerノード：３台
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/256080/deb61740-0df1-740e-232d-132a7a39883f.png)

・後のアップグレード処理が行えるように、「Kubernetes Version」をv1.15.11に設定します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/256080/806f4ee3-1cf4-2059-508c-be4cf51899d1.png)

・「Advanced Options」の設定ところに、Workerノードの１回の最大同時アップデート数（ローリングアップデータのバッチサイズ）を設定します。
　「Maxiumum Worker Nodes Unavailable」（最大同時アップデート数）：１
　「Drain nodes」（アップデート前のDrain処理要否）：no
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/256080/37263dde-b21d-3f17-0df7-92bff66fa329.png)
・control Planeノードの１回の最大同時アップデート数は、「Edit as YAML」ボタンから開くyaml設定画面から設定します。
　「max_unavailable_controlplane」（最大同時アップデート数）：１　※デフォルト値のまま
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/256080/b02f8d7f-a248-71e1-f3c3-affe1b177ac7.png)

### クラスターのアップグレード処理を実施
・クラスター作成後、クラスター編集画面に、「Kubernetes Version」をv1.15.11からv1.16.8に変更し、保存します。
　クラスター設定変更の詳細手順は[こちら](https://rancher.com/docs/rancher/v2.x/en/cluster-admin/upgrading-kubernetes/)をご参照ください。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/256080/29ecf7cd-5bb5-53eb-d11d-91f479f0239e.png)

・control Planeノードが１台ずつでアップデートされていくことを確認します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/256080/ed95c976-2e54-48a1-31bd-43ba7bc01418.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/256080/f5a0f3e9-3eed-4f1c-c185-48cd7d2f1554.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/256080/0341a3c2-3659-d519-b479-d1c3e2beb88d.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/256080/9aabfa7d-593a-4e30-ed2f-bc7f6e6ccc23.png)


・workerノードが１台ずつでアップデートされていくことを確認します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/256080/a1888768-f2e6-e1c0-fd83-543342bed011.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/256080/aeb68c95-73b0-cb99-5e28-948389436238.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/256080/0fc80517-294c-71e5-5860-43100ea1ca6c.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/256080/e881ab32-8847-5493-0874-f1192c9562e6.png)

# クラスターのバックアップとロールバックの機能増強
v2.3以前のバージョンでは、etcdデータしかバックアップできなくて、クラスターのアップグレード処理を行ったら、etcdのスナップショットだけで処理前の状態に戻れないです。
v2.4.0は、k8sバージョン情報とクラスター設定情報も、etcdデータと一緒にバックアップでき、またセットでロールバックすることもできます。

## 概要
### 主なの機能
・クラスターのバックアップ機能
　「etcdデータ」 + 「k8sバージョン情報」 + 「クラスター設定情報」をセットでバックアップ
・クラスターのロールバック機能
　下記の3つの方式でロールバックを行うことができる
　　「etcdデータ」のみのロールバック
　　「etcdデータ」 + 「k8sバージョン情報」のロールバック
　　「etcdデータ」 + 「k8sバージョン情報」 + 「クラスター設定情報」のロールバック

## 検証Goal
■やること：
・検証用クラスターを作成します。
・検証用クラスターに変更を加えます
・「etcdデータ」 + 「k8sバージョン情報」 + 「クラスター設定情報」のロールバック方式を検証します。

### 検証用のクラスターを作成
・後のアップグレード処理が行えるように、検証用のクラスターの作成画面に、「Kubernetes Version」をv1.15.11に設定します。
　クラスター構築の詳細手順は[こちら](https://rancher.com/docs/rancher/v2.x/en/cluster-provisioning/rke-clusters/)をご参照ください。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/256080/56cc9e1d-c4f1-9b2d-7f4c-27bfb47bb1de.png)
・作成したクラスターの各ステータスは下記となります。
＜ノード情報＞：１ノードのみ
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/256080/48dca1ab-2a17-dedd-1677-ef52b11c4f86.png)
＜Kubernetes Version＞：v1.15.11
＜1ノードあたり最大のPOD数＞：110
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/256080/eff5e015-890d-b612-81b9-1fc8f5bdd644.png)
＜defaultプロジェクト配下のワークロード＞：なし
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/256080/dfcdef18-6c3e-0891-de33-9705e76d02ff.png)

### 検証用クラスターに変更を加え
・「etcdデータ」に更新を加える為、任意のプロジェクトに1つのワークロードを作成します。
　ワークロード作成の詳細手順は[こちら](https://rancher.com/docs/rancher/v2.x/en/k8s-in-rancher/workloads/deploy-workloads/)をご参照ください。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/256080/53dd4f07-9514-f09c-797e-bb31a2991c9d.png)

・クラスターのアップグレードと、クラスター設定変更処理を同時に行います。
　クラスター設定変更の詳細手順は[こちら](https://rancher.com/docs/rancher/v2.x/en/cluster-admin/upgrading-kubernetes/)をご参照ください。
　「k8sバージョン情報」に更新を加える為、クラスター編集画面に、「Kubernetes Version」をv1.15.11からv1.16.8に変更します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/256080/60e40e00-f47c-6124-8d60-277330c85f49.png)
　「クラスター設定情報」に更新を加える為、「Edit as YAML」ボタンから開くyaml設定画面に、kubelet設定のところに、「1ノードあたり最大POD数：２５０」のパラメータを追加します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/256080/f5df332d-6d9e-4863-5d57-9941e4eb3add.png)

・クラスター設定変更後に、「k8sバージョン情報」と「クラスター設定情報」が更新されたことがDashboard画面から確認します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/256080/9f334749-48bf-321f-7422-dc87229ca538.png)

### ロールバックを実施
・ロールバックの選択画面に、下記のように、スナップショットとロールバック方式を選択して、「Restore」ボタン押下でロールバックを実施します。
　ロールバックの詳細手順は[こちら](https://rancher.com/docs/rancher/v2.x/en/cluster-admin/restoring-etcd/#restoring-your-cluster-from-a-snapshot)をご参照ください。
　「Available Snapshots」（スナップショット）：v1.15.11-rancher1-3　※クラスター構築直後に自動生成したスナップショット
　「Restoration Type」（ロールバック方式）：「etcd, Kubernetes Version and cluster config」　※全てをロールバックする方式
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/256080/f64591e8-b0ac-cde4-a49c-c5fdcbc0a2d5.png)

### ロールバックした後の結果検証
・「etcdデータ」が、クラスター構築直後の状態に戻ったこと確認します。
＜defaultプロジェクト配下のワークロード＞：なし
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/256080/33d7eed6-5574-9dd1-0268-e05feda5d603.png)
・「k8sバージョン情報」が、クラスター構築直後の状態に戻ったこと確認します。
＜1ノードあたり最大のPOD数＞：110
・「クラスター設定情報」が、クラスター構築直後の状態に戻ったこと確認します。
＜Kubernetes Version＞：v1.15.11
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/256080/09884aaa-b707-6f4a-cdb5-b0de59bf745d.png)


# helm3のサポート
RancherのCatalog機能のベースとなっているHelmのバージョンについて、v2.4からは、既存のhelm2以外に、helm3もサポート開始です。

## 概要
### 主なの機能
・helmのChartをhelm2/helm3バージョン指定で、Catalogにアプリを追加できる
・helm3バージョン指定で追加したCatalogアプリは、helm3でライフサイクル管理（インストール、アップグレードなど）される
・helm2バージョン指定で追加したCatalogアプリは、helm2でライフサイクル管理（インストール、アップグレードなど）される

### 制約事項
・v2.3.x以前のバージョンに追加したCatalogアプリについて、v.2.4.0にバージョンアップしても、helm2バージョンのままで、管理されます。

## 検証Goal
■やること：
　helmのChartをhelm3バージョン指定で、Catalogに追加します。
　Catalog機能で、追加したCatalogアプリをクラスターにインストール、アップグレードします。

### helmのChartをCatalogに追加
・Catalog追加画面に、検証用のhelmのChart情報を設定します。
　Catalog追加の詳細手順は[こちら](https://rancher.com/docs/rancher/v2.x/en/catalog/custom/adding/)をご参照ください。
　「Helm Version」：Helm v3　※helm3バージョン指定
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/256080/d28c13b2-ed77-6089-b7f3-19669b7e9a10.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/256080/a434bf02-c7bc-4d37-414d-a8f1cfc74750.png)

### Catalogアプリをインストールとアップグレード 
・Catalog画面に、先ほど追加したCatalogアプリを選択して、アプリバージョン=０．９でインストールします。
　Catalogアプリのインストールの詳細手順は[こちら](https://rancher.com/docs/rancher/v2.x/en/catalog/apps/#launching-catalog-applications)をご参照ください。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/256080/2a801df1-5557-9802-78a3-d7fc9b5281b6.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/256080/8e5c396a-67b0-b215-4546-0b8896e180c6.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/256080/2b4cd4c2-031f-d985-7cf7-7c279c23d4e9.png)

・インストールしたCatalogアプリを選択して、アップグレード（バージョン:0.9→1.0）します。※操作手順はv2.3以前のバージョンと変わらないです
　Catalogアプリのアップグレードの詳細手順は[こちら](https://rancher.com/docs/rancher/v2.x/en/catalog/apps/#upgrading-catalog-applications)をご参照ください。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/256080/729eaaaf-a0f4-63f1-4781-9fb97eec3249.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/256080/1f3cedc4-a94d-7d1e-855f-f997d627d736.png)


# その他
一部な機能だけを説明と検証させて頂きました。残りの下記のv2.4追加機能も簡単に紹介せていただきます。
### スケーラビリティの改善
v2.4はスケーラビリティが大幅に改善されてました。最大に2000クラスターと100000ノードを管理できるようになりました。
今後、マルチクラウド上のクラスター管理や、各エッジローケーション上の大量な小さいラスターを管理する場合には活用できます。

### k3sベースのrancherのインストール方式
既存の「RKEクラスター」と「Dockerコンテナー」ベースのインストール方式以外に、k3sクラスターベースのrancherのインストール方式もサポート開始です。
メリットとしては、下記となります。
・構築作業は、RKEクラスターベースの構築より、簡単になりました。
・k3sのメモリ使用量は、Vanilla Kubernetesの半分ぐらいになり、またHAクラスター構成は、２ノードからも可能になりました。
・クラスターのストレージは、etcd以外にPostgreSQL、MySQLなどもサポートしておりますので、既にDB環境がお持ちの場合は、そのまま活用できます。

アーキテクチャ構成は下記となります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/256080/c329c8e9-0b32-5940-1f45-c9d975cfd83e.png)

詳細のドキュメントは[こちら](https://rancher.com/docs/rancher/v2.x/en/installation/k8s-install/create-nodes-lb/)をご参照ください。

### Shibboleth認証プロバイダーの対応
Shibboleth認証プロバイダー経由で、Rancherにログインすることが可能になりました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/256080/7970b28b-1b01-2148-0717-b7f061990340.png)
詳細のドキュメントは[こちら](https://rancher.com/docs/rancher/v2.x/en/admin-settings/authentication/shibboleth/)をご参照ください。

### ユーザーグループへのグローバルロール権限の付与
ユーザーグループにグローバルロール権限を付与することが可能になりました。
※この機能は、ユーザーグループの作成管理機能を持つ認証プロバイダーに限って、利用できます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/256080/5cf9026e-1191-3141-5b6f-e1f0cbbb6021.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/256080/02e89515-831a-11d6-d347-e78db3ec4ad6.png)
詳細のドキュメントは[こちら](https://rancher.com/docs/rancher/v2.x/en/admin-settings/rbac/global-permissions/#configuring-global-permissions-for-groups)をご参照ください。

### サポート対象OS追加
下記のOSがサポート対象となりました。
・SLES 12 SP5（SUSE Linux Enterprise Server 12 SP5）
・Oracle Linux 7.7

### OPA GateKeeper統合（体験版）、新しい管理UI(体験版)
<font color="red">★体験版の為、今後仕様大きく変更される可能性が高いです。★</font>
 
OPA GateKeeperは、Kubernetes環境におけるポリシの適用とガバナンス強化を支援するCNCF配下のOSSプロジェクトです。
V2.4に統合され、クラスターに対しての制約テンプレート定義と制約定義を、UIから管理できるようになりました。

・「Try Dashboard」ボタン押下で、新しい管理UIに遷移させます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/256080/1ba99d61-f5d2-c2ed-98f4-2da1b2875c24.png)
・OPA GateKeeperの管理メニューは、左側にあります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/256080/11c7f684-f348-abe9-cc99-9b1a70b29136.png)
・コンテナーイメージのリポジトリなどの制約テンプレートをUIから管理できます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/256080/35556272-63b6-c9f0-f8b5-f7b9edfb012b.png)

# おわり
V2.4.0の主要な機能を説明と検証させて頂きました。詳細な変更情報は、[リリースノート](https://github.com/rancher/rancher/releases/tag/v2.4.0)をご参照ください。

今後、エッジ向けの大量なクラスターをグループ化して管理する機能や、Rioとの統合機能は、新しいバージョンでリリースされていきます。