$ roxctl -e "$ROX_CENTRAL_ADDRESS" central backup
您可以从受支持的旧版本升级到最新版本的 Red Hat Advanced Cluster Security for Kubernetes (RHACS)。
|
要将 RHACS 升级到最新版本,请执行以下步骤
您可以备份中央数据库,并使用该备份从失败的升级中回滚或在基础设施灾难的情况下进行数据恢复。
您必须拥有一个具有针对 Red Hat Advanced Cluster Security for Kubernetes 所有资源的read
权限的 API 令牌。**分析师**系统角色对所有资源都具有read
权限。
您已安装roxctl
CLI。
您已配置ROX_API_TOKEN
和ROX_CENTRAL_ADDRESS
环境变量。
运行备份命令
$ roxctl -e "$ROX_CENTRAL_ADDRESS" central backup
roxctl
CLI要将roxctl
CLI 升级到最新版本,您必须卸载现有版本的roxctl
CLI,然后安装最新版本的roxctl
CLI。
您可以使用以下步骤卸载 Linux 上的roxctl
CLI 二进制文件。
查找并删除roxctl
二进制文件
$ ROXPATH=$(which roxctl) && rm -f $ROXPATH (1)
1 | 根据您的环境,您可能需要管理员权限才能删除roxctl 二进制文件。 |
您可以使用以下步骤在 Linux 上安装roxctl
CLI 二进制文件。
Linux 版 |
确定目标操作系统的roxctl
架构
$ arch="$(uname -m | sed "s/x86_64//")"; arch="${arch:+-$arch}"
下载roxctl
CLI
$ curl -L -f -o roxctl "https://mirror.openshift.com/pub/rhacs/assets/4.6.1/bin/Linux/roxctl${arch}"
使roxctl
二进制文件可执行
$ chmod +x roxctl
将roxctl
二进制文件放置在PATH
中的目录中
要检查您的PATH
,请执行以下命令
$ echo $PATH
验证您已安装的roxctl
版本
$ roxctl version
您可以使用以下步骤在 macOS 上安装roxctl
CLI 二进制文件。
macOS 版 |
确定目标操作系统的roxctl
架构
$ arch="$(uname -m | sed "s/x86_64//")"; arch="${arch:+-$arch}"
下载roxctl
CLI
$ curl -L -f -o roxctl "https://mirror.openshift.com/pub/rhacs/assets/4.6.1/bin/Darwin/roxctl${arch}"
删除二进制文件的所有扩展属性
$ xattr -c roxctl
使roxctl
二进制文件可执行
$ chmod +x roxctl
将roxctl
二进制文件放置在PATH
中的目录中
要检查您的PATH
,请执行以下命令
$ echo $PATH
验证您已安装的roxctl
版本
$ roxctl version
创建中央数据库的备份并使用预配包生成必要的资源后,下一步是升级中央集群。此过程涉及升级中央和扫描器。
您可以通过下载和部署更新的镜像来将 Central 更新到最新版本。
运行以下命令以更新 Central 镜像
$ oc -n stackrox set image deploy/central central=registry.redhat.io/advanced-cluster-security/rhacs-main-rhel8:4.6.1 (1)
1 | 如果您使用 Kubernetes,请输入kubectl 代替oc 。 |
验证新 Pod 是否已部署
$ oc get deploy -n stackrox -o wide
$ oc get pod -n stackrox --watch
您可以通过下载和部署更新的镜像来将 Scanner 更新到最新版本。
运行以下命令以更新 Scanner 镜像
$ oc -n stackrox set image deploy/scanner scanner=registry.redhat.io/advanced-cluster-security/rhacs-scanner-rhel8:4.6.1 (1)
1 | 如果您使用 Kubernetes,请输入kubectl 代替oc 。 |
验证新 Pod 是否已部署
$ oc get deploy -n stackrox -o wide
$ oc get pod -n stackrox --watch
升级中央和扫描器后,请验证中央集群升级是否完成。
通过运行以下命令检查中央日志
$ oc logs -n stackrox deploy/central -c central (1)
1 | 如果您使用 Kubernetes,请输入kubectl 代替oc 。 |
No database restore directory found (this is not an error).
Migrator: 2023/04/19 17:58:54: starting DB compaction
Migrator: 2023/04/19 17:58:54: Free fraction of 0.0391 (40960/1048576) is < 0.7500. Will not compact
badger 2023/04/19 17:58:54 INFO: All 1 tables opened in 2ms
badger 2023/04/19 17:58:55 INFO: Replaying file id: 0 at offset: 846357
badger 2023/04/19 17:58:55 INFO: Replay took: 50.324µs
badger 2023/04/19 17:58:55 DEBUG: Value log discard stats empty
Migrator: 2023/04/19 17:58:55: DB is up to date. Nothing to do here.
badger 2023/04/19 17:58:55 INFO: Got compaction priority: {level:0 score:1.73 dropPrefix:[]}
version: 2023/04/19 17:58:55.189866 ensure.go:49: Info: Version found in the DB was current. We’re good to go!
升级中央服务后,您必须升级所有受保护的集群。
|
要完成运行 Sensor、Collector 和 Admission controller 的每个受保护集群的手动升级,请按照本节中的说明进行操作。
如果不使用自动升级,则必须更新每个受保护集群上的 sensor、collector 和 compliance 镜像。
如果您使用 Kubernetes,请对本步骤中列出的命令使用 |
更新 Sensor 镜像
$ oc -n stackrox set image deploy/sensor sensor=registry.redhat.io/advanced-cluster-security/rhacs-main-rhel8:4.6.1 (1)
1 | 如果您使用 Kubernetes,请输入kubectl 代替oc 。 |
更新 Compliance 镜像
$ oc -n stackrox set image ds/collector compliance=registry.redhat.io/advanced-cluster-security/rhacs-main-rhel8:4.6.1 (1)
1 | 如果您使用 Kubernetes,请输入kubectl 代替oc 。 |
更新 Collector 镜像
$ oc -n stackrox set image ds/collector collector=registry.redhat.io/advanced-cluster-security/rhacs-collector-rhel8:4.6.1 (1)
1 | 如果您使用 Kubernetes,请输入kubectl 代替oc 。 |
如果您使用的是 collector slim 镜像,请改用以下命令
|
更新准入控制镜像
$ oc -n stackrox set image deploy/admission-control admission-control=registry.redhat.io/advanced-cluster-security/rhacs-main-rhel8:4.6.1
如果您使用 有关更多信息,请参阅“其他资源”部分中的“手动升级期间迁移 SCC”。 |
从低于 4.6 的版本升级到 4.6 或更高版本时,必须修补 sensor 和 admission-control 部署以设置POD_NAMESPACE
环境变量。
如果您使用 Kubernetes,请对本步骤中列出的命令使用 |
通过运行以下命令修补 sensor 以确保设置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"}}}}]'
通过运行以下命令修补 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"}}}}]'
通过使用roxctl
CLI 在手动升级过程中迁移安全上下文约束 (SCC),您可以无缝地转换 Red Hat Advanced Cluster Security for Kubernetes (RHACS) 服务以使用 Red Hat OpenShift SCC,确保中央集群和所有受保护集群的兼容性和最佳安全配置。
列出部署在中央集群和所有受保护集群上的所有 RHACS 服务
$ oc -n stackrox describe pods | grep 'openshift.io/scc\|^Name:'
Name: admission-control-6f4dcc6b4c-2phwd
openshift.io/scc: stackrox-admission-control
#...
Name: central-575487bfcb-sjdx8
openshift.io/scc: stackrox-central
Name: central-db-7c7885bb-6bgbd
openshift.io/scc: stackrox-central-db
Name: collector-56nkr
openshift.io/scc: stackrox-collector
#...
Name: scanner-68fc55b599-f2wm6
openshift.io/scc: stackrox-scanner
Name: scanner-68fc55b599-fztlh
#...
Name: sensor-84545f86b7-xgdwf
openshift.io/scc: stackrox-sensor
#...
在这个例子中,您可以看到每个 Pod 都有其自己的自定义 SCC,这是通过openshift.io/scc
字段指定的。
添加所需的权限和角色绑定以使用 Red Hat OpenShift SCC 代替 RHACS 自定义 SCC。
要添加所需的权限和角色绑定以对中央集群使用 Red Hat OpenShift SCC,请完成以下步骤
创建一个名为update-central.yaml
的文件,使用以下内容定义角色和角色绑定资源
apiVersion: rbac.authorization.k8s.io/v1
kind: Role (1)
metadata:
annotations:
email: [email protected]
owner: stackrox
labels:
app.kubernetes.io/component: central
app.kubernetes.io/instance: stackrox-central-services
app.kubernetes.io/name: stackrox
app.kubernetes.io/part-of: stackrox-central-services
app.kubernetes.io/version: 4.4.0
name: use-central-db-scc (2)
namespace: stackrox (3)
Rules: (4)
- apiGroups:
- security.openshift.io
resourceNames:
- nonroot-v2
resources:
- securitycontextconstraints
verbs:
- use
- - -
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
annotations:
email: [email protected]
owner: stackrox
labels:
app.kubernetes.io/component: central
app.kubernetes.io/instance: stackrox-central-services
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/name: stackrox
app.kubernetes.io/part-of: stackrox-central-services
app.kubernetes.io/version: 4.4.0
name: use-central-scc
namespace: stackrox
rules:
- apiGroups:
- security.openshift.io
resourceNames:
- nonroot-v2
resources:
- securitycontextconstraints
verbs:
- use
- - -
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
annotations:
email: [email protected]
owner: stackrox
labels:
app.kubernetes.io/component: scanner
app.kubernetes.io/instance: stackrox-central-services
app.kubernetes.io/name: stackrox
app.kubernetes.io/part-of: stackrox-central-services
app.kubernetes.io/version: 4.4.0
name: use-scanner-scc
namespace: stackrox
rules:
- apiGroups:
- security.openshift.io
resourceNames:
- nonroot-v2
resources:
- securitycontextconstraints
verbs:
- use
- - -
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding (5)
metadata:
annotations:
email: [email protected]
owner: stackrox
labels:
app.kubernetes.io/component: central
app.kubernetes.io/instance: stackrox-central-services
app.kubernetes.io/name: stackrox
app.k ubernetes.io/part-of: stackrox-central-services
app.kubernetes.io/version: 4.4.0
name: central-db-use-scc (6)
namespace: stackrox
roleRef: (7)
apiGroup: rbac.authorization.k8s.io
kind: Role
name: use-central-db-scc
subjects: (8)
- kind: ServiceAccount
name: central-db
namespace: stackrox
- - -
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
annotations:
email: [email protected]
owner: stackrox
labels:
app.kubernetes.io/component: central
app.kubernetes.io/instance: stackrox-central-services
app.kubernetes.io/name: stackrox
app.kubernetes.io/part-of: stackrox-central-services
app.kubernetes.io/version: 4.4.0
name: central-use-scc
namespace: stackrox
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: Role
name: use-central-scc
subjects:
- kind: ServiceAccount
name: central
namespace: stackrox
- - -
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
annotations:
email: [email protected]
owner: stackrox
labels:
app.kubernetes.io/component: scanner
app.kubernetes.io/instance: stackrox-central-services
app.kubernetes.io/name: stackrox
app.kubernetes.io/part-of: stackrox-central-services
app.kubernetes.io/version: 4.4.0
name: scanner-use-scc
namespace: stackrox
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: Role
name: use-scanner-scc
subjects:
- kind: ServiceAccount
name: scanner
namespace: stackrox
- - -
1 | Kubernetes 资源的类型,在此示例中为Role 。 |
2 | 角色资源的名称。 |
3 | 创建角色的命名空间。 |
4 | 描述角色资源授予的权限。 |
5 | Kubernetes 资源的类型,在此示例中为RoleBinding 。 |
6 | 角色绑定资源的名称。 |
7 | 指定在同一命名空间中绑定的角色。 |
8 | 指定绑定到角色的主题。 |
通过运行以下命令创建update-central.yaml
文件中指定的权限和角色绑定资源
$ oc -n stackrox create -f ./update-central.yaml
要添加所需的权限和角色绑定以对所有受保护集群使用 Red Hat OpenShift SCC,请完成以下步骤
创建一个名为upgrade-scs.yaml
的文件,使用以下内容定义角色和角色绑定资源
apiVersion: rbac.authorization.k8s.io/v1
kind: Role (1)
metadata:
annotations:
email: [email protected]
owner: stackrox
labels:
app.kubernetes.io/component: collector
app.kubernetes.io/instance: stackrox-secured-cluster-services
app.kubernetes.io/name: stackrox
app.kubernetes.io/part-of: stackrox-secured-cluster-services
app.kubernetes.io/version: 4.4.0
auto-upgrade.stackrox.io/component: sensor
name: use-privileged-scc (2)
namespace: stackrox (3)
rules: (4)
- apiGroups:
- security.openshift.io
resourceNames:
- privileged
resources:
- securitycontextconstraints
verbs:
- use
- - -
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding (5)
metadata:
annotations:
email: [email protected]
owner: stackrox
labels:
app.kubernetes.io/component: collector
app.kubernetes.io/instance: stackrox-secured-cluster-services
app.kubernetes.io/name: stackrox
app.kubernetes.io/part-of: stackrox-secured-cluster-services
app.kubernetes.io/version: 4.4.0
auto-upgrade.stackrox.io/component: sensor
name: collector-use-scc (6)
namespace: stackrox
roleRef: (7)
apiGroup: rbac.authorization.k8s.io
kind: Role
name: use-privileged-scc
subjects: (8)
- kind: ServiceAccount
name: collector
namespace: stackrox
- - -
1 | Kubernetes 资源的类型,在此示例中为Role 。 |
2 | 角色资源的名称。 |
3 | 创建角色的命名空间。 |
4 | 描述角色资源授予的权限。 |
5 | Kubernetes 资源的类型,在此示例中为RoleBinding 。 |
6 | 角色绑定资源的名称。 |
7 | 指定在同一命名空间中绑定的角色。 |
8 | 指定绑定到角色的主题。 |
通过运行以下命令创建upgrade-scs.yaml
文件中指定的权限和角色绑定资源
$ oc -n stackrox create -f ./update-scs.yaml
您必须在每个受保护集群上运行此命令才能创建 |
删除特定于 RHACS 的 SCC
要删除特定于中央集群的 SCC,请运行以下命令
$ oc delete scc/stackrox-central scc/stackrox-central-db scc/stackrox-scanner
要删除特定于所有受保护集群的 SCC,请运行以下命令
$ oc delete scc/stackrox-admission-control scc/stackrox-collector scc/stackrox-sensor
您必须在每个受保护集群上运行此命令才能删除特定于每个受保护集群的 SCC。 |
通过运行以下命令确保所有 Pod 都使用了正确的 SCC
$ oc -n stackrox describe pods | grep 'openshift.io/scc\|^Name:'
将输出与下表进行比较
组件 | 之前的自定义 SCC | 新的 Red Hat OpenShift 4 SCC |
---|---|---|
中央集群 (Central) |
|
|
中央数据库 (Central-db) |
|
|
扫描器 (Scanner) |
|
|
扫描器数据库 (Scanner-db) |
|
|
准入控制器 (Admission Controller) |
|
|
收集器 (Collector) |
|
|
传感器 (Sensor) |
|
|
升级到 4.4 版本需要您手动将GOMEMLIMIT
环境变量替换为ROX_MEMLIMIT
环境变量。您必须为每个部署编辑此变量。
运行以下命令来编辑传感器部署的变量
$ oc -n stackrox edit deploy/sensor (1)
1 | 如果您使用 Kubernetes,请输入kubectl 代替oc 。 |
将GOMEMLIMIT
变量替换为ROX_MEMLIMIT
。
保存文件。
升级到 4.4 版本需要您手动将GOMEMLIMIT
环境变量替换为ROX_MEMLIMIT
环境变量。您必须为每个部署编辑此变量。
运行以下命令来编辑收集器部署的变量
$ oc -n stackrox edit deploy/collector (1)
1 | 如果您使用 Kubernetes,请输入kubectl 代替oc 。 |
将GOMEMLIMIT
变量替换为ROX_MEMLIMIT
。
保存文件。
如果您使用 OpenShift Container Platform,则可以使用 Red Hat Advanced Cluster Security for Kubernetes (RHACS) 启用对 Red Hat Enterprise Linux CoreOS (RHCOS) 节点的漏洞扫描。
要扫描受保护集群的 RHCOS 节点主机,您必须在 OpenShift Container Platform 4.12 或更高版本上安装受保护集群服务。有关支持的平台和架构的信息,请参见Red Hat Advanced Cluster Security for Kubernetes 支持矩阵。有关 RHACS 的生命周期支持信息,请参见Red Hat Advanced Cluster Security for Kubernetes 支持策略。
运行以下命令之一来更新合规性容器。
对于禁用指标的默认合规性容器,请运行以下命令
$ oc -n stackrox patch daemonset/collector -p '{"spec":{"template":{"spec":{"containers":[{"name":"compliance","env":[{"name":"ROX_METRICS_PORT","value":"disabled"},{"name":"ROX_NODE_SCANNING_ENDPOINT","value":"127.0.0.1:8444"},{"name":"ROX_NODE_SCANNING_INTERVAL","value":"4h"},{"name":"ROX_NODE_SCANNING_INTERVAL_DEVIATION","value":"24m"},{"name":"ROX_NODE_SCANNING_MAX_INITIAL_WAIT","value":"5m"},{"name":"ROX_RHCOS_NODE_SCANNING","value":"true"},{"name":"ROX_CALL_NODE_INVENTORY_ENABLED","value":"true"}]}]}}}}'
对于启用了 Prometheus 指标的合规性容器,请运行以下命令
$ oc -n stackrox patch daemonset/collector -p '{"spec":{"template":{"spec":{"containers":[{"name":"compliance","env":[{"name":"ROX_METRICS_PORT","value":":9091"},{"name":"ROX_NODE_SCANNING_ENDPOINT","value":"127.0.0.1:8444"},{"name":"ROX_NODE_SCANNING_INTERVAL","value":"4h"},{"name":"ROX_NODE_SCANNING_INTERVAL_DEVIATION","value":"24m"},{"name":"ROX_NODE_SCANNING_MAX_INITIAL_WAIT","value":"5m"},{"name":"ROX_RHCOS_NODE_SCANNING","value":"true"},{"name":"ROX_CALL_NODE_INVENTORY_ENABLED","value":"true"}]}]}}}}'
通过执行以下步骤更新收集器 DaemonSet (DS)
通过运行以下命令向收集器 DS 添加新的卷挂载
$ oc -n stackrox patch daemonset/collector -p '{"spec":{"template":{"spec":{"volumes":[{"name":"tmp-volume","emptyDir":{}},{"name":"cache-volume","emptyDir":{"sizeLimit":"200Mi"}}]}}}}'
通过运行以下命令添加新的NodeScanner
容器
$ oc -n stackrox patch daemonset/collector -p '{"spec":{"template":{"spec":{"containers":[{"command":["/scanner","--nodeinventory","--config=",""],"env":[{"name":"ROX_NODE_NAME","valueFrom":{"fieldRef":{"apiVersion":"v1","fieldPath":"spec.nodeName"}}},{"name":"ROX_CLAIR_V4_SCANNING","value":"true"},{"name":"ROX_COMPLIANCE_OPERATOR_INTEGRATION","value":"true"},{"name":"ROX_CSV_EXPORT","value":"false"},{"name":"ROX_DECLARATIVE_CONFIGURATION","value":"false"},{"name":"ROX_INTEGRATIONS_AS_CONFIG","value":"false"},{"name":"ROX_NETPOL_FIELDS","value":"true"},{"name":"ROX_NETWORK_DETECTION_BASELINE_SIMULATION","value":"true"},{"name":"ROX_NETWORK_GRAPH_PATTERNFLY","value":"true"},{"name":"ROX_NODE_SCANNING_CACHE_TIME","value":"3h36m"},{"name":"ROX_NODE_SCANNING_INITIAL_BACKOFF","value":"30s"},{"name":"ROX_NODE_SCANNING_MAX_BACKOFF","value":"5m"},{"name":"ROX_PROCESSES_LISTENING_ON_PORT","value":"false"},{"name":"ROX_QUAY_ROBOT_ACCOUNTS","value":"true"},{"name":"ROX_ROXCTL_NETPOL_GENERATE","value":"true"},{"name":"ROX_SOURCED_AUTOGENERATED_INTEGRATIONS","value":"false"},{"name":"ROX_SYSLOG_EXTRA_FIELDS","value":"true"},{"name":"ROX_SYSTEM_HEALTH_PF","value":"false"},{"name":"ROX_VULN_MGMT_WORKLOAD_CVES","value":"false"}],"image":"registry.redhat.io/advanced-cluster-security/rhacs-scanner-slim-rhel8:4.6.1","imagePullPolicy":"IfNotPresent","name":"node-inventory","ports":[{"containerPort":8444,"name":"grpc","protocol":"TCP"}],"volumeMounts":[{"mountPath":"/host","name":"host-root-ro","readOnly":true},{"mountPath":"/tmp/","name":"tmp-volume"},{"mountPath":"/cache","name":"cache-volume"}]}]}}}}'
如果新版本的升级不成功,您可以回滚到中央集群的先前版本。
如果 Red Hat Advanced Cluster Security for Kubernetes 升级失败,您可以回滚到中央集群的先前版本。
在执行回滚之前,您必须在持久性存储上拥有可用的空闲磁盘空间。Red Hat Advanced Cluster Security for Kubernetes 使用磁盘空间在升级期间保留数据库的副本。如果磁盘空间不足以存储副本并且升级失败,您可能无法回滚到早期版本。
运行以下命令在升级失败时回滚到先前版本(在中央服务启动之前)
$ oc -n stackrox rollout undo deploy/central (1)
1 | 如果您使用 Kubernetes,请输入kubectl 代替oc 。 |
您可以使用强制回滚来回滚到中央集群的早期版本(在中央服务启动之后)。
使用强制回滚切换回先前版本可能会导致数据和功能丢失。 |
在执行回滚之前,您必须在持久性存储上拥有可用的空闲磁盘空间。Red Hat Advanced Cluster Security for Kubernetes 使用磁盘空间在升级期间保留数据库的副本。如果磁盘空间不足以存储副本并且升级失败,您将无法回滚到早期版本。
运行以下命令执行强制回滚
强制回滚到先前安装的版本
$ oc -n stackrox rollout undo deploy/central (1)
1 | 如果您使用 Kubernetes,请输入kubectl 代替oc 。 |
强制回滚到特定版本
编辑中央集群的ConfigMap
$ oc -n stackrox edit configmap/central-config (1)
1 | 如果您使用 Kubernetes,请输入kubectl 代替oc 。 |
更新maintenance.forceRollbackVersion
键的值
data:
central-config.yaml: |
maintenance:
safeMode: false
compaction:
enabled: true
bucketFillFraction: .5
freeFractionThreshold: 0.75
forceRollbackVersion: <x.x.x.x> (1)
...
1 | 指定要回滚到的版本。 |
更新中央集群的镜像版本
$ oc -n stackrox \ (1)
set image deploy/central central=registry.redhat.io/advanced-cluster-security/rhacs-main-rhel8:<x.x.x.x> (2)
1 | 如果您使用 Kubernetes,请输入kubectl 代替oc 。 |
2 | 指定要回滚到的版本。它必须与您在central-config 配置映射中为maintenance.forceRollbackVersion 键指定的版本相同。 |
更新后的传感器和收集器继续报告来自每个受保护集群的最新数据。
传感器上次联系中央集群的时间在 RHACS 门户中可见。
在 RHACS 门户中,转到**平台配置** → **系统健康**。
检查以确保传感器升级显示集群已与中央集群同步。
出于安全原因,Red Hat 建议您撤销已用于完成中央集群数据库备份的 API 令牌。
升级后,您必须重新加载 RHACS 门户页面并重新接受证书才能继续使用 RHACS 门户。
在 RHACS 门户中,转到**平台配置** → **集成**。
向下滚动到**身份验证令牌**类别,然后单击**API 令牌**。
选择要撤销的令牌名称前面的复选框。
点击撤销。
在确认对话框中,点击确认。
如果您在使用安全集群的旧版安装方法并启用自动更新时遇到问题,您可以尝试对问题进行故障排除。升级程序失败时,可以在集群视图中找到以下错误。
集群页面中显示以下错误
Upgrader failed to execute PreflightStage of the roll-forward workflow: executing stage "Run preflight checks": preflight check "Kubernetes authorization" reported errors. This usually means that access is denied. Have you configured this Secured Cluster for automatically receiving upgrades?"
在点击下载 YAML 文件和密钥之前,请确保为安全集群生成的包启用了未来升级。
如果可能,请删除该安全集群并生成一个新的包,确保启用了未来升级。
如果您无法重新创建集群,您可以采取以下操作
确保服务帐户sensor-upgrader
存在于与 Sensor 相同的命名空间中。
确保存在一个 ClusterRoleBinding(默认名称:<namespace>:upgrade-sensors
),它将cluster-admin
ClusterRole 授予sensor-upgrader
服务帐户。
集群页面中显示以下错误
"Upgrade initialization error: The upgrader pods have trouble pulling the new image: Error pulling image: (...) (<image_reference:tag>: not found)"
确保安全集群可以访问注册表并拉取镜像<image_reference:tag>
。
确保在安全集群中正确配置了镜像拉取密钥。