删除环境

本主题介绍如何删除环境。如需了解简介,请参阅环境和环境组简介

关于删除环境

要正确删除环境,您必须进行几项配置更改并将更改应用到集群。这些更改包括从替换文件中移除环境定义及引用,删除 synchronizerruntimeudca 组件,最后重新应用覆盖以恢复集群,而无需包含您要删除的环境。

在一个步骤中无法仅删除环境,这是因为其他元素 synchronizerruntimeudca 通过其内部配置连接到每个环境。只有通过删除它们并重新应用,您才能正确删除环境。

如何删除环境

假设您有两个环境,即 testprod。在您的替换文件中,定义可能如下所示:

...
virtualhosts:
  - name: default-test
    hostAliases: ["api-test.example.com"]
    sslCertPath: ./certs/fullchain-test.pem
    sslKeyPath: ./certs/privkey-test.pem
      env: test
  - name: default-prod
    hostAliases: ["api.example.com"]
    sslCertPath: ./certs/fullchain.pem
    sslKeyPath: ./certs/privkey.pem
      env: prod
...
envs:
  - name: test
    serviceAccountPaths:
      synchronizer: "your_keypath/synchronizer-manager-service-account.json
      udca: "your_keypath/analytic-agent-service-account.json
  - name: prod
    serviceAccountPaths:
      synchronizer: "your_keypath/synchronizer-manager-service-account.json
      udca: "your_keypath/analytic-agent-service-account.json
...

要删除 prod 环境,请执行以下步骤:

  1. 将原始替换文件(包含 prodtest 环境定义的文件)复制到名为 prod-delete.yaml(举例)的新文件。
  2. 打开 prod-delete.yaml
  3. envsvirtualhosts 中删除 test 环境定义,并仅保留 prod 定义。例如:
    ...
    virtualhosts:
      - name: default-prod
        hostAliases: ["api.example.com"]
        sslCertPath: ./certs/fullchain.pem
        sslKeyPath: ./certs/privkey.pem
          env: prod
    ...
    envs:
      - name: prod
        serviceAccountPaths:
          synchronizer: "your_keypath/synchronizer-manager-service-account.json
          udca: "your_keypath/analytic-agent-service-account.json
    ...
  4. prod-delete.yaml 中移除 cassandra 配置(如有)之外中的其他所有内容:

    完成上述更改后,您的替换文件应如下所示:

    ...
    virtualhosts:
      - name: default-prod
        hostAliases: ["api.example.com"]
        sslCertPath: ./certs/fullchain.pem
        sslKeyPath: ./certs/privkey.pem
          env: prod
    
    envs:
      - name: prod
        serviceAccountPaths:
          synchronizer: "your_keypath/synchronizer-manager-service-account.json
          udca: "your_keypath/analytic-agent-service-account.json
    
    cassandra:
      replicaCount: 3
      resources:
        requests:
          cpu: 3500m
          memory: 7Gi
      storage:
        storageClass: pd-ssd
        capacity: 10Gi
  5. 运行此命令以删除指定组件:
    apigeectl delete -f prod-delete.yaml -c runtime, udca, synchronizer
  6. 打开原始替换文件(包含 test 和 prod 环境环境定义的文件)。
  7. envsvirtualhosts 元素中删除 prod 环境定义。您只希望 test 环境定义出现在文件中。
  8. 将修改后的替换文件应用于集群。此命令将重新创建已删除的元素,因为它被省略,而不会重新创建 prod 环境。
    apigeectl apply -f original-overrides.yaml -c runtime, udca, synchronizer
  9. 保存更改。

  10. 您尚未完成。现在,您必须在混合界面中更新环境。

  11. 打开浏览器,然后导航到 Apigee 界面上的混合界面。
  12. 按照在混合界面中删除现有环境中所述的步骤移除环境。