3.3. Central クラスターのアップグレード


Central データベースをバックアップしたら、次のステップは Central クラスターをアップグレードすることです。この手順には、Central、roxctl CLI、および Scanner のアップグレードが含まれます。

3.3.1. Central のアップグレード

更新されたイメージをダウンロードしてデプロイすることにより、Central を最新バージョンに更新できます。

3.3.1.1. OpenShift Container Platform での Central のアップグレード

OpenShift Container Platform に Red Hat Advanced Cluster Security for Kubernetes をインストールした場合は、以下の手順を使用してアップグレードします。

手順

  1. ローカルロールにパッチを適用します。

    $ oc -n stackrox patch role edit -p '{"rules":[{"apiGroups":["*"],"resources":["*"],"verbs":["create","get", "list", "watch", "update", "patch", "delete","deletecollection"]}]}'
    Copy to Clipboard Toggle word wrap
  2. 既存のロールとロールバインディングをクリーンアップします。

    $ oc -n stackrox delete RoleBinding admission-control-use-scc || true
    Copy to Clipboard Toggle word wrap
    $ oc -n stackrox delete RoleBinding sensor-use-scc || true
    Copy to Clipboard Toggle word wrap
    $ oc -n stackrox delete Role use-anyuid-scc || true
    Copy to Clipboard Toggle word wrap
  3. ハードコーディングされたセキュリティーコンテキストを削除して、sensoradmission-controlrestricted[-v2] セキュリティーコンテキスト制約に設定します。

    $ oc -n stackrox patch deploy sensor -p '{"spec":{"template":{"spec":{"securityContext":null}}}}' 
    1
    Copy to Clipboard Toggle word wrap
    1
    Red Hat Advanced Cluster Security for Kubernetes は Pod を自動的に再作成しますが、sensor の再起動には時間がかかる場合があります。
    $ oc -n stackrox patch deploy admission-control -p '{"spec":{"template":{"spec":{"securityContext":null}}}}'
    Copy to Clipboard Toggle word wrap
  4. 次のコマンドを実行して、Central をアップグレードします。

    $ oc -n stackrox patch deploy/central -p '{"spec":{"template":{"spec":{"containers":[{"name":"central","env":[{"name":"ROX_NAMESPACE","valueFrom":{"fieldRef":{"fieldPath":"metadata.namespace"}}}]}]}}}}'
    Copy to Clipboard Toggle word wrap
    $ oc -n stackrox patch deployment/scanner -p '{"spec":{"template":{"spec":{"containers":[{"name":"scanner","securityContext":{"runAsUser":65534}}]}}}}'
    Copy to Clipboard Toggle word wrap
    $ oc -n stackrox set image deploy/central central=registry.redhat.io/advanced-cluster-security/rhacs-main-rhel8:3.73.5 
    1
    Copy to Clipboard Toggle word wrap
    1
    プライベートイメージレジストリーからイメージをデプロイする場合は、新しいイメージをプライベートレジストリーにプッシュし、ここでイメージレジストリーアドレスを置き換えます。
    重要

    Helm または Operator を使用して Red Hat Advanced Cluster Security for Kubernetes をインストールしておらず、OpenShift OAuth サーバーを使用して認証を有効にする場合は、次の追加コマンドを実行する必要があります。

    $ oc -n stackrox set env deploy/central ROX_ENABLE_OPENSHIFT_AUTH=true
    Copy to Clipboard Toggle word wrap
    $ oc -n stackrox patch serviceaccount/central -p '
    {
    "metadata": {
    "annotations": {
    "serviceaccounts.openshift.io/oauth-redirecturi.main": "sso/providers/openshift/callback",
    "serviceaccounts.openshift.io/oauth-redirectreference.main": "{"kind":"OAuthRedirectReference","apiVersion":"v1","reference":{"kind":"Route","name":"central"}}"
    }
    }
    }'
    Copy to Clipboard Toggle word wrap

検証

  • 新しい Pod がデプロイされたことを確認します。

    $ oc get deploy -n stackrox -o wide
    Copy to Clipboard Toggle word wrap
    $ oc get pod -n stackrox --watch
    Copy to Clipboard Toggle word wrap

3.3.1.2. Central on Kubernetes のアップグレード

Red Hat Advanced Cluster Security for Kubernetes を Kubernetes にインストールした場合は、以下の手順を使用してアップグレードします。

前提条件

  • プライベートイメージレジストリーからイメージをデプロイする場合は、最初に新しいイメージをプライベートレジストリーにプッシュしてから、次のコマンドでイメージレジストリーを置き換えます。

