7.2.2 Traefik部署

使用Helm部署Træfik

➜ git clone git@xxx
➜ cd  traefik
  • 部署external

    ➜ helm install . --name traefik-ingress-lb-external --namespace kube-system --values external.yaml
  • 部署internal

    ➜ git checkout internal
    ➜ helm install . --name traefik-ingress-lb-internal --namespace kube-system  --values external.yaml
  • 卸载traefik

    helm delete --purge traefik-ingress-lb-{internal|external}

默认配置参数:

  • internal.yml

TrafficType: internal   
serviceType: ClusterIP  

nodeSelector: {
  edgenode: "true"
}


tolerations: 
- key: "dedicated"
  operator: "Equal"
  value: "internal"
  effect: "NoSchedule"


kubernetes:
  labelSelector: traffic-type=internal

ssl:
  enabled: true
  defaultCert: 
  defaultKey: 
acme:
  enabled: false

#默认打开dashboard, 设置认证和白名单
dashboard: 
  enabled: true
  domain: traefik-internal.gxd88.cn
  ingress:
    labels:
      traffic-type: internal
    annotations:
      traefik.ingress.kubernetes.io/whitelist-source-range: "172.16.0.0/12, 10.40.0.0/16, 10.40.0.0/16"
  auth:
    basic:
       admin: $apr1$grwXYah.$V9Xqu.CNQOneRssUSQTui0

gzip:
  enabled: true

accessLogs:
  enabled: true
  format: json
rbac:
  enabled: true

deployment:
  hostPort:
    httpEnabled: true
    httpsEnabled: true
    dashboardEnabled: true
  • external.yml

分场景部署

TrafficType: external|internal|public

nodeSelector:需要设置节点为边缘节点, edgenode: "true"

添加toleration,选择 dedicated=external|internal|public

Traffic 根据label 选择部署的场景traffic-type=external|internal|public

开启dashboard

其中ingress.labels 设置为traffic-type: external|internal

annotations: traefik.ingress.kubernetes.io/whitelist-source-range 开启白名单

auth.basic dashboar 开启认证, 使用htpasswd来生成默认为admin/

Let's Encrypt 生成泛域名https证书

最后更新于

这有帮助吗?