服务网格ASM支持修改入口网关服务的配置,本文介绍如何在服务网格ASM修改入口网关服务。

前提条件

已添加入口网关,详情请参见添加入口网关服务

操作步骤

  1. 登录ASM控制台
  2. 在左侧导航栏,选择服务网格 > 网格管理
  3. 网格管理页面,找到待配置的实例,单击实例的名称或在操作列中单击管理
  4. 在网格详情页面左侧导航栏单击ASM网关
  5. ASM网关页面单击目标入口网关操作列下的YAML
  6. 编辑对话框修改参数,单击确定
    表 1. 参数说明
    字段 说明 默认值
    metadata.name 名称,生成的Kubernetes Service和Deployment名称为istio-{该值}。
    metadata.namespace 命名空间,生成的Kubernetes Service和Deployment所在的命名空间。
    注意 为兼容Istio 1.6及以后的版本,该命名空间必须为istio-system。
    istio-system
    clusterIds 数组类型。将部署入口网关的集群ID,这些集群隶属于当前网格实例所管理。
    cpu.targetAverageUtilization HPA支持CPU的阈值。 80
    env 数组类型。入口网关Pod的环境变量。
    externalTrafficPolicy 表示此服务是否希望将外部流量路由到节点本地或集群范围的端点。有两个可用选项:ClusterLocal Local
    maxReplicas 弹性伸缩的最大副本数。 5
    minReplicas 弹性伸缩的最小副本数。 1
    ports 数组类型。入口网关Pod定义的端口列表。例如:
    • name: status-port port: 15020 targetPort: 15020
    • name: http2 port: 80 targetPort: 80
    • name: https port: 443 targetPort: 0
    • name: tls port: 15443 targetPort: 15443
    replicaCount 副本数。 1
    configVolumes 入口网关Pod所使用到的ConfigMap挂载卷,例如:
    - name: config-volume-lua
      configMapName: lua-libs
      mountPath: /var/lib/lua
    resources 入口网关Pod的资源配置。
    • limits:
      • cpu: '2'
      • memory: 2G
    • requests:
      • cpu: 200m
      • memory: 256Mi
    sds.enabled 是否启用SDS。 false
    sds.resources 如果启用SDS,对应的Pod的资源配置。
    • requests:
      • cpu: 100m
      • memory: 128Mi
    • requests:
      • cpu: 2000m
      • memory: 1024Mi
    secretVolumes 入口网关Pod所使用到的Secret挂载卷,例如:
    - name: myexample-customingressgateway-certs 
      secretName: istio-myexample-customingressgateway-certs
      mountPath: /etc/istio/myexample-customingressgateway-certs
    serviceType 入口网关的服务类型,可以是LoadBalancerNodeport或者ClusterIP LoadBalancer
    serviceAnnotations 入口网关服务的Annotation定义。例如:service.beta.kubernetes.io/alicloud-loadbalancer-address-type: internet
    说明 关于Annotation的常用注解,请参见通过Annotation配置负载均衡
    serviceLabels 入口网关服务的Label定义。
    podAnnotations 入口网关Pod的Annotation定义。
    rollingMaxSurge 滚动更新过程中运行操作期望副本数的最大Pod数,可以为绝对数值,也可以为百分数。 "100%"
    rollingMaxUnavailable 滚动更新过程中不可用的最大Pod数,可以为绝对数值,也可以为百分数。 "25%"
    overrides clusterIds指定了2个或以上的集群时,可以针对特定的集群指定不同于上述参数定义的配置值,配置值为Map类型。
    说明
    • key: 本次定义的clusterIds中某一个集群ID。
    • value:支持serviceAnnotationsresourcesreplicaCount参数的赋值。
    kernel.enabled 是否启用自定义内核参数。 false
    kernel.parameters 内核参数设置,当前支持设置以下内核参数:
    注意

    ASM支持的内核参数修改项可能因宿主机内核版本不同,而出现部分参数不支持的情况。如果出现这种情况,入口网格Pod可能会报错。

    您可以通过kubectl describe pod命令查看入口网关报错情况。删除不支持的参数后,容器即可正常启动。

    所有的内核参数值为字符串格式,因YAML语法会将纯数字解析为数值类型,您需要使用""(半角双引号)包裹您的值,例如net.core.somaxconn: "65535"。

    • net.core.somaxconn
    • net.core.netdev_max_backlog
    • net.ipv4.tcp_rmem
    • net.ipv4.tcp_wmem
    • net.ipv4.ip_local_port_range
    • net.ipv4.tcp_fin_timeout
    • net.ipv4.tcp_tw_timeout
    • net.ipv4.tcp_tw_reuse
    • net.ipv4.tcp_tw_recycle
    • net.ipv4.tcp_timestamps
    • net.ipv4.tcp_retries2
    • net.ipv4.tcp_slow_start_after_idle
    • net.ipv4.tcp_max_orphans
    • net.ipv4.tcp_max_syn_backlog
    • net.ipv4.tcp_no_metrics_save
    • net.ipv4.tcp_autocorking
    • kernel.printk
    • vm.swappiness
    compression.enabled 是否启用入口网关压缩能力。 false
    compression.content_type 需要被压缩的ContentType列表,例如:
    • text/html
    • application/json
    compression.disable_on_etag_header

    设置为true时,当Response中存在etag_header时禁用压缩。

    false
    compression.min_content_length ContentLength大于等于设置的值时触发压缩。 30
    compression.remove_accept_encoding_header
    • 设置为true时,入口网关在将客户端请求转发至上游之前会将请求内的Accept-Encoding Header移除。
    • 设置为false时,入口网关在将客户端请求转发至上游之前会保留请求内的Accept-Encoding Header。
    false
    compression.gzip 当前仅支持gzip压缩格式,要启用压缩,该字段必须填写,如所有参数保持默认,也需要填写空结构。例如gzip: {}
    compression.gzip.memory_level zlib内部的内存使用级别,合法值1~9,值越大占用内存越多,同时也带来更快的压缩速度和更好的压缩质量。 5
    compression.gzip.compression_level zlib的压缩级别,合法值如下:
    说明 DEFAULT_COMPRESSION是默认压缩值。BEST_COMPRESSION是最高压缩质量。BEST_SPEED是最快的压缩速度。其中:
    • COMPRESSION_LEVEL_1压缩级别等价于BEST_SPEED。
    • COMPRESSION_LEVEL_9压缩级别等价于BEST_COMPRESSION。
    • COMPRESSION_LEVEL_6压缩级别等价于DEFAULT_COMPRESSION。
    • COMPRESSION_LEVEL_1
    • COMPRESSION_LEVEL_2
    • COMPRESSION_LEVEL_3
    • COMPRESSION_LEVEL_4
    • COMPRESSION_LEVEL_5
    • COMPRESSION_LEVEL_6
    • COMPRESSION_LEVEL_7
    • COMPRESSION_LEVEL_8
    • COMPRESSION_LEVEL_9
    • DEFAULT_COMPRESSION
    • BEST_COMPRESSION
    • BEST_SPEED
    DEFAULT_COMPRESSION
    compression.gzip.compression_strategy zlib的压缩策略,合法值如下:
    • FILTERED
    • FIXED
    • HUFFMAN_ONLY
    • RLE
    DEFAULT_STRATEGY
    compression.gzip.window_bits zlib window size,合法值为9~15。 12
    compression.gzip.chunk_size zlib输出缓冲区大小。 4096
    hostNetwork 主机网络,当hostNetwork设置为true时,入口网关Pod将使用宿主机的网络。 false
    dnsPolicy DNS策略。关于dnsPolicy的详细介绍,请参见DNS for Services and Pods ClusterFirst