本文档概述从混合部署中停用组织的步骤。停用组织意味着从所有 Kubernetes 集群内的所有 Cassandra pod 中删除与组织相关的所有数据。
限制
一次只能停用一个组织。不支持同时停用多个组织。
获取组织名称
这些说明中的某些命令要求您使用格式正确的组织名称。
如需获取组织名称以在本页上的命令中使用,请执行以下操作:
- 从组织的
overrides.yaml
文件中检索组织名称。 - 如果组织名称包含任何短划线(“-”),请将其替换为下划线(“_”)。
说明
按照以下说明从混合部署中停用组织。
- 备份组织
- 如果尚未针对混合部署启用备份,请现在启用。在多区域设置中,请使用在主要区域中运行的混合部署。如需了解混合备份,请参阅 Cassandra 备份概览。
- 使用以下命令触发混合备份作业:
kubectl create job -n APIGEE_NAMESPACE --from=cronjob/apigee-cassandra-backup BACKUP_JOB_NAME
BACKUP_JOB_NAME 可以是任何有效的容器名称。
-
备份作业完成后,使用监控备份中的“检查备份作业的状态”和“检查备份日志”来验证备份是否成功。
- (可选)如果您在要删除的组织上配置了 Apigee Telemetry(Metrics 和 Logger),请按照以下步骤重新进行配置,以便指标和日志数据应用于新的组织/项目。
- 为要向其发送数据的组织运行此命令。请务必使用组织的
overrides.yaml
文件。例如,如果要停用的组织是“test-dev”,则overrides.yaml
文件应包含org: test-dev
组织字段。helm upgrade telemetry apigee-telemetry/ \ --namespace APIGEE_NAMESPACE \ --atomic \ -f OVERRIDES_FILE.yaml
-
运行此命令,确保使用正确的组织/项目:
kubectl -n APIGEE_NAMESPACE get apigeetelemetry apigee-telemetry -oyaml | grep `gcpProjectID:`
- 从混合部署中删除组织的 Kubernetes 资源。
- 验证当前上下文是否为来源 Kubernetes 集群的正确上下文:
kubectl config current-context
如果需要,请设置 Kubernetes 上下文。
列出当前上下文以查看每个集群的上下文名称:
kubectl config get-contexts
将上下文设置为要停用的集群和区域:
kubectl config use-context CONTEXT_NAME
其中,CONTEXT_NAME 是集群和区域的上下文名称。
例如:
kubectl config get-contexts
CURRENT NAME CLUSTER AUTHINFO NAMESPACE gke_example-org-1_us-central1_example-cluster-1 gke_example-org-1_us-central1_example-cluster-1 gke_example-org-1_us-central1_example-cluster-1 apigee * gke_example-org-1_us-central1_example-cluster-2 gke_example-org-1_us-central1_example-cluster-2 gke_example-org-1_us-central1_example-cluster-2 apigee gke_example-org-1_us-west1_example-cluster-2 gke_example-org-1_us-west1_example-cluster-2 gke_example-org-1_us-west1_example-cluster-2 apigeekubectl config use-context gke_example-org-1_us-west1_example-cluster-2
- 删除虚拟主机。
对每个环境组重复此步骤:
helm -n APIGEE_NAMESPACE delete ENV_GROUP_NAME
- 删除环境。对每个环境重复此操作:
helm -n APIGEE_NAMESPACE delete ENV_NAME
- 删除 Apigee 组织。
helm -n APIGEE_NAMESPACE delete ORG_NAME
- 验证当前上下文是否为来源 Kubernetes 集群的正确上下文:
- 从混合部署中删除组织数据。完成此步骤后,所有组织数据都将从混合部署中移除。
- 对
apigee-cassandra-default-0
pod 执行 exec:kubectl exec -it -n APIGEE_NAMESPACE apigee-cassandra-default-0 -- /bin/bash
- 执行以下命令:
复制输出中显示的所有名称的列表。
稍后需要用到此列表。
find /opt/apigee/data/apigee-cassandra/ -iname '*ORG_NAME_hybrid' -type d -maxdepth 2 -printf "%f\n"
如需了解如何查找和准备 ORG_NAME,请参阅获取组织名称。
从
apigee-cassandra-default-0
pod 中退出。 - 按照创建用于调试的客户端容器中的说明,创建 Cassandra 调试客户端 pod。
在看到
cqlsh
提示符后,继续执行下一步。 - 在
cqlsh
提示符处,执行以下命令:desc keyspaces;
确保此命令不返回任何错误。
对于之前从
apigee apigee-cassandra-default-0
创建的列表中的每个名称,请运行以下命令:drop keyspace KEYSPACE_NAME;
从 Cassandra 调试客户端 pod 中退出。
- 对所有 Cassandra pod 执行滚动重启。只要是一次重启一个 Cassandra pod,重启 Cassandra pod 可以按任何顺序完成。对于多区域部署,请对每个混合区域中的所有 Cassandra pod 执行滚动重启。
运行以下命令并验证状态是否显示为“正在运行”:
kubectl get apigeeds -n APIGEE_NAMESPACE
使用以下命令重启单个 Cassandra pod:
kubectl delete pod -n APIGEE_NAMESPACE CASSANDRA_POD_NAME
使用以下命令等待 pod 达到
Running
状态:kubectl get pods -n APIGEE_NAMESPACE
重启下一个 Cassandra pod。
- 执行
cqlsh
命令后,请在混合部署中的所有 Cassandra pod 上运行以下命令。对于多区域混合部署,请在所有混合区域的所有 Cassandra pod 上运行这些命令。kubectl exec -it -n APIGEE_NAMESPACE CASSANDRA_POD_NAME -- /bin/bash
find /opt/apigee/data/apigee-cassandra/ -iname '*ORG_NAME_hybrid' -type d -maxdepth 2
如需了解如何查找和准备 ORG_NAME,请参阅获取组织名称。
find /opt/apigee/data/apigee-cassandra/ -iname '*ORG_NAME_hybrid' -type d -maxdepth 2 -exec rm -rf {} +
-
从 Cassandra pod 中退出。
- 对