3.4. すべてのセキュアクラスターのアップグレード
Central サービスをアップグレードした後、すべてのセキュアクラスターをアップグレードする必要があります。
自動アップグレードを使用している場合は、以下を行います。
- 自動アップグレードを使用して、すべてのセキュアクラスターを更新します。
- 自動クラスターアップグレーダーの問題のトラブルシューティングは、クラスターアップグレーダーのトラブルシューティング を参照してください。
- このセクションの手順をスキップして、アップグレードの確認 および API トークンの取り消し セクションの手順に従ってください。
自動アップグレードを使用していない場合は、Central クラスターを含むすべてのセキュアクラスターでこのセクションの手順を実行する必要があります。
- 最適な機能を確保するには、セキュアクラスターと Central がインストールされているクラスターに同じ RHACS バージョンを使用してください。
Sensor、Collector、および Admission コントローラーを実行している各セキュアクラスターの手動アップグレードを完了するには、このセクションの手順に従ってください。
3.4.1. その他のイメージの更新 リンクのコピーリンクがクリップボードにコピーされました!
自動アップグレードを使用しない場合は、各セキュアクラスターの Sensor、Collector、Compliance イメージを更新する必要があります。
Kubernetes を使用している場合は、この手順にリストされているコマンドで oc の代わりに kubectl を使用してください。
手順
Sensor イメージを更新します。
oc -n stackrox set image deploy/sensor sensor=registry.redhat.io/advanced-cluster-security/rhacs-main-rhel8:4.9.1
$ oc -n stackrox set image deploy/sensor sensor=registry.redhat.io/advanced-cluster-security/rhacs-main-rhel8:4.9.11 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- Kubernetes を使用する場合は、
ocの代わりにkubectlを入力します。
Compliance イメージを更新します。
oc -n stackrox set image ds/collector compliance=registry.redhat.io/advanced-cluster-security/rhacs-main-rhel8:4.9.1
$ oc -n stackrox set image ds/collector compliance=registry.redhat.io/advanced-cluster-security/rhacs-main-rhel8:4.9.11 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- Kubernetes を使用する場合は、
ocの代わりにkubectlを入力します。
Collector イメージを更新します。
oc -n stackrox set image ds/collector collector=registry.redhat.io/advanced-cluster-security/rhacs-collector-rhel8:4.9.1
$ oc -n stackrox set image ds/collector collector=registry.redhat.io/advanced-cluster-security/rhacs-collector-rhel8:4.9.11 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- Kubernetes を使用する場合は、
ocの代わりにkubectlを入力します。
アドミッションコントロールイメージを更新します。
oc -n stackrox set image deploy/admission-control admission-control=registry.redhat.io/advanced-cluster-security/rhacs-main-rhel8:4.9.1
$ oc -n stackrox set image deploy/admission-control admission-control=registry.redhat.io/advanced-cluster-security/rhacs-main-rhel8:4.9.1Copy to Clipboard Copied! Toggle word wrap Toggle overflow
roxctl CLI を使用して Red Hat OpenShift に RHACS をインストールした場合は、Security Context Constraints (SCC) を移行する必要があります。
詳細は、「関連情報」セクションの「手動アップグレード中の SCC の移行」を参照してください。
3.4.2. センサーと admission-control デプロイメントに POD_NAMESPACE を追加する リンクのコピーリンクがクリップボードにコピーされました!
4.6 より前のバージョンからバージョン 4.6 以降にアップグレードする場合は、センサーと admission-control デプロイメントにパッチを適用して、POD_NAMESPACE 環境変数を設定する必要があります。
Kubernetes を使用している場合は、この手順にリストされているコマンドで oc の代わりに kubectl を使用してください。
手順
次のコマンドを実行して、センサーにパッチを適用し、
POD_NAMESPACEが設定されていることを確認します。[[ -z "$(oc -n stackrox get deployment sensor -o yaml | grep POD_NAMESPACE)" ]] && oc -n stackrox patch deployment sensor --type=json -p '[{"op":"add","path":"/spec/template/spec/containers/0/env/-","value":{"name":"POD_NAMESPACE","valueFrom":{"fieldRef":{"fieldPath":"metadata.namespace"}}}}]'$ [[ -z "$(oc -n stackrox get deployment sensor -o yaml | grep POD_NAMESPACE)" ]] && oc -n stackrox patch deployment sensor --type=json -p '[{"op":"add","path":"/spec/template/spec/containers/0/env/-","value":{"name":"POD_NAMESPACE","valueFrom":{"fieldRef":{"fieldPath":"metadata.namespace"}}}}]'Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して、admission-control にパッチを適用し、
POD_NAMESPACEが設定されていることを確認します。[[ -z "$(oc -n stackrox get deployment admission-control -o yaml | grep POD_NAMESPACE)" ]] && oc -n stackrox patch deployment admission-control --type=json -p '[{"op":"add","path":"/spec/template/spec/containers/0/env/-","value":{"name":"POD_NAMESPACE","valueFrom":{"fieldRef":{"fieldPath":"metadata.namespace"}}}}]'$ [[ -z "$(oc -n stackrox get deployment admission-control -o yaml | grep POD_NAMESPACE)" ]] && oc -n stackrox patch deployment admission-control --type=json -p '[{"op":"add","path":"/spec/template/spec/containers/0/env/-","value":{"name":"POD_NAMESPACE","valueFrom":{"fieldRef":{"fieldPath":"metadata.namespace"}}}}]'Copy to Clipboard Copied! Toggle word wrap Toggle overflow
次のステップ
3.4.3. 手動アップグレード中の SCC の移行 リンクのコピーリンクがクリップボードにコピーされました!
roxctl CLI を使用して手動アップグレード中に Security Context Constraints (SCC) を移行すると、Red Hat OpenShift SCC を使用するように Red Hat Advanced Cluster Security for Kubernetes (RHACS) サービスを移行して、Central クラスターとすべてのセキュアクラスター全体で互換性と最適なセキュリティー設定を確保できます。
手順
Central クラスターとすべてのセキュアクラスターにデプロイされているすべての RHACS サービスをリスト表示します。
oc -n stackrox describe pods | grep 'openshift.io/scc\|^Name:'
$ oc -n stackrox describe pods | grep 'openshift.io/scc\|^Name:'Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow この例では、各 Pod に独自のカスタム SCC があり、
openshift.io/sccフィールドで指定されていることがわかります。RHACS のカスタム SCC の代わりに Red Hat OpenShift SCC を使用するには、必要なロールとロールバインディングを追加します。
Central クラスターで Red Hat OpenShift SCC を使用するために必要なロールとロールバインディングを追加するには、次の手順を実行します。
次の内容を使用して、ロールリソースとロールバインディングリソースを定義する
update-central.yamlという名前のファイルを作成します。例3.1 サンプル YAML ファイル
次のコマンドを実行して、
update-central.yamlファイルで指定したロールリソースとロールバインディングリソースを作成します。oc -n stackrox create -f ./update-central.yaml
$ oc -n stackrox create -f ./update-central.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow
すべてのセキュアクラスターで Red Hat OpenShift SCC を使用するために必要なロールとロールバインディングを追加するには、次の手順を実行します。
次の内容を使用して、ロールリソースとロールバインディングリソースを定義する
upgrade-scs.yamlという名前のファイルを作成します。例3.2 サンプル YAML ファイル
次のコマンドを実行して、
upgrade-scs.yamlファイルで指定したロールリソースとロールバインディングリソースを作成します。oc -n stackrox create -f ./update-scs.yaml
$ oc -n stackrox create -f ./update-scs.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 重要upgrade-scs.yamlファイルで指定したロールとロールバインディングを作成するには、各セキュアクラスターでこのコマンドを実行する必要があります。
RHACS に固有の SCC を削除します。
Central クラスターに固有の SCC を削除するには、次のコマンドを実行します。
oc delete scc/stackrox-central scc/stackrox-central-db scc/stackrox-scanner
$ oc delete scc/stackrox-central scc/stackrox-central-db scc/stackrox-scannerCopy to Clipboard Copied! Toggle word wrap Toggle overflow すべてのセキュアクラスターに固有の SCC を削除するには、次のコマンドを実行します。
oc delete scc/stackrox-admission-control scc/stackrox-collector scc/stackrox-sensor
$ oc delete scc/stackrox-admission-control scc/stackrox-collector scc/stackrox-sensorCopy to Clipboard Copied! Toggle word wrap Toggle overflow 重要各セキュアクラスターに固有の SCC を削除するには、各セキュアクラスターでこのコマンドを実行する必要があります。
検証
次のコマンドを実行して、すべての Pod が正しい SCC を使用していることを確認します。
oc -n stackrox describe pods | grep 'openshift.io/scc\|^Name:'
$ oc -n stackrox describe pods | grep 'openshift.io/scc\|^Name:'Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力を次の表と比較してください。
Expand コンポーネント 以前のカスタム SCC Red Hat OpenShift 4 の新しい SCC Central
stackrox-centralnonroot-v2Central-db
stackrox-central-dbnonroot-v2Scanner
stackrox-scannernonroot-v2Scanner-db
stackrox-scannernonroot-v2Admission Controller
stackrox-admission-controlrestricted-v2Collector
stackrox-collectorprivilegedSensor
stackrox-sensorrestricted-v2
3.4.3.1. セキュアクラスターのアップグレードの確認 リンクのコピーリンクがクリップボードにコピーされました!
セキュアクラスターをアップグレードしたら、更新された Pod が機能していることを確認します。
手順
新しい Pod がデプロイされていることを確認します。
oc get deploy,ds -n stackrox -o wide
$ oc get deploy,ds -n stackrox -o wide1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- Kubernetes を使用する場合は、
ocの代わりにkubectlを入力します。
oc get pod -n stackrox --watch
$ oc get pod -n stackrox --watch1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- Kubernetes を使用する場合は、
ocの代わりにkubectlを入力します。