6.2. kubernetes版からkubernetes版へのバージョンアップ(~Rel-20.03まで)

注意

Rel-20.05以降へのバージョンアップは こちら の手順をご確認ください。

注意

セットアップする際は下記の点にご注意ください。

  • sudo可能な一般ユーザでインストールを実施する(rootユーザでのインストールも可能 ※1)
  • sudoは付けないでスクリプトを実行する
  • インストール後は、インストールユーザで運用する

※1 rootになる際、"sudo su -" での実行は可能です。"sudo -s" での実行は、一般ユーザのカレントディレクトリや環境変数が引き継がれてしまうため不可となります。

6.2.1. shield システムの停止

バージョンアップ作業にあたり、Shieldのシステムを事前に停止します。

$ ./ericomshield/shield-stop.sh

6.2.2. shield-prepare-servers.sh による事前準備

バージョンアップ予定のバージョンに合わせて、shield-prepare-servers.sh を事前実行しておきます。 詳細な実行手順は 「5.1.5. shield-prepare-servers.sh による事前準備 」を参照してください。

6.2.3. アップデート用スクリプトの確認

Rancherサーバに shield-update.sh が存在するか確認してください。 存在しない場合、下記コマンドにより取得してください。 存在する場合も、念のために最新版のスクリプトをダウンロードしてご利用頂くことを推奨します。

$ curl -O https://ericom-tec.ashisuto.co.jp/shield/shield-update.sh

6.2.4. アップデート用スクリプトの実行

アップデート用スクリプトを実行してください。

$ ./shield-update.sh

###### START ###########################################################
==================================================================
現在インストールされているバージョン: Rel-19.09.570
==================================================================
どのバージョンをセットアップしますか?
2: Rel-19.09.578
2: Rel-19.09.570
3: Rel-19.07.554

 番号で指定してください:1
Rel-19.09.578 をセットアップします。
BRANCH: Rel-19.09.4
[start] get install scripts
[end] get install scripts
[start] check sysctl file
[end] check sysctl file
[start] get yaml files
[end] get yaml files
[start] check yaml files
新しいyamlファイルと既存のファイルに差分がある可能性があります。下記ファイルを確認し、適切に編集後、shield-update.shを再実行してください。
diff_custom-farm.yaml
diff_custom-management.yaml
[end] check yaml files
###### DONE ############################################################

警告

複数のバージョンを跨いでバージョンアップする場合でも、ターゲットバージョンは現在のインストール済みバージョンの1つ上になるように設定し、 1つずつ 上げていくようにしてください。

例:Rel-19.09.5からRel-20.01.2へバジョンアップする場合、Rel-19.09.5からRel-19.11、Rel-19.12.1、Rel-20.01.2へと順番にアップデートを繰り返してください。

実行により現環境と、新バージョンのyamlファイルの比較が行われます。 差分が存在する場合、差分を記録したファイルが生成されますので、メッセージに従って、確認をしてください。

比較対象ファイル

  • custom-common.yaml
  • custom-farm.yaml
  • custom-management.yaml
  • custom-proxy.yaml
  • custom-values-elk.yaml

旧バージョンのファイルが <ファイル名>_backup に変更され、 新バージョンのファイルが 新しくダウンロードされてきます。

差分が発生している場合、個別にカスタマイズした箇所があれば、それを新ファイルの該当箇所に再設定してください。 バージョンアップによる変更点も差分として表示されるため、心当たりの無い箇所については、そのままにしていただいて結構です。

6.2.5. Dockerログサイズの変更

Dockerログが肥大化することでShieldのサービス起動等ができなくなる可能性があるためDockerログサイズを変更することを強く推奨します。変更手順については こちら を参照ください。

6.2.6. アップデート用スクリプトの再実行

yamlファイルの差分を確認したら、shield-update.shをもう一度実行してください。

$ ./shield-update.sh
###### START ###########################################################

=================================================================================
updateを実行します。よろしいですか? [y/N]:y

2回目の実行では実際のアップデート処理が行われます。

6.2.7. Rancherのクラスタ設定変更

Rel-20.01以前から、Rel-20.01以降へのアップデートのみ

Rel-20.01より前のバージョンからRel-20.01以降のバージョンへアップデートする場合には、 Rancherのクラスタ設定を手動で変更する必要があります。

  • https://<Rancher Server のIPアドレス>:8443 へブラウザでアクセスし、Rancher UI を開いてログインしてください。

shield-update-kk01

  • 表示されているクラスタ名の右端にある三点リーダをクリックし、 EDIT 選択してください。

shield-update-kk02

  • 画面にある Edit as YAML をクリックしてください。

shield-update-kk03

  • 表示されたYAMLを下記のように変更してください。 編集箇所は kube-controllerkubelet セクションの extra_ards です。 赤枠で囲んだ文字列を追記してください。YAMLフォーマットのため、インデントは正確に設定してください。

注意

既に設定済みの値は変更しないように注意してください。

shield-update-kk04

 kube-controller:
   cluster_cidr: 10.42.0.0/16
   service_cluster_ip_range: 10.43.0.0/16
   extra_args:
     node-monitor-grace-period: 10s
     node-monitor-period: 10s
     pod-eviction-timeout: 30s
 kubelet:
   cluster_dns_server: 10.43.0.10
   extra_args:
     max-pods: '110'
     eviction-hard: 'memory.available<0.2Gi,nodefs.available<10%'
     kube-reserved: 'cpu=1,memory=1Gi'
     kube-reserved-cgroup: "/system"
     system-reserved: 'cpu=1,memory=0.5Gi'
     system-reserved-cgroup: "/system"
  • 編集後、画面下部の Save をクリックしてください。 ダッシュボードに戻ります。ダッシュボード上部にクラスタがアップデートされている旨のメッセージが表示されます。 アップデートが終わると、メッセージは自動的に消えます。

shield-update-kk05