k3s 启用 traefik 自动签发证书及可视化面板

| 2019-05-17

Traefik 是一个云原生的新型的 HTTP 反向代理、负载均衡软件,能轻易的部署微服务。k3s 将其作为集群的默认反向代理 和 Ingress Controller,但可视化面板是无法访问的。
 
1、关于 IngressRoute
本文使用了自定义资源 IngressRoute,请使用 Traefik 2 以上版本。详细配置请参阅官方文档 https://doc.traefik.io/traefik/v2.5/routing/providers/kubernetes-crd/#kind-ingressroute
 
2、配置自动签发证书参数(非必要,可以忽略此步骤)
MY_ACME_EMAIL=acme@example.org

kubectl patch -n kube-system deployments traefik --type "json" --patch '[
  {
    "op" : "add",
    "path" : "/spec/template/spec/containers/0/args/-",
    "value" : "--certificatesresolvers.default.acme.tlschallenge"
  },
  {
    "op" : "add",
    "path" : "/spec/template/spec/containers/0/args/-",
    "value" : "--certificatesresolvers.default.acme.email=$MY_ACME_EMAIL"
  },
  {
    "op" : "add",
    "path" : "/spec/template/spec/containers/0/args/-",
    "value" : "--certificatesresolvers.default.acme.storage=/data/acme.json"
  }
]'
请注意修改邮箱 acme@example.org
国内部分IP段可能无法正常签发,可更换后再试
证书存储在临时目录,traefik 所在节点迁移会导致证书重签
 
3、修改系统路由配置,使其可通过 http://traefik.example.org 访问
MY_TRAEFIK_HOST=traefik.example.org

cat <<EOF | kubectl apply -f -
kind: IngressRoute
apiVersion: traefik.containo.us/v1alpha1
metadata:
  name: traefik-dashboard
  namespace: kube-system
spec:
  entryPoints:
    - websecure
  routes:
    - kind: Rule
      match: Host(\`$MY_TRAEFIK_HOST\`)
      services:
        - name: api@internal
          kind: TraefikService
  tls:
    certResolver: default
EOF
请注意修改域名 traefik.example.org
若未配置自动签发证书,请删除 tls 的两行配置
现在访问是公开的,在设置访问权限前,请勿用于生成环境

编辑:航网科技 来源:腾讯云 本文版权归原作者所有 转载请注明出处

在线客服

微信扫一扫咨询客服


全国免费服务热线
0755-36300002

返回顶部