服务网格ASM支持修改入口网关服务的配置,本文介绍如何在服务网格ASM修改入口网关服务。
前提条件
操作步骤
- 登录ASM控制台。
- 在左侧导航栏,选择服务网格 > 网格管理。
- 在网格管理页面,找到待配置的实例,单击实例的名称或在操作列中单击管理。
- 在网格详情页面左侧导航栏单击ASM网关。
- 在ASM网关页面单击目标入口网关操作列下的YAML。
- 在编辑对话框修改参数,单击确定。
表 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 表示此服务是否希望将外部流量路由到节点本地或集群范围的端点。有两个可用选项: Cluster
和Local
。Local ports 数组类型。入口网关Pod定义的端口和协议列表。例如: name: http2 port: 80 targetPort: 80 protocol: HTTP2
name: https port: 443 targetPort: 443 protocol: HTTPS
说明 1.9.7.107 之前版本,"protocol" 属性字段未做具体化声明,需统一声明配置为TCP无 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 入口网关的服务类型,可以是 LoadBalancer
、Nodeport
或者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
:支持serviceAnnotations
、resources
、replicaCount
参数的赋值。
无 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