有时,您可能需要停用数据中心。例如,如果您要升级操作系统,则需要在新数据中心安装新操作系统,然后停用旧数据中心。以下部分介绍了停用数据中心的示例,其中 有两个数据中心:dc-1 和 dc-2, 12 节点 集群安装:
- dc-1 是要退役的数据中心。
- dc-2 是第二个数据中心,在退役过程中使用。
如果您要升级操作系统,dc-2 可以是安装了新版操作系统 (OS) 的数据中心。但无需安装新的操作系统 我们决定停用数据中心
停用数据中心前的注意事项
在停用数据中心时,请注意以下事项:
- 屏蔽指向要弃用的目标数据中心的所有运行时和管理流量,并将其重定向到其他数据中心。
- 停用数据中心后,您的 Apigee 集群中的容量将减少。 为了弥补这些费用,请考虑增加剩余数据中心的容量或增加 退役后的数据中心
- 在停用过程中,分析数据可能会丢失,具体取决于 在停用数据中心内安装了哪些分析组件。如需了解详情,请参阅添加或移除 Qpid 节点。
- 在停用数据中心之前,您应该了解所有组件 在所有数据中心都进行了配置,尤其是 OpenLDAP、ZooKeeper、Cassandra、 和 Postgres 服务器您还应该备份所有组件及其配置。
前期准备
- 管理服务器: 所有停用步骤都高度依赖于管理服务器。如果您只有一个可用的管理服务器,我们建议您先在 dc-1 以外的数据中心安装新的管理服务器组件,然后再停用 dc-1 上的管理服务器,并确保其中一个管理服务器始终可用。
- 路由器: 在停用路由器之前,请停用路由器的可达性 屏蔽端口 15999确保无运行时 流量正被定向到已停用的路由器。
Cassandra 和 ZooKeeper: 以下部分介绍了如何在两个数据中心设置中停用 dc-1。 如果超过了两个 数据中心,请务必移除对要停用的节点的所有引用 (本例中为 dc-1) 所有其余数据中心的所有静默配置文件。 对于即将停用的 Cassandra 节点,请从
CASS_HOSTS
中删除这些主机。 其余 Cassandra 节点应保持原始的CASS_HOSTS
排序。Postgres:如果您要停用 Postgres 主服务器,请务必将任何可用的备用节点升级为新的 Postgres 主服务器。而 QPID 服务器在 队列中,如果 Postgres 主实例长时间不可用,则有可能会丢失分析数据。
前提条件
在停用任何组件之前,我们建议您先完整备份所有 节点。按照适用于您当前版本的 Edge 的流程, 备份。如需详细了解备份,请参阅 备份和恢复。
注意:如果您有多个 Cassandra 或 ZooKeeper 节点,请一次备份一个节点, 因为备份过程会暂时关闭 ZooKeeper
- 在停用之前,使用以下命令确保 Edge 已启动并运行:
/opt/apigee/apigee-service/bin/apigee-all status
- 确保目前没有任何运行时流量到达您要停用的数据中心。
停用组件的顺序
如果您在多个节点上安装适用于私有云的 Edge,则应停用 这些节点上的 Edge 组件按以下顺序排列:
- Edge 界面 (edge-ui)
- 管理服务器 (edge-management-server)
- OpenLDAP (apigee-openldap)
- 路由器 (edge-router)
- 消息处理器 (edge-message-processor)
- Qpid Server 和 Qpidd(edge-qpid-server 和 apigee-qpidd)
- Postgres 和 PostgreSQL 数据库(edge-postgres-server 和 apigee-postgresql)
- ZooKeeper (apigee-zookeeper)
- Cassandra (apigee-cassandra)
以下部分介绍了如何停用每个组件。
Edge 界面
要停止并卸载 dc-1 的 Edge 界面组件,请输入以下命令:
/opt/apigee/apigee-service/bin/apigee-service edge-ui stop
/opt/apigee/apigee-service/bin/apigee-service edge-ui uninstall
管理服务器
要在 dc-1 上停用管理服务器,请执行以下步骤:
- 在 dc-1 上停止管理服务器:
apigee-service edge-management-server stop
- 找到在 dc-1 中注册的管理服务器的 UUID:
curl -u <AdminEmailID>:'<AdminPassword>' \ -X GET “http://{MS_IP}:8080/v1/servers?pod=central®ion=dc-1&type=management-server”
- 取消注册服务器的类型:
curl -u <AdminEmailID>:'<AdminPassword>' -X POST http://{MS_IP}:8080/v1/servers \ -d "type=management-server®ion=dc-1&pod=central&uuid=UUID&action=remove"
- 删除服务器。注意:如果此服务器上还安装了其他组件,
在删除 UUID 之前,请先取消注册所有这些字段。
curl -u <AdminEmailID>:'<AdminPassword> -X DELETE http://{MS_IP}:8080/v1/servers/{UUID}
- 卸载 dc-1 上的管理服务器组件:
/opt/apigee/apigee-service/bin/apigee-service edge-management-server uninstall
Open LDAP
本部分介绍如何在 dc-1 上停用 OpenLDAP。
注意:如果您有两个以上的数据中心,请参阅 下文包含 2 个以上数据中心的设置。
要在 dc-1 上停用 OpenLDAP,请按以下步骤操作:
- 按照如何备份中的步骤备份 dc-1 OpenLDAP 节点。
在两个数据中心 dc-1 和 dc-2 中执行以下步骤,中断这两个数据中心之间的数据复制。
- 检查当前状态:
ldapsearch -H ldap://{HOST}:{PORT} -LLL -x -b "cn=config" -D "cn=admin,cn=config" -w {credentials} -o ldif-wrap=no 'olcSyncRepl' | grep olcSyncrepl
输出应类似于以下内容:
olcSyncrepl: {0}rid=001 provider=ldap://{HOST}:{PORT}/ binddn="cn=manager,dc=apigee,dc=com" bindmethod=simple credentials={credentials} searchbase="dc=apigee,dc=com" attrs="*,+" type=refreshAndPersist retry="60 1 300 12 7200 +" timeout=1
- 创建一个包含以下命令的文件
break_repl.ldif
:dn: olcDatabase={2}bdb,cn=config changetype: modify delete: olcSyncRepl dn: olcDatabase={2}bdb,cn=config changetype: modify delete: olcMirrorMode
- 运行
ldapmodify
命令:ldapmodify -x -w {credentials} -D "cn=admin,cn=config" -H "ldap://{HOST}:{PORT}/" -f path/to/file/break_repl.ldif
输出应类似于以下内容:
modifying entry "olcDatabase={2}bdb,cn=config" modifying entry "olcDatabase={2}bdb,cn=config"
- 检查当前状态:
您可以验证 dc-2 是否不再复制到 dc-1,方法是在 dc-2 LDAP 中创建条目 并确保它不会显示在 dc-1 的 LDAP 中。
您也可按以下步骤操作,在 dc-2 中创建只读用户 OpenLDAP 节点,然后检查用户是否被复制。该用户随后 已删除。
- 在 dc-2 中创建一个包含以下内容的
readonly-user.ldif
文件:dn: uid=readonly-user,ou=users,ou=global,dc=apigee,dc=com objectClass: organizationalPerson objectClass: person objectClass: inetOrgPerson objectClass: top cn: readonly-user sn: readonly-user userPassword: {testPassword}
- 在 dc-2 中使用 `ldapadd` 命令添加用户:
ldapadd -H ldap://{HOST}:{PORT} -w {credentials} -D "cn=manager,dc=apigee,dc=com" -f path/to/file/readonly-user.ldif
输出将类似于以下内容:
adding new entry "uid=readonly-user,ou=users,ou=global,dc=apigee,dc=com"
- 在 dc-1 中搜索用户,以确保未复制该用户。如果用户
不存在于 dc-1 中,则您将确保两个 LDAP 不再复制:
ldapsearch -H ldap://{HOST}:{PORT} -x -w {credentials} -D "cn=manager,dc=apigee,dc=com" -b uid=readonly-user,ou=users,ou=global,dc=apigee,dc=com -LLL
输出应类似如下所示:
No such object (32) Matched DN: ou=users,ou=global,dc=apigee,dc=com
- 移除您之前添加的只读用户:
ldapdelete -v -H ldap://{HOST}:{PORT} -w {credentials} -D "cn=manager,dc=apigee,dc=com" "uid=readonly-user,ou=users,ou=global,dc=apigee,dc=com"
- 在 dc-2 中创建一个包含以下内容的
- 停止 dc-1 中的 OpenLDAP:
/opt/apigee/apigee-service/bin/apigee-service apigee-openldap stop
- 在 dc-1 上卸载 OpenLDAP 组件:
/opt/apigee/apigee-service/bin/apigee-service apigee-openldap uninstall
路由器
本部分介绍了如何停用路由器。如需详细了解如何移除路由器,请参阅移除服务器。
通过以下步骤可将路由器从 dc-1 停用。 如果 dc-1 中配置了多个路由器节点,请在所有路由器节点中执行这些步骤 一次一个
注意:这里假定负载均衡器中配置了路由器的健康检查端口 15999,并且屏蔽端口 15999 会导致路由器不可访问。您可能需要 root 访问权限 来阻止该端口
如需停用路由器,请执行以下步骤:
通过屏蔽端口 15999(健康检查端口)来停用路由器的可达性。 确保阻止此数据中心的运行时流量:
iptables -A INPUT -i eth0 -p tcp --dport 15999 -j REJECT
验证路由器是否可访问:
curl -vvv -X GET http://{ROUTER_IP}:15999/v1/servers/self/reachable
输出应类似于以下内容:
About to connect() to 10.126.0.160 port 15999 (#0) Trying 10.126.0.160... Connection refused Failed connect to 10.126.0.160:15999; Connection refused Closing connection 0 curl: (7) Failed connect to 10.126.0.160:15999; Connection refused
- 获取路由器的 UUID,如 获取 UUID。
- 停止路由器:
/opt/apigee/apigee-service/bin/apigee-service edge-router stop
- 使用以下命令列出组织中的可用网关 Pod:
curl -u <AdminEmailID>:<AdminPassword> -X GET "http://{MS_IP}:8080/v1/organizations/{ORG}/pods"
请参见 关于 Pod。
- 注销服务器的类型:
curl -u <AdminEmailID>:'<AdminPassword>' -X POST http://{MS_IP}:8080/v1/servers \ -d "type=router&region=dc-1&pod=gateway-1&uuid=UUID&action=remove"
- 删除服务器:
curl -u <AdminEmailID>:'<AdminPassword>’ -X DELETE http://{MS_IP}:8080/v1/servers/UUID
- 卸载
edge-router
:/opt/apigee/apigee-service/bin/apigee-service edge-router uninstall
请参阅 移除服务器。 - 刷新
iptables
规则以启用被屏蔽的端口 15999:iptables -F
消息处理器
本部分介绍如何从 dc-1 停用消息处理器。 如需详细了解如何移除消息处理器,请参阅移除服务器。
由于我们假定 dc-1 具有 12 个节点的集群化安装,因此 dc-1 中配置了两个消息处理器节点。执行 运行命令
- 获取消息处理器的 UUID,如获取 UUID中所述。
- 停止消息处理器:
apigee-service edge-message-processor stop
- 取消注册服务器的类型:
curl -u <AdminEmailID>:'<AdminPassword>' -X POST http://{MS_IP}:8080/v1/servers \ -d "type=message-processor&region=dc-1&pod=gateway-1&uuid=UUID&action=remove"/pre>
- Disassociate an environment from the Message Processor.
Note: You need to remove the bindings on each org/env that associates the Message Processor UUID.
curl -H "Content-Type:application/x-www-form-urlencoded" -u <AdminEmailID>:'
' \ -X POST http://{MS_IP}:8080/v1/organizations/{ORG}/environments/{ENV}/servers \ -d "action=remove&uuid=UUID" - 取消注册服务器的类型:
curl -u <AdminEmailID>:'<AdminPassword>' -X POST http://MS_IP:8080/v1/servers -d "type=message-processor®ion=dc-1&pod=gateway-1&uuid=UUID&action=remove"
- 卸载消息处理器:
/opt/apigee/apigee-service/bin/apigee-service edge-message-processor uninstall
- 取消注册服务器:
curl -u <AdminEmailID>:'<AdminPassword> -X DELETE http://{MS_IP}:8080/v1/servers/UUID
Qpid 服务器和 Qpidd
本部分介绍了如何停用 Qpid Server (edge-qpid-server
) 和 Qpidd
(apigee-qpidd
).
由于 dc-1 中配置了两个 Qpid 节点,因此您必须对二者都执行以下步骤
节点:
- 获取 Qpidd 的 UUID,如获取 UUID。
- 停止
edge-qpid-server
和apigee-qpidd
:/opt/apigee/apigee-service/bin/apigee-service edge-qpid-server stop
/opt/apigee/apigee-service/bin/apigee-service apigee-qpidd stop
- 获取 Google Analytics 和消费者群组的列表:
curl -u <AdminEmailID>:'<AdminPassword>' -X GET http://{MS_IP}:8080/v1/analytics/groups/ax
- 从使用方群组中移除 Qpid:
curl -u <AdminEmailID>:'<AdminPassword>' -H "Content-Type: application/json" -X DELETE \ "http://{MS_IP}:8080/v1/analytics/groups/ax/{ax_group}/consumer-groups/{consumer_group}/consumers/{QPID_UUID}"
- 从分析组中移除 Qpid:
curl -v -u <AdminEmailID>:'<AdminPassword>' \ -X DELETE "http://{MS_IP}:8080/v1/analytics/groups/ax/{ax_group}/servers?uuid={QPID_UUID}&type=qpid-server"
- 从 Edge 安装中取消注册 Qpid 服务器:
curl -u <AdminEmailID>:'<AdminPassword>' -X POST http://{MS_IP}:8080/v1/servers \ -d "type=qpid-server®ion=dc-1&pod=central&uuid={QPID_UUID}&action=remove"
- 从 Edge 安装中移除 Qpid 服务器:
curl -u <AdminEmailID>:'<AdminPassword>' -X DELETE http://{MS_IP}:8080/v1/servers/UUID
- 在所有节点上重启所有 Edge-qpid-server 组件,以确保更改已被生效
由这些组件区分:
$ /opt/apigee/apigee-service/bin/apigee-service edge-qpid-server restart $ /opt/apigee/apigee-service/bin/apigee-service edge-qpid-server wait_for_ready
- 卸载 edge-qpid-server 和 apigee-qpidd:
$ /opt/apigee/apigee-service/bin/apigee-service edge-qpid-server uninstall $ /opt/apigee/apigee-service/bin/apigee-service apigee-qpidd uninstall
Postgres 和 Postgresql
您要停用的数据中心可以有一个 Postgres 主实例,也可以有一个 Postgres 备用实例。 以下部分介绍了如何停用它们:
停用 Postgres 主实例
注意:如果您停用 Postgres 主实例,请务必宣传 用作新的 Postgres 主实例。虽然 QPID 会将缓冲区数据加入队列,但如果 Postgres 主服务器长时间不可用,您可能会丢失分析数据。
要停用 Postgres 主实例,请执行以下操作:
- 按照以下链接中的说明备份 dc-1 Postgres 主节点:
- 获取 Postgres 服务器的 UUID,如 获取 UUID。
- 在 dc-1 上,停止当前主服务器上的
edge-postgres-server
和apigee-postgresql
:/opt/apigee/apigee-service/bin/apigee-service edge-postgres-server stop
/opt/apigee/apigee-service/bin/apigee-service apigee-postgresql stop
- 在 dc-2 上的备用节点上,输入以下命令,将其设为主节点:
/opt/apigee/apigee-service/bin/apigee-service apigee-postgresql promote-standby-to-master <IP of OLD Progress master>
注意:如果您有多个备用 Postgres 节点,则必须将主机条目添加到 创建新的主实例,并更新所有可用 postgres 备用节点的复制设置。
如需向新的 Postgres 主服务器添加主机条目,请按照以下相应部分中的步骤操作:
如果只剩一个备用节点
例如,假设在停用之前,配置了三个 Postgres 节点。 您停用了现有主实例并升级了一个剩余的 postgres 备用实例 复制到主实例按照以下步骤配置其余备用节点:
- 在新主实例上,修改配置
文件:
PG_MASTER=IP_or_DNS_of_new_PG_MASTER PG_STANDBY=IP_or_DNS_of_PG_STANDBY
- 在新主实例上启用复制:
/opt/apigee/apigee-service/bin/apigee-service apigee-postgresql setup-replication-on-master -f configFIle
如果剩余多个备用节点
- 将以下配置添加到
/opt/apigee/customer/application/postgresql.properties
:conf_pg_hba_replication.connection=host replication apigee standby_1_ip/32 trust \n host replication apigee standby_2_ip/32 trust
- 确保文件 /opt/apigee/customer/application/postgresql.properties 归 apigee 用户
chown apigee:apigee /opt/apigee/customer/application/postgresql.properties
所有 - 重启
apigee-postgresql
:apigee-service apigee-postgresql restart
- 修改配置文件
/opt/silent.conf
并更新 将PG_MASTER
字段替换为新的 Postgres 主实例的 IP 地址。 - 使用以下命令移除所有旧 Postgres 数据:
rm -rf /opt/apigee/data/apigee-postgresql/
- 在备用节点上设置复制:
/opt/apigee/apigee-service/bin/apigee-service apigee-postgresql setup-replication-on-standby -f configFile
- 通过在 dc-2 中输入以下命令,验证 Postgres 主实例设置是否正确:
/opt/apigee/apigee-service/bin/apigee-service apigee-postgresql postgres-check-master
- 从分析组和使用方组中移除和添加 Postgresql 服务器。
- 按照 从分析组中移除 Postgres 服务器。
- 按照向分析组添加现有 Postgres 服务器中的说明,将新的 Postgres 服务器添加到分析组。
- 从 dc-1 取消注册旧的 postgres 服务器:
curl -u <AdminEmailID>:'<AdminPassword>' -X POST http://{MS_IP}:8080/v1/servers \ -d "type=postgres-server®ion=dc-1&pod=analytics&uuid=UUID&action=remove"<
- 从 dc-1 删除旧的 postgres 服务器:
curl -u >AdminEmailID>:'>AdminPassword>' -X DELETE http://{MS_IP}:8080/v1/servers/UUID
- 旧的 Postgres 主实例现在可以安全停用。卸载“
edge-postgres-server
” 和apigee-postgresql
:/opt/apigee/apigee-service/bin/apigee-service edge-postgres-server uninstall /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql uninstall
如需更新备用节点上的复制设置,请执行以下操作:
停用 Postgres 备用服务器
注意:有关 12 节点 集群安装显示 dc-1 postgresql 节点为主实例, 但为方便起见,在本部分中,我们假定 dc-1 postgresql 节点为备用节点 且 dc-2 postgresql 节点是主实例。
如需停用 Postgres 备用实例,请执行以下步骤:
- 按照 获取 UUID。
- 在 dc-1 中的当前备用节点上停止
apigee-postgresql
:/opt/apigee/apigee-service/bin/apigee-service edge-postgres-server stop
/opt/apigee/apigee-service/bin/apigee-service apigee-postgresql stop
- 从分析组和使用方群组中移除并添加 Postgresql 服务器。
- 从 dc-1 取消注册旧的 postgres 服务器:
curl -u <AdminEmailID>:'<AdminPassword>' -X POST http://{MS_IP}:8080/v1/servers \ -d "type=postgres-server®ion=dc-1&pod=analytics&uuid=UUID&action=remove"<
- 从 dc-1 删除旧的 postgres 服务器:
curl -u >AdminEmailID>:'>AdminPassword>' -X DELETE http://{MS_IP}:8080/v1/servers/UUID
- 旧的 Postgres 主实例现在可以安全停用。卸载“
edge-postgres-server
” 和apigee-postgresql
:/opt/apigee/apigee-service/bin/apigee-service edge-postgres-server uninstall /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql uninstall
ZooKeeper 和 Cassandra
本部分介绍如何停用 ZooKeeper 和 Cassandra 服务器 采用双数据中心
如果超过了两个 数据中心,请务必移除对要停用的节点的所有引用 (本例中为 dc-1) 所有其余数据中心的所有静默配置文件。 对于即将停用的 Cassandra 节点,请从
CASS_HOSTS
中删除这些主机。 其余 Cassandra 节点应保持CASS_HOSTS
的原始顺序。关于 ZooKeeper 的注意事项:在修改
ZK_HOST
个媒体资源 ,以确保 ZooKeeper 集成保持正常运行。 必须为奇数 选民节点数量。如需了解详情,请参阅 Apache ZooKeeper 维护 任务。如需停用 ZooKeeper 和 Cassandra 服务器,请执行以下操作:
- 按照以下链接中的说明备份 dc-1 Cassandra 和 ZooKeeper 节点: 。
列出 ZooKeeper 和 Cassandra 的 UUID 与 Cassandra 节点相关, 退役
apigee-adminapi.sh servers list -r dc-1 -p central -t application-datastore --admin <AdminEmailID> --pwd '<AdminPassword>' --host localhost
- 注销服务器的类型:
curl -u <AdminEmailID>:'<AdminPassword>' -X POST http://MS_IP:8080/v1/servers -d "type=cache-datastore&type=user-settings-datastore&type=scheduler-datastore&type=audit-datastore&type=apimodel-datastore&type=application-datastore&type=edgenotification-datastore&type=identityzone-datastore&type=user-settings-datastore&type=auth-datastore®ion=dc-1&pod=central&uuid=UUID&action=remove"
- 取消注册服务器:
curl -u <AdminEmailID>:'<AdminPassword>' -X DELETE http://MS_IP:8080/v1/servers/UUID
- 使用从中移除停用节点的 IP 更新配置文件
ZK_HOSTS
和CASS_HOSTS
。示例:假设您的 IP 地址为
$IP1 $IP2 $IP3
,位于 dc-1 和$IP4 $IP5 $IP6
中 且您在 dc-2 中 正在停用 dc-1。那么您应该从$IP1 $IP2 $IP3
配置文件- 现有配置文件条目:
ZK_HOSTS="$IP1 $IP2 $IP3 $IP4 $IP5 $IP6" CASS_HOSTS="$IP1:1,1 $IP2:1,1 $IP3:1,1, $IP4:2,1 $IP5:2,1 $IP6:2,1”
- 新的配置文件条目:
ZK_HOSTS="$IP4 $IP5 $IP6" CASS_HOSTS="$IP4:2,1 $IP5:2,1 $IP6:2,1"
- 现有配置文件条目:
- 使用已移除的 IP 地址更新静默配置文件(已在步骤 e 中修改)
停用节点并运行
托管管理服务器的所有节点上的服务器配置文件:
/opt/apigee/apigee-setup/bin/setup.sh -p ms -f updated_config_file
- 使用已移除的停用节点的 IP 更新配置文件,并运行 MP/RMP 配置文件
所有路由器和消息处理器节点上:
- 如果在同一节点上配置了边缘路由器和消息处理器,请输入:
/opt/apigee/apigee-setup/bin/setup.sh -p rmp -f updated_config_file
如果在不同的节点上配置边缘路由器和消息处理器,请输入以下内容:
对于路由器:
/opt/apigee/apigee-setup/bin/setup.sh -p r -f updated_config_file
对于消息处理器:
/opt/apigee/apigee-setup/bin/setup.sh -p mp -f updated_config_file
- 如果在同一节点上配置了边缘路由器和消息处理器,请输入:
- 重新配置所有 Qpid 节点,并从响应文件中移除已停用节点的 IP:
/opt/apigee/apigee-setup/bin/setup.sh -p qs -f updated_config_file
- 重新配置所有 Postgres 节点,并从响应文件中移除已停用节点的 IP:
/opt/apigee/apigee-setup/bin/setup.sh -p ps -f updated_config_file
- 更改
system_auth
键空间。如果您已在现有 Cassandra 节点上启用 Cassandra 身份验证,请运行以下命令,更新system_auth
键空间的复制因子:ALTER KEYSPACE system_auth WITH replication = {'class': 'NetworkTopologyStrategy', 'dc-2': '3'};
此命令将复制因子设置为
'3'
,表示有三个 Cassandra 节点 资源。根据需要修改此值。完成此步骤后,Cassandra 拓扑应 在任何键空间中都没有
dc-1
。 - 逐个停用 dc-1 上的 Cassandra 节点。
如需停用 Cassandra 节点,请输入以下命令:
/opt/apigee/apigee-cassandra/bin/nodetool -h cassIP -u cassandra -pw '<AdminPassword>' decommission
- 使用以下任一命令检查 dc-1 中的 Cassandra 节点连接:
/opt/apigee/apigee-cassandra/bin/cqlsh cassIP 9042 -u cassandra -p '<AdminPassword>'
或者在已停用节点上运行的辅助验证命令:
/opt/apigee/apigee-cassandra/bin/nodetool netstats
上述命令应返回以下内容:
Mode: DECOMMISSIONED
- 为 dc-2 中的所有 Cassandra 和 ZooKeeper 节点运行 DS 配置文件:
/opt/apigee/apigee-setup/bin/setup.sh -p ds -f updated_config_file
- 停止 dc-1 中的
apigee-cassandra
和apigee-zookeeper
:apigee-service apigee-cassandra stop
apigee-service apigee-zookeeper stop
- 卸载 dc-1 中的
apigee-cassandra
和apigee-zookeeper
:apigee-service apigee-cassandra uninstall
apigee-service apigee-zookeeper uninstall
删除 dc-1 中的绑定
要从 dc-1 中删除绑定,请执行以下步骤:
- 删除 dc-1 中的绑定。
- 列出组织下的所有可用 Pod:
curl -v -u <AdminEmailID>:<AdminPassword> -X GET "http://MS_IP:8080/v1/o/ORG/pods"
- 如需检查是否已移除所有绑定,请获取与 pod 关联的服务器的 UUID:
curl -v -u <AdminEmailID>:<AdminPassword> \ -X GET "http://MS_IP:8080/v1/regions/dc-1/pods/gateway-1/servers"
如果此命令未返回任何 UUID,则表示前面的步骤已移除所有绑定,您可以跳过下一步。否则,请执行下一步。
- 移除上一步中获取的 UUID 的所有服务器绑定:
curl -u <AdminEmailID>:'<AdminPassword>' -X DELETE http://MS_IP:8080/v1/servers/UUID
- 解除组织与 pod 之间的关联:
curl -v -u <AdminEmailID>:<AdminPassword> "http://MS_IP:8080/v1/o/ORG/pods" -d "action=remove®ion=dc-1&pod=gateway-1" -H "Content-Type: application/x-www-form-urlencoded" -X POST
- 列出组织下的所有可用 Pod:
- 删除 Pod:
curl -v -u <AdminEmailID>:<AdminPassword> "http://MS_IP:8080/v1/regions/dc-1/pods/gateway-1" -X DELETE
- 删除相应区域。
curl -v -u <AdminEmailID>:<AdminPassword> "http://MS_IP:8080/v1/regions/dc-1" -X DELETE
注意:如果您没有执行删除服务器的某个步骤,请执行上述步骤 系统将返回一条错误消息 Pod 中的特定服务器仍然存在因此,请按照问题排查步骤删除它们 ,同时在
curl
命令中自定义类型。至此,您已完成 dc-1 的弃用。
附录
问题排查
如果执行完上述步骤后,某些 Pod 中仍有服务器,请按以下步骤操作 取消注册并删除服务器。 注意:请根据需要更改类型和 pod。
- 使用以下命令获取 UUID:
apigee-adminapi.sh servers list -r dc-1 -p POD -t --admin <AdminEmailID> --pwd '<AdminPassword>’ --host localhost
- 取消注册服务器的类型:
curl -u <AdminEmailID>:'<AdminPassword>' -X POST http://MP_IP:8080/v1/servers -d "type=TYPE=REGION=dc-1&pod=POD&uuid=UUID&action=remove"
- 逐个删除服务器:
curl -u <AdminEmailID>:'<AdminPassword>' -X DELETE http://MP_IP:8080/v1/servers/UUID
验证
您可以使用以下命令验证弃用操作。
管理服务器
从所有区域上的管理服务器运行以下命令。
curl -v -u <AdminEmailID>:'<AdminPassword>' http://MS_IP:8080/v1/servers?pod=central®ion=dc-1 curl -v -u <AdminEmailID>:'<AdminPassword>' http://MS_IP:8080/v1/servers?pod=gateway®ion=dc-1 curl -v -u <AdminEmailID>:'<AdminPassword>' http://MS_IP:8080/v1/servers?pod=analytics®ion=dc-1
在所有组件上运行以下命令,以检查所有管理的端口要求 端口。
curl -v http://MS_IP:8080/v1/servers/self
查看分析群组。
curl -v -u <AdminEmailID>:'<AdminPassword>' "http://MS_IP:8080}/v1/o/ORG/e/ENV/provisioning/axstatus" curl -v -u <AdminEmailID>:'<AdminPassword>' http://MS_IP:8080/v1/analytics/groups/ax
Cassandra/ZooKeeper 节点
在所有 Cassandra 节点上输入:
/opt/apigee/apigee-cassandra/bin/nodetool -h <host> statusthrift
这将返回该特定资源的
running
或not running
状态 节点。在一个节点上输入:
/opt/apigee/apigee-cassandra/bin/nodetool -h <host> ring
/opt/apigee/apigee-cassandra/bin/nodetool -h <host> status
以上命令将返回有效的数据中心信息。
在 ZooKeeper 节点上,首先输入:
echo ruok | nc <host> 2181
此命令将返回
imok
。然后输入以下命令:
echo stat | nc <host> 2181 | grep Mode
上述命令返回的
Mode
值将是下列值之一:observer
、leader
或follower
。在一个 ZooKeeper 节点中:
/opt/apigee/apigee-zookeeper/contrib/zk-tree.sh >> /tmp/zk-tree.out.txt
在 Postgres 主节点上,运行以下命令:
/opt/apigee/apigee-service/bin/apigee-service apigee-postgresql postgres-check-master
验证响应是否表明该节点是主节点。
在备用节点上:
/opt/apigee/apigee-service/bin/apigee-service apigee-postgresql postgres-check-standby
验证响应是否表明节点为备用节点。
使用以下命令登录 PostgreSQL 数据库
psql -h localhost -d apigee -U postgres
出现提示时,输入“postgres”用户密码为
'postgres'
。 从数据分析中选择“max(client_received_start_timestamp)
”。”$org.$env.fact” limit 1
;日志
检查组件上的日志,确保没有错误。
- 在新主实例上,修改配置
文件: