
# sidecar管理
sidecar管理中支持查看所有注入了sidecar的工作负载信息，还可以进行sidecar注入、配置sidecar资源限制等操作。
 #### sidecar注入
可展示当前已注入sidecar的命名空间及所属集群。如果还未做过注入操作，或者需要为更多命名空间注入sidecar，请参考以下操作：
1. 登录[应用服务网格控制台](https://console.huaweicloud.com/asm/?locale=zh-cn)，单击服务网格的名称，进入网格详情页面。
2. 在左侧导航栏选择"网格配置"，单击"sidecar管理"页签。
3. 单击"sidecar管理"，选择命名空间，判断是否重启已有服务，单击"确定"。 
   图1注入sidecar   
   ![](https://support.huaweicloud.com/usermanual-asm/zh-cn_image_0000001957412525.png)
   参数释意：
   - 选择命名空间：选择一个或多个命名空间，系统将根据不同的istio版本为命名空间设置自动注入标签：
     - 设置istio-injection=enabled标签，适用于1.13.9-r3及以下版本、1.15.5-r2及以下版本。
     
     
     
     - 设置istio.io/rev=\<revision\> 标签，适用于1.13.9-r3以上版本、1.15.5-r2以上版本、1.18所有版本、1.28所有版本。
      
   
   - 是否重启已有服务：命名空间下已有服务关联的Pod是否自动重启。 ![](https://support.huaweicloud.com/usermanual-asm/zh-cn_image_0000001256460416.png)：会重启命名空间下已有服务关联的Pod。新生成的Pod自动注入或移除sidecar。重启将会暂时中断业务。
     ![](https://support.huaweicloud.com/usermanual-asm/zh-cn_image_0000001255983420.png)：不会重启命名空间下已有服务关联的Pod。后续新生成的Pod将根据命名空间自动注入标签状态自动注入或移除sidecar。
     表1**命名空间管理与sidecar注入配置表** 
     | 命名空间                                     | 标签操作                                          | 是否重启已有服务 | Pod 重启行为                                                           | sidecar 注入结果                                                    |
     |:---|:---|:---|:---|:---|
     | 新勾选                                      | 添加自动注入标签                                      | 开启       | 自动重启该命名空间下所有 Deployment 类型的 Pod                                    | 新生成的Pod自动注入sidecar                                              |
     | 新勾选                                      | 添加自动注入标签                                      | 关闭       | 不自动重启                                                              | 已有 Pod 不注入；新生成的Pod会自动注入sidecar                                  |
     | 去勾选  | 移除自动注入标签  | 开启       | 自动重启该命名空间下所有 Deployment 类型的 Pod                                    | 新生成的Pod自动移除sidecar                                              |
     | 去勾选  | 移除自动注入标签  | 关闭       | 不自动重启                                                              | 已有 Pod 不移除；新生成的Pod不会注入sidecar                                   |
     | 已勾选                                      | 标签保持不变                                        | 开启       | 存在未注入Pod：自动重启该工作负载的所有 Pod 均已注入：不自动重启 | 存在未注入Pod：自动重启后完成注入sidecar 均已注入：状态不变 |
     | 已勾选                                      | 标签保持不变                                        | 关闭       | 存在未注入Pod：不自动重启 均已注入：不自动重启           | 存在未注入Pod：状态不变 均已注入：状态不变         |
     | 未勾选                                      | 标签保持不变（无自动注入标签）                               | 开启       | 不自动重启                                                              | 状态不变                                                            |
     | 未勾选                                      | 标签保持不变（无自动注入标签）                               | 关闭       | 不自动重启                                                              | 状态不变                                                            |
        
     ![](https://support.huaweicloud.com/usermanual-asm/public_sys-resources/caution_3.0-zh-cn.png)
     - 设置istio-injection=enabled或istio.io/rev=\<revision\>标签后，命名空间下新生成的Pod都会自动注入sidecar。
     
     - 移除istio-injection=enabled或istio.io/rev=\<revision\>标签后，命名空间下新生成的Pod都会自动移除sidecar。
     
     - 本模块并不提供特定命名空间下服务的重启功能。如果去勾选某个命名空间，该命名空间将被移除自动注入标签，其下的工作负载在重启后将不会自动注入sidecar。参考去勾选命名空间开启重启已有服务sidecar 注入结果。
     
     - 若需为指定命名空间中的某个工作负载注入sidecar，请先确保该命名空间已被勾选开启，然后前往CCE集群的工作负载页面，选择该工作负载，点击"更多"-"重新部署"。重启后，该工作负载将自动注入sidecar。
       
   
   - **流量拦截配置**
     ![](https://support.huaweicloud.com/usermanual-asm/public_sys-resources/note_3.0-zh-cn.png)
     默认情况下，ASM所注入的sidecar会拦截所有入方向和出方向流量，可通过流量拦截配置修改默认的流量拦截规则。
     **入方向端口**：可用于配置端口级别拦截规则，生效于网格服务的内部端口，以逗号分隔入站端口。
     - 仅拦截指定端口表示访问网格服务指定端口范围内的请求将被重定向到sidecar中。
     
     
     
     - 仅排除指定端口表示访问网格服务的请求，除端口范围外的请求将被重定向到sidecar中。
     
     
     **出方向端口**：可用于配置端口级别拦截规则，生效于网格服务对外访问的流量方向上，以逗号分隔出站端口。
     - 仅拦截指定端口表示网格服务访问指定端口范围内的请求将被重定向到sidecar中。
     
     
     
     - 仅排除指定端口表示网格服务对外访问的请求，除指定端口范围外的流量都将被重定向到sidecar中。
     
     
     **出方向网段**：可用于配置网段级别拦截规则，生效于网格服务对外访问的流量方向上，以逗号分隔 IP ，以 CIDR 形式表示。
     - 仅拦截指定网段表示指定网段范围内的流量将被重定向到sidecar中。
     
     
     
     - 仅排除指定网段表示除指定网段范围外的流量将被重定向到sidecar中。
      
   
   
   ![](https://support.huaweicloud.com/usermanual-asm/public_sys-resources/note_3.0-zh-cn.png)
   - sidecar注入失败常见原因请参考[sidecar注入失败可能的原因](https://support.huaweicloud.com/asm_faq/asm_faq_0054.html)。
   
   
   
   - 若界面提示"以下集群未开放命名空间注入修改操作"，可能因为当前网格是通过1.0控制台创建的，默认不开放命名空间注入，需要通过kubectl命令行开放，具体操作请参见[如何为集群开放命名空间注入？](https://support.huaweicloud.com/asm_faq/asm_faq_0036.html)。
   
   - 为集群的命名空间开启sidecar注入后，该命名空间下所有工作负载关联的Pod将自动注入sidecar。如果某些工作负载不希望注入sidecar，可参考[某些工作负载不注入sidecar，该如何配置？](https://support.huaweicloud.com/asm_faq/asm_faq_0037.html)进行配置。
    
   
   
 
#### 查看工作负载详情
列表中展示了该网格所管理的集群下所有已创建服务的工作负载，支持查看负载的名称、所属集群、服务，以及负载的sidecar信息，包括sidecar名称、sidecar版本、状态、CPU使用率、内存使用率等。操作方法如下：
1. 在列表右上角搜索框，选择集群、命名空间，并输入工作负载名称搜索指定工作负载，查看负载的相关信息。
2. 单击工作负载前的![](https://support.huaweicloud.com/usermanual-asm/zh-cn_image_0000001200574170.png)图标，查看负载的sidecar信息。
   
   如果提示工作负载中无sidecar，是因为该负载所属命名空间还未注入sidecar，参考[sidecar注入]进行注入。
   
   
 #### 配置sidecar资源限制
支持为sidecar（即istio-proxy容器）配置CPU和内存的资源上下限。同一个节点上部署的工作负载，对于未设置资源上下限的工作负载，如果其异常资源泄露会导致其他工作负载分配不到资源而异常。未设置资源上下限的工作负载，工作负载监控信息也会不准确。
默认的sidecar资源上下限为：
- CPU（Core）：最小 0.1，最大 2
- MEM（MiB）：最小 128，最大 1024
如需更改，请参考以下操作：
1. 单击工作负载操作列的"sidecar资源限制"，也可以勾选多个工作负载，在列表左上角单击"sidecar资源限制"进行批量配置。 
   图2sidecar资源限制   
   ![](https://support.huaweicloud.com/usermanual-asm/zh-cn_image_0000001957416561.png)
   - CPU最小值：也称CPU请求，表示容器使用的最小CPU需求，作为容器调度时资源分配的判断依赖。只有当节点上可分配CPU总量 ≥ 容器CPU请求数时，才允许将容器调度到该节点。
   
   - CPU最大值：也称CPU限制，表示容器能使用的CPU最大值。
   
   - MEM最小值：也称内存请求，表示容器使用的最小内存需求，作为容器调度时资源分配的判断依赖。只有当节点上可分配内存总量 ≥ 容器内存请求数时，才允许将容器调度到该节点。
   
   - MEM最大值：也称内存限制，表示容器能使用的内存最大值。当内存使用率超出设置的内存限制值时，该实例可能会被重启进而影响工作负载的正常使用。
   
   
   
   
 
#### 为sidecar资源配置内存告警
当内存使用率超出设置的内存限制值时，该实例可能会被重启进而影响工作负载的正常使用。因此，建议用户为所有sidecar资源配置内存告警，当告警被触发后，及时扩容对应sidecar的内存最大值，可降低业务影响范围。
1. 登录应用运维管理 AOM控制台。
2. 在左侧导航栏选择"告警 \> 告警规则"，单击右上角"添加规则"。
3. 设置告警规则。 
   - 规则名称：输入规则名称，例如：istio-proxy。
   
   - 规则类型：选择"阈值规则"。
   
   - 监控对象：单击"选择资源对象"，选择"按指标维度添加"，指标名称选择"云服务指标 \> CCE \> 容器 \> 物理内存使用率"。 指标维度选择"集群ID"，选择开启告警的集群ID；选择"容器名称"，容器名称选择"istio-proxy"，单击"确定"。
     
   
   - 告警条件：设置统计周期、连续周期、阈值条件等触发条件参数，如下图所示，请根据具体需求设置。
   
   - 告警方式：选择"直接告警"。
   
   
   
   
4. 单击"立即创建"。 
   创建后在规则列表中可以看到如下一行，表示创建成功。
   
   
5. 在告警列表中可以查看最新的活动告警信息及对应负载的详情。 
   当告警被触发后，活动告警列表会新增一条或多条记录。单击告警名称，在"告警对象"页签查看deploymentName、nameSpace等参数，以确定告警源自哪个sidecar资源。业务面sidecar资源限制请参考[配置sidecar资源限制]修改，istio-ingressgateway、istio-egressgateway、istio-eastwestgateway等控制面sidecar资源限制需要在CCE控制台"工作负载"页面通过升级方式来修改。
   
   
 
