# 节点池扩容失败
#### 排查思路
请根据节点池扩容失败的具体事件信息确定问题原因，如[表1]所示。
 表1节点池扩容失败 
| 事件信息                                                                                                                                                                                                                                                                                              | 问题原因                                                                                                                                                                                                                                                            | 解决方案                                                    |
|:---|:---|:---|
| No available flavors for nodes.                                                                                                                                                                                                                                                                      | 节点池中选择的节点规格不可用。                                                                                                                                                                                                                                                  | [节点无可用规格]        |
| No available node volumes for nodes.                                                                                                                                                                                                                                                               | 节点池中选择的节点磁盘规格不可用。                                                                                                                                                                                                                                                | [节点无可用EVS卷规格]      |
| ...call fsp to query keypair fail, error code : Ecs.0314, reason is : the keypair \*\*\* does not match the user_id \*\*\*...                                                                                                                                                                      | 该问题可能由以下原因引起： - 创建节点池时使用的密钥对被删除。  - 创建节点池时使用的密钥对为私有密钥对，其他用户无法使用该密钥对创建节点。                         | [无法获取节点池使用的密钥对]  |
| {"error":{"message":"encrypted key id \[\*\*\*\] is invalid.","code":"Ecs.0912"}}                                                                                                                                                                                                                    | 该问题可能由以下原因引起： - 创建节点池输入的KMS密钥ID不存在。  - 创建节点池输入的KMS密钥ID为他人密钥，但他人未给您授权。                      | [KMS密钥ID非法]         |
| Security group \[\*\*\*\*\*\] not found 或 {"error":{"message":"{\\"NeutronError\\":{\\"detail\\":\\"\\",\\"message\\":\\"Security group \*\*\*\*\* does not exist\\",\\"type\\":\\"SecurityGroupNotFound\\"}}","code":"Ecs.0005"}} | 该问题可能存在以下两种情况： - 节点池配置了自定义安全组，但是该安全组被删除，导致节点扩容失败。  - 节点池未配置自定义安全组，且集群默认安全组被删除，导致扩容失败。   | [节点池指定的安全组被删除]   |
| The Enterprise Project ID \[\*\*\*\*\*\] not exist                                                                                                                                                                                                                                                  | 出现该问题的原因是节点池设定的企业项目已经在EPS服务中删除。                                                                                                                                                                                                                                  | [节点池指定的企业项目被删除] |
| Subnet \[\*\*\*\*\*\] not found;CloudService=CCE,Service=S-CCE                                                                                                                                                                                                                                         | 出现该问题的原因是节点池关联的子网已经被删除。                                                                                                                                                                                                                                         | [节点池指定的子网被删除]         |
| ...{error":{message":"query image \[\*\*\*\] fail:\[404 Not Found\\n\\nNo image found with ID \*\*\*\\n\\n \]","code":"Ecs.0304"}}...                                                                                                                                                                | 出现该问题的原因是节点池中选择的镜像已经在IMS服务中删除。                                                                                                                                                                                                                                  | [节点池指定的镜像被删除]       |
   
 #### 节点无可用规格