手順

  1. ローカルロールにパッチを適用します。

    $ kubectl -n stackrox patch role edit -p '{"rules":[{"apiGroups":["*"],"resources":["*"],"verbs":["create","get", "list", "watch", "update", "patch", "delete","deletecollection"]}]}'
    Copy to Clipboard Toggle word wrap
  2. 次のコマンドを実行して、Central をアップグレードします。

    $ kubectl -n stackrox patch deploy/central -p '{"spec":{"template":{"spec":{"containers":[{"name":"central","env":[{"name":"ROX_NAMESPACE","valueFrom":{"fieldRef":{"fieldPath":"metadata.namespace"}}}]}]}}}}'
    Copy to Clipboard Toggle word wrap
    $ kubectl -n stackrox patch deployment/scanner -p '{"spec":{"template":{"spec":{"containers":[{"name":"scanner","securityContext":{"runAsUser":65534}}]}}}}'
    Copy to Clipboard Toggle word wrap
    $ kubectl -n stackrox set image deploy/central central=registry.redhat.io/advanced-cluster-security/rhacs-main-rhel8:3.73.5 
    1
    Copy to Clipboard Toggle word wrap
    1
    プライベートイメージレジストリーからイメージをデプロイする場合は、新しいイメージをプライベートレジストリーにプッシュし、ここでイメージレジストリーアドレスを置き換えます。

検証

  • 新しい Pod がデプロイされたことを確認します。

    $ kubectl get deploy -n stackrox -o wide
    Copy to Clipboard Toggle word wrap
    $ kubectl get pod -n stackrox --watch
    Copy to Clipboard Toggle word wrap

3.3.2. roxctl CLI のアップグレード

roxctl CLI を最新バージョンにアップグレードするには、既存のバージョンの roxctl CLI をアンインストールしてから、最新バージョンの roxctl CLI をインストールする必要があります。

3.3.2.1. roxctl CLI のアンインストール

次の手順を使用して、Linux に roxctl CLI バイナリーをアンインストールできます。

手順

  • roxctl バイナリーを見つけて削除します。

    $ ROXPATH=$(which roxctl) && rm -f $ROXPATH 
    1
    Copy to Clipboard Toggle word wrap
    1
    環境によっては、roxctl バイナリーを削除するために管理者権限が必要になる場合があります。

3.3.2.2. Linux への roxctl CLI のインストール

次の手順を使用して、Linux に roxctl CLI バイナリーをインストールできます。

手順

  1. roxctl CLI の最新バージョンをダウンロードします。

    $ curl -O https://mirror.openshift.com/pub/rhacs/assets/3.73.5/bin/Linux/roxctl
    Copy to Clipboard Toggle word wrap
  2. roxctl バイナリーを実行可能にします。

    $ chmod +x roxctl
    Copy to Clipboard Toggle word wrap
  3. PATH 上にあるディレクトリーに roxctl バイナリーを配置します。

    PATH を確認するには、以下のコマンドを実行します。

    $ echo $PATH
    Copy to Clipboard Toggle word wrap

検証

  • インストールした roxctl のバージョンを確認します。

    $ roxctl version
    Copy to Clipboard Toggle word wrap

3.3.2.3. macOS への roxctl CLI のインストール

次の手順を使用して、roxctl CLI バイナリーを macOS にインストールできます。

手順

  1. roxctl CLI の最新バージョンをダウンロードします。

    $ curl -O https://mirror.openshift.com/pub/rhacs/assets/3.73.5/bin/Darwin/roxctl
    Copy to Clipboard Toggle word wrap
  2. バイナリーからすべての拡張属性を削除します。

    $ xattr -c roxctl
    Copy to Clipboard Toggle word wrap
  3. roxctl バイナリーを実行可能にします。

    $ chmod +x roxctl
    Copy to Clipboard Toggle word wrap
  4. PATH 上にあるディレクトリーに roxctl バイナリーを配置します。

    PATH を確認するには、以下のコマンドを実行します。

    $ echo $PATH
    Copy to Clipboard Toggle word wrap

検証

  • インストールした roxctl のバージョンを確認します。

    $ roxctl version
    Copy to Clipboard Toggle word wrap

3.3.2.4. Windows への roxctl CLI のインストール

次の手順を使用して、roxctl CLI バイナリーを Windows にインストールできます。

手順

  • roxctl CLI の最新バージョンをダウンロードします。

    $ curl -O https://mirror.openshift.com/pub/rhacs/assets/3.73.5/bin/Windows/roxctl.exe
    Copy to Clipboard Toggle word wrap

検証

  • インストールした roxctl のバージョンを確認します。

    $ roxctl version
    Copy to Clipboard Toggle word wrap

