Skip to main content
简体中文版经机器翻译而成,仅供参考。如与英语版出现任何冲突,应以英语版为准。

安装后配置Astra控制中心

贡献者

根据您的环境、安装Astra控制中心后可能需要进行其他配置。

消除资源限制

某些环境使用ResourceQuotas和LimitRanges对象来防止命名空间中的资源占用集群上的所有可用CPU和内存。Astra控制中心未设置最大限制、因此不符合这些资源的要求。如果您的环境采用这种方式配置、则需要从计划安装Astra控制中心的命名空间中删除这些资源。

您可以使用以下步骤检索和删除这些配额和限制。在这些示例中、命令输出会立即显示在命令后面。

步骤
  1. 在中获取资源配额 netapp-acc (或自定义名称)命名空间:

    kubectl get quota -n [netapp-acc or custom namespace]

    响应:

    NAME          AGE   REQUEST                                        LIMIT
    pods-high     16s   requests.cpu: 0/20, requests.memory: 0/100Gi   limits.cpu: 0/200, limits.memory: 0/1000Gi
    pods-low      15s   requests.cpu: 0/1, requests.memory: 0/1Gi      limits.cpu: 0/2, limits.memory: 0/2Gi
    pods-medium   16s   requests.cpu: 0/10, requests.memory: 0/20Gi    limits.cpu: 0/20, limits.memory: 0/200Gi
  2. 按名称删除所有资源配额:

    kubectl delete resourcequota pods-high -n [netapp-acc or custom namespace]
    kubectl delete resourcequota pods-low -n [netapp-acc or custom namespace]
    kubectl delete resourcequota pods-medium -n [netapp-acc or custom namespace]
  3. 在中获取限制范围 netapp-acc (或自定义名称)命名空间:

    kubectl get limits -n [netapp-acc or custom namespace]

    响应:

    NAME              CREATED AT
    cpu-limit-range   2022-06-27T19:01:23Z
  4. 按名称删除限制范围:

    kubectl delete limitrange cpu-limit-range -n [netapp-acc or custom namespace]

添加自定义 TLS 证书

默认情况下、Astra控制中心对传入控制器流量(仅在某些配置中)和Web浏览器的Web UI身份验证使用自签名TLS证书。对于生产环境、您应删除现有的自签名TLS证书、并将其替换为由证书颁发机构(CA)签名的TLS证书。

备注

默认的自签名证书用于两种类型的连接:

  • 通过HTTPS连接到Astra控制中心Web UI

  • 传入控制器流量(仅当 ingressType: "AccTraefik" 属性已在中设置 astra_control_center.yaml 在安装Astra Control Center期间生成文件)

替换默认TLS证书将替换用于对这些连接进行身份验证的证书。

开始之前
  • 安装了 Astra 控制中心的 Kubernetes 集群

  • 对集群上的命令 Shell 进行管理访问,以运行 kubectl 命令

  • CA 中的专用密钥和证书文件

删除自签名证书

删除现有的自签名 TLS 证书。

  1. 使用 SSH ,以管理用户身份登录到托管 Astra 控制中心的 Kubernetes 集群。

  2. 使用以下命令查找与当前证书关联的 TLS 密钥,并将 ` <Acc-deployment-namespace>` 替换为 Astra Control Center 部署命名空间:

    kubectl get certificate -n <ACC-deployment-namespace>
  3. 使用以下命令删除当前安装的密钥和证书:

    kubectl delete cert cert-manager-certificates -n <ACC-deployment-namespace>
    kubectl delete secret secure-testing-cert -n <ACC-deployment-namespace>

使用命令行添加新证书

添加一个由 CA 签名的新 TLS 证书。

  1. 使用以下命令使用 CA 中的专用密钥和证书文件创建新的 TLS 密钥,并将括号 <> 中的参数替换为相应的信息:

    kubectl create secret tls <secret-name> --key <private-key-filename> --cert <certificate-filename> -n <ACC-deployment-namespace>
  2. 使用以下命令和示例编辑集群自定义资源定义( CRD )文件,并将 spec.selfSigned 值更改为 spec.ca.secretName ,以引用您先前创建的 TLS 密钥:

    kubectl edit clusterissuers.cert-manager.io/cert-manager-certificates -n <ACC-deployment-namespace>

    CRD:

    #spec:
    #  selfSigned: {}
    
    spec:
      ca:
        secretName: <secret-name>
  3. 使用以下命令和示例输出验证所做的更改是否正确以及集群是否已准备好验证证书,并将 ` <Acc-deployment-namespace>` 替换为 Astra Control Center 部署命名空间:

    kubectl describe clusterissuers.cert-manager.io/cert-manager-certificates -n <ACC-deployment-namespace>

    响应:

    Status:
      Conditions:
        Last Transition Time:  2021-07-01T23:50:27Z
        Message:               Signing CA verified
        Reason:                KeyPairVerified
        Status:                True
        Type:                  Ready
    Events:                    <none>
  4. 使用以下示例创建 certificate.yaml 文件,将括号中的占位值替换为相应的信息:

    备注 此示例使用 dnsNames 属性以指定Asta Control Center DNS地址。Astra Control Center不支持使用公用名(Common Name、CN)属性指定DNS地址。
    apiVersion: cert-manager.io/v1
    kind: Certificate
    metadata:
      name: <certificate-name>
      namespace: <ACC-deployment-namespace>
    spec:
      secretName: <certificate-secret-name>
      duration: 2160h # 90d
      renewBefore: 360h # 15d
      dnsNames:
      - <astra.dnsname.example.com> #Replace with the correct Astra Control Center DNS address
      issuerRef:
        kind: ClusterIssuer
        name: cert-manager-certificates
  5. 使用以下命令创建证书:

    kubectl apply -f certificate.yaml
  6. 使用以下命令和示例输出,验证是否已正确创建证书以及是否使用您在创建期间指定的参数(例如名称,持续时间,续订截止日期和 DNS 名称)。

    kubectl describe certificate -n <ACC-deployment-namespace>

    响应:

    Spec:
      Dns Names:
        astra.example.com
      Duration:  125h0m0s
      Issuer Ref:
        Kind:        ClusterIssuer
        Name:        cert-manager-certificates
      Renew Before:  61h0m0s
      Secret Name:   <certificate-secret-name>
    Status:
      Conditions:
        Last Transition Time:  2021-07-02T00:45:41Z
        Message:               Certificate is up to date and has not expired
        Reason:                Ready
        Status:                True
        Type:                  Ready
      Not After:               2021-07-07T05:45:41Z
      Not Before:              2021-07-02T00:45:41Z
      Renewal Time:            2021-07-04T16:45:41Z
      Revision:                1
    Events:                    <none>
  7. 使用以下命令和示例编辑TLS存储CRD以指向新证书密钥名称、并将括号<>中的占位符值替换为适当的信息

    kubectl edit tlsstores.traefik.io -n <ACC-deployment-namespace>

    CRD:

    ...
    spec:
      defaultCertificate:
        secretName: <certificate-secret-name>
  8. 使用以下命令和示例编辑传入 CRD TLS 选项以指向新的证书密钥,并将括号 <> 中的占位符值替换为相应的信息:

    kubectl edit ingressroutes.traefik.io -n <ACC-deployment-namespace>

    CRD:

    ...
     tls:
        secretName: <certificate-secret-name>
  9. 使用 Web 浏览器浏览到 Astra 控制中心的部署 IP 地址。

  10. 验证证书详细信息是否与您安装的证书的详细信息匹配。

  11. 导出证书并将结果导入到 Web 浏览器中的证书管理器中。