9.12. 为 AWS 上的 Red Hat OpenShift 验证 cert-manager Operator


您可以为 AWS 集群上的 Red Hat OpenShift 配置 cert-manager Operator 的云凭证。云凭证由 Cloud Credential Operator 生成。

9.12.1. 为 AWS 上的 Red Hat OpenShift 配置 cert-manager Operator 的云凭证

要为 AWS 上的 Red Hat OpenShift 配置 cert-manager Operator 的云凭证,您必须通过创建 CredentialsRequest 对象并允许 Cloud Credential Operator 生成云凭证 secret。

先决条件

  • 您已为 Red Hat OpenShift 安装了 cert-manager Operator 版本 1.11.1 或更高版本。
  • 您已将 Cloud Credential Operator 配置为以 mintpassthrough 模式运行。

流程

  1. 创建一个 CredentialsRequest 资源 YAML 文件,如 sample-credential-request.yaml,如下所示:

    apiVersion: cloudcredential.openshift.io/v1
    kind: CredentialsRequest
    metadata:
      name: cert-manager
      namespace: openshift-cloud-credential-operator
    spec:
      providerSpec:
        apiVersion: cloudcredential.openshift.io/v1
        kind: AWSProviderSpec
        statementEntries:
        - action:
          - "route53:GetChange"
          effect: Allow
          resource: "arn:aws:route53:::change/*"
        - action:
          - "route53:ChangeResourceRecordSets"
          - "route53:ListResourceRecordSets"
          effect: Allow
          resource: "arn:aws:route53:::hostedzone/*"
        - action:
          - "route53:ListHostedZonesByName"
          effect: Allow
          resource: "*"
      secretRef:
        name: aws-creds
        namespace: cert-manager
      serviceAccountNames:
      - cert-manager
  2. 运行以下命令来创建 CredentialsRequest 资源:

    $ oc create -f sample-credential-request.yaml
  3. 运行以下命令,为 Red Hat OpenShift 更新 cert-manager Operator 的订阅对象:

    $ oc -n cert-manager-operator patch subscription openshift-cert-manager-operator --type=merge -p '{"spec":{"config":{"env":[{"name":"CLOUD_CREDENTIALS_SECRET_NAME","value":"aws-creds"}]}}}'

验证

  1. 运行以下命令,获取重新部署的 cert-manager 控制器 pod 的名称:

    $ oc get pods -l app.kubernetes.io/name=cert-manager -n cert-manager

    输出示例

    NAME                          READY   STATUS    RESTARTS   AGE
    cert-manager-bd7fbb9fc-wvbbt  1/1     Running   0          15m39s

  2. 运行以下命令,验证 cert-manager 控制器 pod 是否使用挂载在 mountPath 中指定的路径下的 AWS 凭证卷更新:

    $ oc get -n cert-manager pod/<cert-manager_controller_pod_name> -o yaml

    输出示例

    ...
    spec:
      containers:
      - args:
        ...
        - mountPath: /.aws
          name: cloud-credentials
      ...
      volumes:
      ...
      - name: cloud-credentials
        secret:
          ...
          secretName: aws-creds

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.