kubernetes下traefik配置http3

traefik http3介绍

traefik 2.5的rc版本已经开始支持http3,目前版本是2.6。要实现traefik的http3功能有两个注意事项
1、启动traefik的时候要加两个配置 - --experimental.http3=true - --entrypoints.name.http3.advertisedport=443
2、在开启tls的tcp entrypoint上使用,且该entrypoint不能用作udp entrypoint

在这里插入图片描述

traefik kubernetes-crd 模式


这里我们采用helm安装traefik2.6版本

helm repo add traefik https://helm.traefik.io/traefik;
helm repo update;
cat << EOF > traefik1.yaml
image:
  name: registry-vpc.cn-shenzhen.aliyuncs.com/liweilun/traefik
  tag: "v2.6"
ingressRoute:
  dashboard:
    enabled: false
experimental:
  http3:
    enabled: true
additionalArguments:
  - "--providers.kubernetescrd.allowexternalnameservices=true"
  - "--entrypoints.websecure.http3.advertisedport=443"
ports:
  web:
    port: 80
  websecure:
    port: 443
    http3: true
service:
  type: ClusterIP
hostNetwork: true
securityContext:
  capabilities:
    drop: [ALL]
    add: [NET_BIND_SERVICE]
  readOnlyRootFilesystem: false
  runAsGroup: 0
  runAsNonRoot: false
  runAsUser: 0
EOF
helm install -f traefik1.yaml traefik traefik/traefik;

这里的yaml文件可以分为几个部分。
第一个部分就是镜像image的name和tag标签。
第二部分就是是否开启crd模式下的dashboard,我只用yaml文件进行管理,所以不需要开启dashboard。
第三部分就是额外的静态命令行配置,这部分可以参考traefik官网上的静态配置,这里只开启了允许externalname服务以及在websecure接口开启http3。–entrypoints.name.http3.advertisedport=443 traefik2.6版本要开启advertiseport作为alt-svc接收外部http3 udp流量的端口
第四部分就是配置pod端口,官方chart里面有port、exportPort、hostPort三种,exportPort是service的port。因为traefik里面http3使用的是用pod的端口进行探测与交互,所以我们后面要使用hostnetwork,也因此这里要修改pod的端口为80和443。
第五部分就是securityContext安全上下文的capabilities安全能力。Capabilities 是一个内核级别的权限,它允许对内核调用权限进行更细粒度的控制,而不是简单地以 root 身份运行。Capabilities 包括更改文件权限、控制网络子系统和执行系统管理等功能。
在 securityContext 中,Kubernetes 可以添加或删除 Capabilities,单个 Capabilities 或逗号分隔的列表可以作为一个字符串数组进行配置。另外,我们也可以使用 all 来添加或删除所有的配置。这种配置会被传递给容器运行时,在它创建容器的时候会配置上 Capabilities 集合,如果 securityContext 中没有配置,那么容器将会直接容器运行时提供的所有默认配置。
因为我们需要绑定使用80和443两个1024以下的端口,所以我们需要capabilities开启add: [NET_BIND_SERVICE]
然后考虑后续可能使用traefik的证书申请功能所以我们把readOnlyRootFilesystem根文件系统是否只读设置false
runAsGroup设置运行的gid为0,也就是root组
runAsNonRoot是否设置为nonroot模式,设置false
runAsUser设置运行的uid为0,也就是root用户

这里我们要注意,开启了http3之后,客户端再开翻墙的软件去访问http3的网站就会变成http2

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值