注意:以下文档只适用于TOP接口,请谨慎使用!

文档中心 > 聚石塔

sidecar dns 使用说明

更新时间:2023/04/19 访问次数:4596

一、使用场景


该功能主要针对 高并发 dns 解析的应用,防止在高并发 dns 解析时出现性能瓶颈,不存在 dns 解析问题的应用,理论上不应该使用该功能。


二、原理


该功能的实现主要依靠 pod sidecar 能力,在容器组中,增加一个 dns 容器,供 pod 中其他容器进行 dns 解析并缓存一段时间解析结果。


三、配置

1. 页面配置类型


进入 应用发布-部署配置-编辑/新建?,配置 sidecar dns 功能?默认 禁用?,选择 启用?后,需要配置 缓存时长? 以及 健康检查端口

image


缓存时长:dns 解析结果缓存的时间,一般配置为 30s 即可。

将康检查端口:由于该容器与其他业务容器在同一个 pod,所有容器的共享 pod 端口,因此要避免与其他容器使用的端口产生冲突。


2. yaml 配置类型

对于 yaml 格式配置的应用,可以通过注解的方式启用 SidecarDns,注解配置示例如下:


apiVersion: apps/v1beta2
kind: Deployment
metadata:
  name: vk-cos-use
  labels:
    app: cos
spec:
  selector:
    matchLabels:
      app: cos
  template:
    metadata:
        annotations: 
          annotation.jst.com/sidecar-dns-enable: 'on' # 必填
          annotation.jst.com/sidecar-dns-request: 0.1-50
          annotation.jst.com/sidecar-dns-limit: 0.5-170
          annotation.jst.com/sidecar-dns-health-port: 9095
          annotation.jst.com/sidecar-dns-cache-duration: 30
        labels:
          app: cos
    spec:
      containers:
      - name: u1
        image: "registry-vpc.cn-beijing.aliyuncs.com/lxx/cos-4g"


一共有以下5个相关注解:


annotation.jst.com/sidecar-dns-enable
annotation.jst.com/sidecar-dns-request
annotation.jst.com/sidecar-dns-limit
annotation.jst.com/sidecar-dns-health-port
annotation.jst.com/sidecar-dns-cache-duration


annotation.jst.com/sidecar-dns-enable(必填)

如果需要使用 sidecardns,该注解必须填写,且值需为 "on",表示启用 sidecardns 功能。


annotation.jst.com/sidecar-dns-request

用于配置 sidecardns 的资源规格请求值,配置方式为 "{cpu}-{memory}",单位为C与M,非必填,默认值为 "0.1-50",表示 0.1C 50M。


annotation.jst.com/sidecar-dns-limit

用于配置 sidecardns 的资源规格限制值,配置方式为 "{cpu}-{memory}",单位为 C 与 M,非必填,默认值为 "0.5-170",表示 0.5C 170M。


annotation.jst.com/sidecar-dns-health-port

用于配置 sidecardns 容器服务的健康检查端口,一般情况下不与 容器组 内其他容器端口冲突即可,非必填,默认值 9095。


annotation.jst.com/sidecar-dns-cache-duration

用于配置 dns 解析记录缓存时长,单位 秒,非必填,默认值 30。


四、备注


目前 dns 容器资源限制方式为共享模式,在资源大小为 0.1C50M 的情况下,可提供 1000+ QPS。


五、风险


该 sidecar 容器一旦出现宕机,会导致 pod 重启。该问题发生概率极低,并且影响范围为单个 pod。


FAQ

关于此文档暂时还没有FAQ
返回
顶部