报错信息中包含以下信息：
```
No available flavors for nodes.
```
表示当前选择的节点规格不可用，导致节点无法创建。
**解决方案：**
1. 登录[CCE控制台](https://console.huaweicloud.com/cce2.0/?#/cce/cluster/list)，单击集群名称进入集群。
2. 在左侧选择"节点管理"，在右侧选择"节点池"页签。
3. 找到扩容失败的节点池，单击节点池名称后的"更新"，在弹出的"更新节点池"页面中配置参数。
4. 更新节点池选择的"节点规格"，选择其他可用规格。
5. 配置完成后，单击"确定"。
 
 #### 节点无可用EVS卷规格
报错信息中包含以下信息：
```
No available node volumes for nodes.
```
表示当前选择的EVS云硬盘规格不可用，导致节点无法创建。
**解决方案：**
1. 登录[CCE控制台](https://console.huaweicloud.com/cce2.0/?#/cce/cluster/list)，单击集群名称进入集群。
2. 在左侧选择"节点管理"，在右侧选择"节点池"页签。
3. 找到扩容失败的节点池，单击节点池名称后的"更新"，在弹出的"更新节点池"页面中配置参数。
4. 更新节点池的存储配置，修改系统盘或数据盘选择的磁盘类型。
5. 配置完成后，单击"确定"。
 
 #### 无法获取节点池使用的密钥对
当扩容节点池失败时，事件中包含Ecs.0314错误，表明无法查询到节点池使用的密钥对，导致创建云服务器失败。
```
...call fsp to query keypair fail, error code : Ecs.0314, reason is : the keypair *** does not match the user_id ***...
```
该问题可能由以下原因引起：
- 原因一：创建节点池时使用的密钥对被删除。
- 原因二：用户使用私有密钥对创建节点池，而其他用户无法使用该私有密钥对创建节点，导致节点池扩容失败。
**解决方案：**
- 对于原因一引起的扩容失败，您可以创建一个新的密钥对，并使用该密钥对创建新的节点池。
- 对于原因二引起的扩容失败，该节点池只能通过私有密钥对的创建者进行扩容。您也可以使用其他密钥对创建一个新的节点池。
 
 #### KMS密钥ID非法
当扩容节点池失败时，事件中包含Ecs.0912错误：
```
{"error":{"message":"encrypted key id [***] is invalid.","code":"Ecs.0912"}}
```
该问题可能由以下原因引起：
- 原因一：创建节点池输入的KMS密钥ID不存在。
- 原因二：创建节点池输入的KMS密钥ID为他人密钥，但他人未给您授权。
**解决方案：**
- 对于原因一引起的扩容失败，确保您输入密钥ID存在。
- 对于原因二引起的扩容失败，请使用已给您授权的共享密钥ID。
 
 #### 节点池指定的安全组被删除
当扩容节点池失败时，事件中包含创建节点失败的错误，错误信息如下：
```
Security group [*****] not found
```
或
```
{"error":{"message":"{\"NeutronError\":{\"detail\":\"\",\"message\":\"Security group ***** does not exist\",\"type\":\"SecurityGroupNotFound\"}}","code":"Ecs.0005"}}
```
该问题可能存在以下两种情况：
- 情况一：节点池配置了自定义安全组，但是该安全组被删除，导致节点扩容失败。
- 情况二：节点池未配置自定义安全组，且集群默认安全组被删除，导致扩容失败。
**解决方案：**
- 情况一：通过更新节点池接口，更新customSecurityGroups字段中指定的安全组。详情请参见[更新指定节点池](https://support.huaweicloud.com/api-cce/cce_02_0356.html)。
- 情况二：您需要登录CCE控制台，在集群的"配置中心"页面修改"节点默认安全组"。新增的节点安全组需要满足集群端口通信规则，详情请参见[如何修改集群安全组规则配置](https://support.huaweicloud.com/cce_faq/cce_faq_00265.html)。
 
 #### 节点池指定的企业项目被删除
当扩容节点池失败时，事件中包含创建节点失败的错误，错误信息如下：
```
The Enterprise Project ID [*****] not exist
```
出现该问题的原因是节点池设定的企业项目已经在EPS服务中删除。
**解决方案：**
1. 登录[CCE控制台](https://console.huaweicloud.com/cce2.0/?#/cce/cluster/list)，单击集群名称进入集群。
2. 在左侧选择"节点管理"，在右侧选择"节点池"页签。
3. 找到扩容失败的节点池，单击节点池名称后的"更新"，在弹出的"更新节点池"页面中配置参数。
4. 重新选择一个节点池企业项目。
5. 配置完成后，单击"确定"。
 
 #### 节点池指定的子网被删除
当扩容节点池失败时，事件中包含创建节点失败的错误，错误信息如下：
```
Subnet [*****] not found;CloudService=CCE,Service=S-CCE
```
出现该问题的原因是节点池关联的子网已经被删除。
- 若节点池关联多个子网，删除其中一个子网后，扩容将跳过该子网，使用其余可用子网继续分配IP。但若剩余子网IP资源不足，仍可能导致扩容失败。
- 若节点池仅关联单个子网，该子网删除后扩容将因子网不可用而持续失败。
**解决方案：**
1. 登录[CCE控制台](https://console.huaweicloud.com/cce2.0/?#/cce/cluster/list)，单击集群名称进入集群。
2. 在左侧选择"节点管理"，在右侧选择"节点池"页签。
3. 找到扩容失败的节点池，单击节点池名称后的"更新"，在弹出的"更新节点池"页面中配置参数。
4. 更新节点池关联的子网。
5. 配置完成后，单击"确定"。
 
 #### 节点池指定的镜像被删除
当扩容节点池失败时，事件中包含创建节点失败的错误，错误信息如下：
```
...{error":{message":"query image [***] fail:[404 Not Found\n\nNo image found with ID ***\n\n ]","code":"Ecs.0304"}}...
```
出现该问题的原因是节点池中选择的镜像已经在IMS服务中删除。
**解决方案：**
1. 登录[CCE控制台](https://console.huaweicloud.com/cce2.0/?#/cce/cluster/list)，单击集群名称进入集群。
2. 在左侧选择"节点管理"，在右侧选择"节点池"页签。
3. 找到扩容失败的节点池，单击节点池名称后的"更新"，在弹出的"更新节点池"页面中配置参数。
4. 更新节点池指定的镜像。
5. 配置完成后，单击"确定"。
 
