# 金丝雀升级失败常见场景及解决方案
进行金丝雀升级时，升级失败的常见场景和解决方案：
1. CRD检查失败。 **解决办法** **：**新版本Istio 将不支持部分CRD，包括：clusterrbacconfigs 、serviceroles 、servicerolebindings 、policies。若您在当前版本存在即将废弃的资源，则需要删除后再升级。
   
2. 升级前检查网关配置信息时，Istio 网关标签错误。 **解决办法：**Istio 网关标签（matchLabels）必须为 {app: istio-ingressgateway, istio: ingressgateway}。
   
3. 升级前插件检查失败。 **解决办法：**ASM从1.8版本开始不再支持如下插件（tracing，kiali，grafana，prometheus）部署，升级前需要将上述插件卸载。您可以自行安装开源版本插件，或者使用APM。
   
4. 升级前集群状态检查任务失败。 **解决办法：**升级前会检查集群状态，若集群状态异常则无法进行网格升级。
   
5. 升级前资源检查任务失败。 **解决办法：**金丝雀升级需要有充足资源。
   
6. 升级前集群版本检查任务失败。 **解决办法：**网格支持的版本如下：
   表1ASM网格版本与集群版本适配规则 
   | ASM网格版本 | 集群版本                                                      |
   |:---|:---|
   | 1.3      | v1.13、v1.15、v1.17、v1.19                                    |
   | 1.6       | v1.15、v1.17                                               |
   | 1.8      | v1.15、v1.17、v1.19、v1.21                                 |
   | 1.13    | v1.21、v1.23                                              |
   | 1.15      | v1.21、v1.23、v1.25、v1.27、v1.28                               |
   | 1.18      | v1.25、v1.27、v1.28、v1.29、v1.30、v1.31、v1.32、v1.33、v1.34、v1.35 |
   | 1.28     | v1.30、v1.31、v1.32、v1.33、v1.34、v1.35、v1.36                 |
      
   
7. 升级前组件亲和性检查失败。 **解决办法：**若您从非金丝雀版本升级到金丝雀版本，需要满足打了istio:master labels的节点数量大于等于两倍的istiod实例数，并且所有可调度节点数大于等于ingressgateway/egressgateway 实例数量最大值的两倍，若不满足则需要将节点数量扩大到满足调度需求或者将istiod、ingressgateway、egressgateway pod反亲和性设置为尽量满足。
   - **方法一：**增加添加istio：master节点，可以从CCE console上进行操作。
   
   
   ![](https://support.huaweicloud.com/asm_faq/zh-cn_image_0000001948315853.png)
   - **方法二：**修改pod反亲和策略，可在CCE界面修改yaml。
   
   
   ![](https://support.huaweicloud.com/asm_faq/zh-cn_image_0000001918699172.png)
   ```
   preferredDuringSchedulingIgnoredDuringExecution:
     - weight: 1
       podAffinityTerm:
         labelSelector:
           matchExpressions:
               - key: app
                 operator: In
                 values:
                   - istiod （如果是ingressgateway则为istio-egressgateway、istio-ingressgateway）
          namespaces:
            - istio-system
          topologyKey: kubernetes.io/hostname
   ```
   或者在CCE界面升级设置工作负载反亲和性，改为尽量满足。
   ![](https://support.huaweicloud.com/asm_faq/zh-cn_image_0000001948355201.png)
   
8. 升级前命名空间自动注入检查失败。 **解决办法：** 若您从专有网格迁移至基础网格，命名空间存在已经注入的pod，但是该命名空间未开启自动注入，则需要开启该命名空间[自动注入](https://support.huaweicloud.com/usermanual-asm/asm_01_0041.html)。
   
 
