始める前に
以下のものが必要になります。
- Kf がインストールされた既存のクラスタ。
gcloud
、kf
、kubectl
がインストールされているマシンへのアクセス権。
既存の Kf インストールを検証する
クラスタとやり取りするために必要な認証情報を取得します。
gcloud container clusters get-credentials CLUSTER_NAME \ --zone CLUSTER_ZONE \ --project CLUSTER_PROJECT_ID
kf debug
を実行して、Kf CLI のバージョンと Kf サーバーのバージョンが一致していることを確認します。- CLI のバージョンは
Kf Client
に表示されます。 - Kf サーバーのバージョンは
kf["app.kubernetes.io/version"]
に表示されます。
$ kf debug ... Version: Kf Client: v2.0.0 Server version: v1.17.13-gke.1401 kf["app.kubernetes.io/version"]: v2.0.0 ...
Kf クライアントと Kf サーバーの値が一致していない場合、サーバーのバージョンに一致する Kf CLI のバージョンをダウンロードしてインストールし、新しい CLI で再度確認します。CLI のバージョンとサーバーのバージョンを一致させてから次に進む必要があります。
- CLI のバージョンは
kf doctor
を実行して、クラスタの状態を確認します。次に進む前に、すべてのテストに合格していることを確認してください。$ kf doctor ... === RUN doctor/user === RUN doctor/user/ContainerRegistry --- PASS: doctor/user --- PASS: doctor/user/ContainerRegistry ...
「
Error: environment failed checks
」というメッセージが表示された場合は、doctor
出力のガイダンスに沿って問題を解決し、成功するまでコマンドを再試行します。
アップグレード
Kf をアップグレードするには、次の手順を行います。
- ローカル環境とアップグレードの準備を行います。
- Kf の依存関係をアップグレードします。
- Kf をアップグレードし、アップグレードが成功したことを検証します。
アップグレードを準備する
kf version
を実行して、Kf の現在のバージョンを取得します。$ kf version kf version v2.0.0 linux
そのバージョンよりも 1 つ上のバージョンをダウンロード ページで探します。
Kf リリースの YAML ファイルをダウンロードして、
kf-release.yaml
として保存します。使用している OS 用の Kf のバージョンをダウンロードし、
kf-next
という名前を付けます。chmod
を実行して、kf-next
を実行可能にします。chmod +x kf-next
kf-next version
を実行して、ダウンロードしたバージョンがインストールする Kf のバージョンと一致していることを確認します。$ kf-next version kf version v2.1.0 linux
次のコマンドを実行して
config-defaults
ConfigMap のバックアップを作成します。kubectl get configmap config-defaults -o yaml -n kf > config-defaults-backup.yaml
kubectl diff -f kf-release.yaml
を実行して、アップグレードによってクラスタに加えられた変更を確認します。引き続き使用する変更内容を残しておくには、
kf-release.yaml
をエディタで変更します。たとえば、Kf の
v2.0.0
でconfig-defaults
ConfigMap プロパティspaceDefaultToV3Stack
を false に設定している場合に、v2.1.0
リリースのデフォルト値ではtrue
になっていることがあります。再度
kubectl diff -f kf-release.yaml
を実行し、加えた変更によって想定どおりの結果が得られることを確認します。
Kf の依存関係をアップグレードする
ダウンロード ページを開き、アップグレード後の Kf のバージョンの依存関係マトリックスを探します。
Tekton をアップグレードします。
Tekton リリースページを開きます。
Kf の依存関係マトリックスに表示されている Tekton のバージョンを見つけます。
「Installation one-liner」の下にあるコマンドを実行して、Tekton をアップグレードします。
Cloud Service Mesh をアップグレードします。
バージョンのプルダウンで、Kf 依存関係マトリックスに表示されている Cloud Service Mesh のバージョンを選択します。
ガイドに沿って ASM をアップグレードします。
Kf をアップグレードして検証する
変更したリリース構成を使用して、アップグレードされた Kf コンポーネントをインストールします。
kubectl apply -f kf-release.yaml
doctor
を実行して、新しくインストールされたバージョンが正常であることを確認します。kf-next doctor --retries=12 --delay=5s
このコマンドは、クラスタ チェックを数回実行します。新しいコントローラの起動中は、何度か試行が失敗しても問題ではありません。
コマンドが「
Error: environment failed checks
」というメッセージで失敗した場合は、doctor
出力のガイダンスに従って問題を解決し、成功するまでコマンドを再試行します。システム上の既存の
kf
CLI をkf-next
CLI に置き換えます。chmod +x kf-next
mv kf-next $(which kf)
config-defaults-backup.yaml
ファイルをkubectl diff -f config-defaults-backup.yaml
と比較し、クラスタが引き続き正しく構成されていることを確認します。たとえば、以前の Kf バージョンでの変更をすべて残し、次のバージョンの Kf にバンドルされている新しいビルドパックの使用を承認した場合は、次のようになります。
$ kubectl diff -f config-defaults-backup.yaml diff -u -N /tmp/LIVE/v1.ConfigMap.kf.config-defaults /tmp/MERGED/v1.ConfigMap.kf.config-defaults --- /tmp/LIVE/v1.ConfigMap.kf.config-defaults +++ /tmp/MERGED/v1.ConfigMap.kf.config-defaults @@ -131,6 +131,8 @@ enable_route_services: false spaceBuildpacksV2: | - - name: new_buildpack - url: https://github.com/cloudfoundry/new-buildpack - name: staticfile_buildpack url: https://github.com/cloudfoundry/staticfile-buildpack - name: java_buildpack exit status 1