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]

在命名空间之间启用网络通信

某些环境使用NetworkPolicy构造来限制命名空间之间的流量。Astra控制中心操作员和Astra控制中心位于不同的命名空间中。这些不同命名空间中的服务需要能够彼此通信。要启用此通信、请执行以下步骤。

步骤
  1. 删除Astra控制中心命名空间中的任何NetworkPolicy资源:

    kubectl get networkpolicy -n [netapp-acc or custom namespace]
  2. 对于上述命令返回的每个NetworkPolicy对象、请使用以下命令将其删除。将[object_name]替换为返回对象的名称:

    kubectl delete networkpolicy [OBJECT_NAME] -n [netapp-acc or custom namespace]
  3. 应用以下资源文件以配置 acc-avp-network-policy 允许Asta插件服务向Asta Control Center服务发出请求的对象。将括号<>中的信息替换为您环境中的信息:

    apiVersion: networking.k8s.io/v1
    kind: NetworkPolicy
    metadata:
      name: acc-avp-network-policy
      namespace: <ACC_NAMESPACE_NAME> # REPLACE THIS WITH THE ASTRA CONTROL CENTER NAMESPACE NAME
    spec:
      podSelector: {}
      policyTypes:
        - Ingress
      ingress:
        - from:
            - namespaceSelector:
                matchLabels:
                  kubernetes.io/metadata.name: <PLUGIN_NAMESPACE_NAME> # REPLACE THIS WITH THE ASTRA PLUGIN NAMESPACE NAME
  4. 应用以下资源文件以配置 acc-operator-network-policy 允许Astra控制中心操作员与Astra控制中心服务进行通信的对象。将括号<>中的信息替换为您环境中的信息:

    apiVersion: networking.k8s.io/v1
    kind: NetworkPolicy
    metadata:
      name: acc-operator-network-policy
      namespace: <ACC_NAMESPACE_NAME> # REPLACE THIS WITH THE ASTRA CONTROL CENTER NAMESPACE NAME
    spec:
      podSelector: {}
      policyTypes:
        - Ingress
      ingress:
        - from:
            - namespaceSelector:
                matchLabels:
                  kubernetes.io/metadata.name: <NETAPP-ACC-OPERATOR> # REPLACE THIS WITH THE OPERATOR NAMESPACE NAME

添加自定义 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>
    ....
    
    #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 file使用以下示例将括号<>中的占位符值替换为相应的信息:

    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. 使用以下命令和示例编辑传入 CRD TLS 选项以指向新的证书密钥,并将括号 <> 中的占位符值替换为相应的信息:

    kubectl edit ingressroutes.traefik.containo.us -n <ACC-deployment-namespace>
    ....
    
    # tls:
    #    options:
    #      name: default
    #    secretName: secure-testing-cert
    #    store:
    #      name: default
    
     tls:
        options:
          name: default
        secretName: <certificate-secret-name>
        store:
          name: default
  8. 使用 Web 浏览器浏览到 Astra 控制中心的部署 IP 地址。

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

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