roxctl CLI をアップグレードした後、Scanner をアップグレードできます。

3.3.3. Scanner のアップグレード

roxctl CLI を使用して、Scanner を最新バージョンに更新できます。

前提条件

  • プライベートイメージレジストリーからイメージをデプロイする場合は、最初に新しいイメージをプライベートレジストリーにプッシュしてから、次のセクションのコマンドを編集して、プライベートイメージレジストリーの名前を使用する必要があります。

手順

  1. カスタムスキャナー設定を作成した場合は、スキャナー設定ファイルを更新する前に、これらの変更を適用する必要があります。

    1. 次の roxctl コマンドを使用してスキャナーを生成します。

      $ roxctl -e "$ROX_CENTRAL_ADDRESS" scanner generate
      Copy to Clipboard Toggle word wrap
    2. TLS シークレット YAML ファイルを適用します。

      • OpenShift Container Platform を使用する場合は、以下のコマンドを入力します。

        $ oc apply -f scanner-bundle/scanner/02-scanner-03-tls-secret.yaml
        Copy to Clipboard Toggle word wrap
      • Kubernetes を使用する場合は、次のコマンドを入力します。

        $ kubectl apply -f scanner-bundle/scanner/02-scanner-03-tls-secret.yaml
        Copy to Clipboard Toggle word wrap
    3. スキャナー設定 YAML ファイルを適用します。

      • OpenShift Container Platform を使用する場合は、以下のコマンドを入力します。

        $ oc apply -f scanner-bundle/scanner/02-scanner-04-scanner-config.yaml
        Copy to Clipboard Toggle word wrap
      • Kubernetes を使用する場合は、次のコマンドを入力します。

        $ kubectl apply -f scanner-bundle/scanner/02-scanner-04-scanner-config.yaml
        Copy to Clipboard Toggle word wrap
  2. Scanner イメージを更新します。

    • OpenShift Container Platform を使用する場合は、以下のコマンドを入力します。

      $ oc -n stackrox set image deploy/scanner scanner=registry.redhat.io/advanced-cluster-security/rhacs-scanner-rhel8:3.73.5
      Copy to Clipboard Toggle word wrap
    • Kubernetes を使用する場合は、次のコマンドを入力します。

      $ kubectl -n stackrox set image deploy/scanner scanner=registry.redhat.io/advanced-cluster-security/rhacs-scanner-rhel8:3.73.5
      Copy to Clipboard Toggle word wrap
  3. Scanner データベースイメージを更新します。

    • OpenShift Container Platform を使用する場合は、以下のコマンドを入力します。

      $ oc -n stackrox set image deploy/scanner-db db=registry.redhat.io/advanced-cluster-security/rhacs-scanner-db-rhel8:3.73.5 init-db=registry.redhat.io/advanced-cluster-security/rhacs-scanner-db-rhel8:3.73.5
      Copy to Clipboard Toggle word wrap
    • Kubernetes を使用する場合は、次のコマンドを入力します。

      $ kubectl -n stackrox set image deploy/scanner-db db=registry.redhat.io/advanced-cluster-security/rhacs-scanner-db-rhel8:3.73.5 init-db=registry.redhat.io/advanced-cluster-security/rhacs-scanner-db-rhel8:3.73.5
      Copy to Clipboard Toggle word wrap

検証

  • 新しい Pod が正常にデプロイされたことを確認します。

    • OpenShift Container Platform を使用する場合は、以下のコマンドを入力します。

      $ oc get pod -n stackrox --watch
      Copy to Clipboard Toggle word wrap
    • Kubernetes を使用する場合は、次のコマンドを入力します。

      $ kubectl get pod -n stackrox --watch
      Copy to Clipboard Toggle word wrap

3.3.3.1. RHACS バージョン 3.71 へのアップグレード

roxctl CLI および YAML ファイルを使用して RHACS 3.71 にアップグレードする場合は、いくつかの追加手順を実行する必要があります。Scanner DB イメージは、scanner-db-password Kubernetes Secret を db Scanner DB コンテナーにマウントしなくなりました。代わりに、scanner-db-password は init コンテナー init-db でのみ使用されます。したがって、POSTGRES_PASSWORD_FILE 環境変数を init コンテナー設定に追加する必要があります。init コンテナーは、scanner-db-tls-volume および scanner-db-password ボリュームもマウントする必要があります。以下のセクションでは、OpenShift Container Platform または Kubernetes を使用している場合の RHACS のアップグレード手順を説明します。init コンテナーの詳細については、Kubernetes のドキュメント を参照してください。

