停用 Hybrid 区域

本指南介绍在多区域环境中停用某个区域的步骤。

停用 Hybrid 区域

  1. 将 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       apigee
    
    kubectl config use-context gke_example-org-1_us-west1_example-cluster-2
  2. 验证区域中的所有 Pod 是否都处于正在运行或已完成状态:
    kubectl get pods -n apigee
    kubectl get pods -n apigee-system
  3. 使用 helm 验证组件的版本:
    helm -n apigee list
    helm -n apigee-system list

    例如:

    helm -n apigee list
      NAME              NAMESPACE REVISION  UPDATED                                 STATUS    CHART                         APP VERSION
      datastore         apigee    2         2024-03-29 17:08:07.917848253 +0000 UTC	deployed  apigee-datastore-1.12.0       1.12.0
      ingress-manager   apigee    2         2024-03-29 17:21:02.917333616 +0000 UTC	deployed  apigee-ingress-manager-1.12.0 1.12.0
      redis             apigee    2         2024-03-29 17:19:51.143728084 +0000 UTC	deployed  apigee-redis-1.12.0           1.12.0
      telemetry         apigee    2         2024-03-29 17:16:09.883885403 +0000 UTC	deployed  apigee-telemetry-1.12.0       1.12.0
      exampleor         apigee    2         2024-03-29 17:21:50.899855344 +0000 UTC	deployed  apigee-org-1.12.0             1.12.0
  4. 验证 Cassandra 集群的状态。

    列出 cassandra pod:

    kubectl get pods -n APIGEE_NAMESPACE -l app=apigee-cassandra

    例如:

    kubectl get pods -n apigee -l app=apigee-cassandra
      NAME                          READY    STATUS     RESTARTS    AGE
      apigee-cassandra-default-0    1/1      Running    0           2h
      apigee-cassandra-default-1    1/1      Running    0           2h
      apigee-cassandra-default-2    1/1      Running    0           2h
      apigee-cassandra-default-3    1/1      Running    0           16m
      apigee-cassandra-default-4    1/1      Running    0           14m
      apigee-cassandra-default-5    1/1      Running    0           13m
      apigee-cassandra-default-6    1/1      Running    0           9m
      apigee-cassandra-default-7    1/1      Running    0           9m
      apigee-cassandra-default-8    1/1      Running    0           8m
  5. 在您刚刚选择的上下文中删除 Apigee 实例:

    一次删除一个组件。

    helm -n apigee delete datastore
    
    helm -n apigee delete telemetry
    
    helm -n apigee delete ingress-manager
    
    helm -n apigee delete redis
    
    helm -n apigee delete ORG_NAME
    

    对每个环境重复运行以下命令:

    helm -n apigee delete ENV_NAME
    

    对每个环境组重复运行以下命令:

    helm -n apigee delete ENV_GROUP_NAME
    
    helm -n apigee-system delete operator
    
  6. 确认 Apigee 命名空间中没有剩余的 Pod:
    kubectl get pods -n apigee
    kubectl get pods -n apigee-system
    
  7. Set the context to other existing regions and make sure the cassandra datacenter is removed from the existing ring. The output should not show the removed data center details.
    kubectl exec apigee-cassandra-default-0 -n apigee  -- nodetool -u JMX_USER -pw JMX_PASSWORD status