停用 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 exampleorg apigee 2 2024-03-29 17:21:50.899855344 +0000 UTC deployed apigee-org-1.12.0 1.12.0
  4. 验证 Cassandra 集群的状态。
    1. 列出 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
    2. 使用 apigeectl 命令在您刚刚选择的上下文中删除 Apigee 实例:

      一次删除一个组件。

      helm -n apigee delete datastore
      
      helm -n apigee delete telemetry
      
      helm -n apigee delete apigee-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
      
    3. 确认 Apigee 命名空间中没有剩余的 Pod:
      kubectl get pods -n apigee
      kubectl get pods -n apigee-system
      kubectl get pods -n cert-manager
    4. 将上下文设置为其他现有区域,并确保从现有环中移除 Cassandra 数据中心。输出不应显示已移除的数据中心详细信息。
      kubectl exec apigee-cassandra-default-0 -n apigee  -- nodetool -u JMX_USER -pw JMX_PASSWORD status