《OpenShift 4.x HOL教程汇总》
本文在 OpenShift4.18 + RHACS 4.6.1 环境中进行验证,但部分截图未更新。
文章目录
环境要求
RHACS 安装需要 100G 左右的 PV,因此确认有足够的存储空间。
安装 RHACS Operator
- 在 OpenShift 控制台上的“管理员”视图中的“OperatorHub”中找到“RHACS”,然后点击进入。
- 在右侧滑出的页面中可以看到当前 Operator 版本是 “4.5.1”,然后点击 “安装”。
- 然后在 “安装 Operator” 页面中使用默认配置,然后点击 “安装”。
- 在 “安装的 Operator” 页面中可以看到已经安装好的 “Advanced Cluster Security for Kubernetes”。
创建 RHACS 环境
创建 Central 实例
- 创建stackrox项目。
$ oc new-project stackrox
- 进入 “Advanced Cluster Security for Kubernetes” Operator,按照以下YAML创建一个名为“stackrox-central-services”的“Central”实例。说明:可以调整“scaling”中的数量。
apiVersion: platform.stackrox.io/v1alpha1
kind: Central
metadata:
name: stackrox-central-services
namespace: stackrox
spec:
monitoring:
openshift:
enabled: true
network:
policies: Enabled
central:
notifierSecretsEncryption:
enabled: false
exposure:
loadBalancer:
enabled: false
port: 443
nodePort:
enabled: false
route:
enabled: true
telemetry:
enabled: true
db:
isEnabled: Default
persistence:
persistentVolumeClaim:
claimName: central-db
persistence:
persistentVolumeClaim:
claimName: stackrox-db
egress:
connectivityPolicy: Online
scannerV4:
db:
persistence:
persistentVolumeClaim:
claimName: scanner-v4-db
indexer:
scaling:
autoScaling: Enabled
maxReplicas: 5
minReplicas: 2
replicas: 3
matcher:
scaling:
autoScaling: Enabled
maxReplicas: 5
minReplicas: 2
replicas: 3
scannerComponent: Default
scanner:
analyzer:
scaling:
autoScaling: Enabled
maxReplicas: 5
minReplicas: 2
replicas: 3
- 执行命令获取 RHACS 的 admin 用户登录密码,或在控制台查看名为 central-htpasswd 的 secret 对象中 password 对应的密码。
$ oc get secret central-htpasswd -n stackrox -o go-template='{{index .data "password" | base64decode}}'
- 在控制台的“开发者 ”视图中进入“拓扑” 查看 stackrox 项目,可以看到以下运行的 Deployment。
- 点击上图中 centeral 部署的 “打开 URI” 箭头,进入 ACS 控制台。然后用 admin 用户名和获得的密码登录 ACS 控制台。
将 OpenShift 集群注册到 RHACS
本步将运行 RHACS 的 OpenShift 集群注册到 RHACS 中。
创建 init bundle
- 进入 RHACS 控制台的 Platform Configuration -> Clusters 菜单,点击 Create init bundle。
- 在以下页面中提供 Name 后点击 Download,然后保存生成的 init-bundle-Operator-secrets-cluster-init-bundle.yaml 文件。
- 执行命令,根据 init-bundle-Operator-secrets-cluster-init-bundle.yaml 创建 secret 对象。
$ oc apply -f init-bundle-Operator-secrets-cluster-init-bundle.yaml -n stackrox
secret/admission-control-tls created
secret/collector-tls created
secret/sensor-tls created
创建 Secured Cluster 实例
- 在 “Advanced Cluster Security for Kubernetes” Operator中使用缺省YAML创建一个“Secured Cluster” 实例。
kind: SecuredCluster
apiVersion: platform.stackrox.io/v1alpha1
metadata:
name: stackrox-secured-cluster-services
namespace: stackrox
spec:
clusterName: my-cluster
- 可以在 stackrox-secured-cluster-services 中的 Resources 查看部署的资源。
- 还可在控制台的“开发者”视图中进入“拓扑”查看运行的 Deployment,其中右侧是本节新部署的资源。
查看 RHACS 控制台
- 在 RHACS 控制台中的 “Clusters” 中可以看到注册名为 my-cluster 的 OpenShift 集群,它的组件状态为全部为绿色。
- 在 RHACS 控制台中的 “System Health” 查看集群组件状态,它的组件状态为全部为绿色。注意:StackRox Scanner Vulnerability Definitions 项目只会在更新扫描库后才会显示绿色。
- 同时在 RHACS 控制台中的 Dashboard 可以看到该 OpenShift 集群的安全情况。
配置 OpenShift Auth
- 进入 Platform Configuration -> Access Control 菜单,创建一个 OpenShift Auth。
- 提供 Name,并在 Rules 中将 OpenShift 用户映射到 ACS 的角色。
- 保存后退出 ACS Console。
- 在 ACS 登陆页面选择 OpenShift Auth Provider,然后用 OpenShift 的用户登录即可。
参考
https://redhat-scholars.github.io/acs-workshop/acs-workshop/index.html