前提条件

  • この手順では、Scanner DB 設定の db コンテナーが index 0 にあると想定している。これは、containers リストの最初のエントリーである。また、scanner-db-password ボリュームマウントは、3 番目のエントリーである index 2 にある。

このシナリオはほとんどの展開に当てはまりますが、これらのコマンドを入力する前に Scanner DB の設定を確認してください。値が異なる場合は、次のコマンドで …​/containers/x/volumeMounts/y の値を調整する必要があります。

手順

  1. パッチを適用します。

    • OpenShift Container Platform を使用する場合は、以下のコマンドを入力します。

      $ oc -n stackrox patch deployment.apps/scanner-db --patch '{"spec":{"template":{"spec":{"initContainers":[{"name":"init-db","env":[{"name":"POSTGRES_PASSWORD_FILE","value":"/run/secrets/stackrox.io/secrets/password"}],"command":["/usr/local/bin/docker-entrypoint.sh","postgres","-c","config_file=/etc/postgresql.conf"],"volumeMounts":[{"name":"db-data","mountPath":"/var/lib/postgresql/data"},{"name":"scanner-db-tls-volume","mountPath":"/run/secrets/stackrox.io/certs","readOnly":true},{"name":"scanner-db-password","mountPath":"/run/secrets/stackrox.io/secrets","readOnly":true}],"securityContext":{"runAsGroup":70,"runAsNonRoot":true,"runAsUser":70}}]}}}}'
      Copy to Clipboard Toggle word wrap
    • Kubernetes を使用する場合は、次のコマンドを入力します。

      $ kubectl -n stackrox patch deployment.apps/scanner-db --patch '{"spec":{"template":{"spec":{"initContainers":[{"name":"init-db","env":[{"name":"POSTGRES_PASSWORD_FILE","value":"/run/secrets/stackrox.io/secrets/password"}],"command":["/usr/local/bin/docker-entrypoint.sh","postgres","-c","config_file=/etc/postgresql.conf"],"volumeMounts":[{"name":"db-data","mountPath":"/var/lib/postgresql/data"},{"name":"scanner-db-tls-volume","mountPath":"/run/secrets/stackrox.io/certs","readOnly":true},{"name":"scanner-db-password","mountPath":"/run/secrets/stackrox.io/secrets","readOnly":true}],"securityContext":{"runAsGroup":70,"runAsNonRoot":true,"runAsUser":70}}]}}}}'
      Copy to Clipboard Toggle word wrap
  2. パスを削除します。

    • OpenShift Container Platform を使用する場合は、以下のコマンドを入力します。

      $ oc -n stackrox patch deployment.apps/scanner-db --type json --patch '[{"op":"remove","path":"/spec/template/spec/containers/0/volumeMounts/2"}]'
      Copy to Clipboard Toggle word wrap
    • Kubernetes を使用する場合は、次のコマンドを入力します。

      $ kubectl -n stackrox patch deployment.apps/scanner-db --type json --patch '[{"op":"remove","path":"/spec/template/spec/containers/0/volumeMounts/2"}]'
      Copy to Clipboard Toggle word wrap

3.3.4. Central クラスターのアップグレードの確認

Central と Scanner の両方をアップグレードした後、Central クラスターのアップグレードが完了していることを確認します。

手順

  • Central ログを確認します。

    OpenShift Container Platform を使用している場合は、次のコマンドを入力します。

    $ oc logs -n stackrox deploy/central -c central
    Copy to Clipboard Toggle word wrap

    Kubernetes を使用している場合は、次のコマンドを入力します。

    $ kubectl logs -n stackrox deploy/central -c central
    Copy to Clipboard Toggle word wrap

正常なアップグレードのサンプル出力

No database restore directory found (this is not an error).
Migrator: 2019/10/25 17:58:54: starting DB compaction
Migrator: 2019/10/25 17:58:54: Free fraction of 0.0391 (40960/1048576) is < 0.7500. Will not compact
badger 2019/10/25 17:58:54 INFO: All 1 tables opened in 2ms
badger 2019/10/25 17:58:55 INFO: Replaying file id: 0 at offset: 846357
badger 2019/10/25 17:58:55 INFO: Replay took: 50.324µs
badger 2019/10/25 17:58:55 DEBUG: Value log discard stats empty
Migrator: 2019/10/25 17:58:55: DB is up to date. Nothing to do here.
badger 2019/10/25 17:58:55 INFO: Got compaction priority: {level:0 score:1.73 dropPrefix:[]}
version: 2019/10/25 17:58:55.189866 ensure.go:49: Info: Version found in the DB was current. We’re good to go!
Copy to Clipboard Toggle word wrap

トップに戻る
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。 最新の更新を見る.

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

Theme

© 2025 Red Hat