第 1 章 保护您的签名数据
作为系统管理员,当因为硬件故障或意外删除数据而丢失时,保护软件供应链的签名数据至关重要。OpenShift API 数据保护(OADP)产品为在 Red Hat OpenShift 上运行的应用程序提供数据保护。通过使用 OADP 产品,这有助于我们使软件开发人员尽快签名和验证代码。安装和配置 OADP operator 后,您可以开始备份和恢复 Red Hat Trusted Artifact Signer (RHTAS)数据。
1.1. 安装和配置 OADP operator
OpenShift API Data Protection (OADP)操作器可让您备份 OpenShift 应用程序资源和内部容器镜像。您可以使用 OADP operator 来备份和恢复 Trusted Artifact Signer 数据。
此流程使用 Amazon Web Services (AWS) Simple Storage Service (S3)创建一个存储桶,以说明如何配置 OADP operator。您可以选择使用不同的 S3 兼容对象存储平台,而不是 AWS,如 Red Hat OpenShift Data Foundation。
先决条件
- Red Hat OpenShift Container Platform 版本 4.13 或更高版本。
-
使用
cluster-admin
角色访问 OpenShift Web 控制台。 - 创建 S3 兼容存储桶的功能。
-
安装了
oc
和aws
二进制文件的工作站。
流程
在工作站上打开一个终端,并登录到 OpenShift:
语法
oc login --token=TOKEN --server=SERVER_URL_AND_PORT
Example
$ oc login --token=sha256~ZvFDBvoIYAbVECixS4-WmkN4RfnNd8Neh3y1WuiFPXC --server=https://example.com:6443
注意您可以从 OpenShift Web 控制台找到用于命令行的登录令牌和 URL。登录 OpenShift Web 控制台。单击您的用户名,然后单击 Copy login command。如果被要求,再次提供您的用户名和密码,然后单击 Display Token 以查看该命令。
创建新存储桶:
语法
export BUCKET=NEW_BUCKET_NAME export REGION=AWS_REGION_ID export USER=OADP_USER_NAME aws s3api create-bucket \ --bucket $BUCKET \ --region $REGION \ --create-bucket-configuration LocationConstraint=$REGION
Example
$ export BUCKET=example-bucket-name $ export REGION=us-east-1 $ export USER=velero $ $ aws s3api create-bucket \ --bucket $BUCKET \ --region $REGION \ --create-bucket-configuration LocationConstraint=$REGION
创建一个新用户:
Example
$ aws iam create-user --user-name $USER
创建新策略:
Example
$ cat > velero-policy.json <<EOF { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ec2:DescribeVolumes", "ec2:DescribeSnapshots", "ec2:CreateTags", "ec2:CreateVolume", "ec2:CreateSnapshot", "ec2:DeleteSnapshot" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "s3:GetObject", "s3:DeleteObject", "s3:PutObject", "s3:AbortMultipartUpload", "s3:ListMultipartUploadParts" ], "Resource": [ "arn:aws:s3:::${BUCKET}/*" ] }, { "Effect": "Allow", "Action": [ "s3:ListBucket", "s3:GetBucketLocation", "s3:ListBucketMultipartUploads" ], "Resource": [ "arn:aws:s3:::${BUCKET}" ] } ] } EOF
将这个策略与新用户关联:
Example
$ aws iam put-user-policy \ --user-name $USER \ --policy-name velero \ --policy-document file://velero-policy.json
创建访问密钥:
Example
$ aws iam create-access-key --user-name $USER --output=json | jq -r '.AccessKey | [ "export AWS_ACCESS_KEY_ID=" + .AccessKeyId, "export AWS_SECRET_ACCESS_KEY=" + .SecretAccessKey ] | join("\n")'
使用 AWS secret 密钥信息创建凭证文件:
语法
cat << EOF > ./credentials-velero [default] aws_access_key_id=$AWS_ACCESS_KEY_ID aws_secret_access_key=$AWS_SECRET_ACCESS_KEY EOF
-
使用具有
cluster-admin
角色的用户登录 OpenShift Web 控制台。 - 从 Administrator 视角中,展开 Operators 导航菜单,然后点 OperatorHub。
- 在搜索字段中,键入 oadp,然后点红帽提供的 OADP Operator 标题。
- 单击 Install 按钮,以显示 Operator 详情。
- 接受默认值,点 Install Operator 页面中的 Install,并等待安装完成。
在 Operator 安装完成后,从 workstation 终端为您的 AWS 凭证创建一个 secret 资源:
Example
$ oc create secret generic cloud-credentials -n openshift-adp --from-file cloud=credentials-velero
- 在 OpenShift Web 控制台中点 View Operator 按钮。
- 在 DataProtectionApplication (DPA) 标题上点 Create instance。
- 在 Create DataProtectionApplication 页面中,选择 YAML 视图。
编辑资源文件中的以下值:
-
在
metadata
部分下,将velero-sample
替换为velero
。 -
在
spec.configuration.nodeAgent
部分下,将restic
替换为kopia
。 -
在
spec.configuration.velero
部分下,添加resourceTimeout: 10m
。 -
在
spec.configuration.velero.defaultPlugins
部分下,add- csi
。 -
在
spec.snapshotLocations
部分下,将us-west-2
值替换为 AWS 区域值。 -
在
spec.backupLocations
部分下,将us-east-1
值替换为 AWS 区域值。 -
在
spec.backupLocations.objectStorage
部分下,将my-bucket-name
替换为您的存储桶名称。如果您使用不同的前缀,将velero
替换为您的存储桶前缀名称。
-
在
- 点 Create 按钮。
其他资源