• Cloud-Native! 实战 Helm 3 部署 Traefik 2


    介绍

    Traefik 是什么?

    Traefik, The Cloud Native Edge Router

    Traefik 是一种现代 HTTP 反向代理和负载均衡器,用于轻松部署微服务。

    这篇文章对 Traefik 使用有不错的解释:我为什么要选择traefik2做网关?

    准备工作

    Helm V3

    确保你已经安装了 Helm V3,上一节已经介绍如何安装它 -> Helm V3 的安装

    ## 查看下版本号
    helm version
    # version.BuildInfo{Version:"v3.0.1", GitCommit:"7c22ef9ce89e0ebeb7125ba2ebf7d421f3e82ffa", GitTreeState:"clean", GoVersion:"go1.13.4"}
    

    Traefik v2 helm chart values.yaml

    GitHub 仓库:traefik-helm-chart

    它的 Chart Values.yaml,有很多细节的配置,大家可以自行探索。为少 后面也可能出篇文章仔细说说(估计没个万把字讲不明白,微服务相关的东西太多了)

    这里我简单配置一下:

    traefik-v2-chart-values.yaml

    service:
      type: ClusterIP
    
    ingressRoute:
      dashboard:
        enabled: false
    
    nodeSelector:
      kubernetes.io/hostname: k8s-master-1
    
    ports:
      web:
        hostPort: 80
      websecure:
        hostPort: 443
      traefik:
        port: 8080
        hostPort: 8080
        exposedPort: 8080
        expose: true
    
    additionalArguments:
      - "--serversTransport.insecureSkipVerify=true"
      - "--api.insecure=true"
      - "--api.dashboard=true"
    

    CloudFlare 配置(你可能不需要)

    配置 SSL/TLS 加密模式:

    配置 页面规则

    添加 Traefik v2 helm chart

    helm repo add traefik https://containous.github.io/traefik-helm-chart
    helm repo update # 更新下仓库
    

    helm v3 部署 Traefik v2

    helm install traefik traefik/traefik -f traefik-v2-chart-values.yaml -n kube-system
    # helm uninstall traefik -n kube-system # 卸载 traefik
    

    OK,Ready!!!

    部署 Traefik 面板

    解析域名

    这里 为少traefik.cloud-fe.com 解析到我的 K8S 集群上。

    上一讲,为少 已经将域名停靠在了 cloudflare 上了,所以:

    kube-system 下签发证书

    上一节,为少有详细讲: 配置 Certificate

    所以:

    kubectl apply -f cloudfe-certificate.yaml -n kube-system
    

    kube-system 下查看证书

    kubectl describe Certificate -n kube-system
    

    部署面板 Ingress Route

    traefik-dashboard-ingress-route.yaml 如下:

    apiVersion: traefik.containo.us/v1alpha1
    kind: IngressRoute
    metadata:
      name: traefik-dashboard-route
    spec:
      entryPoints:
        - websecure
      tls:
        secretName: cloudfe-cert-tls
      routes:
        - match: Host(`traefik.cloud-fe.com`)
          kind: Rule
          services:
            - name: traefik
              port: 8080
    

    应用配置

    kubectl apply -f traefik-dashboard-ingress-route.yaml -n kube-system
    # kubectl delete -f traefik-dashboard-ingress-route.yaml -n kube-system
    

    访问面板

    https://traefik.cloud-fe.com

    完美部署。

    使用 Traefik 中间件 BasicAuth 设置面板访问权限

    详细文档,请查阅 BasicAuth

    配置 Secret

    密码必须是一个 MD5SHA1 或者 BCrypt 的哈希值。

    这里我比如说是使用 htpasswd 产生一个用户名是 cloudfe,密码为 cloudfe123 的哈希值。

    htpasswd -nb cloudfe cloudfe123
    # cloudfe:$apr1$ETFHyV73$hzz88wP7TNSWhCDByD1VT0
    

    traefik-authsecret.yaml 如下:

    apiVersion: v1
    kind: Secret
    metadata:
      name: traefik-authsecret
    type: Opaque
    stringData:
      users: cloudfe:$apr1$ETFHyV73$hzz88wP7TNSWhCDByD1VT0
    

    配置 BasicAuth 中间件

    traefik-basic-auth.yaml 如下:

    apiVersion: traefik.containo.us/v1alpha1
    kind: Middleware
    metadata:
      name: traefik-basic-auth
    spec:
      basicAuth:
        secret: traefik-authsecret
    

    重新配置 Ingress Route

    traefik-dashboard-ingress-route.yaml 如下:

    apiVersion: traefik.containo.us/v1alpha1
    kind: IngressRoute
    metadata:
      name: traefik-dashboard-route
    spec:
      entryPoints:
        - websecure
      tls:
        secretName: cloudfe-cert-tls
      routes:
        - match: Host(`traefik.cloud-fe.com`)
          kind: Rule
          services:
            - name: traefik
              port: 8080
          middlewares:
            - name: traefik-basic-auth
    

    应用配置

    kubectl apply -f traefik-authsecret.yaml -n kube-system
    kubectl apply -f traefik-basic-auth.yaml -n kube-system
    kubectl apply -f traefik-dashboard-ingress-route.yaml -n kube-system
    

    重新访问面板

    https://traefik.cloud-fe.com

    看到没,验证通过才能访问。

    参考 & 感谢

    一起 K8S DevOps & GitOps 云☁️原生,关注黑客下午茶

  • 相关阅读:
    ANSYS文件读写
    ANSYS导出图片
    由面网格拉伸为体网格
    ANSYS由结点生成单元
    photoshop做gif图片的问题
    matlab输出没有白边的图片
    关于ANSYS绘图显示结果范围的问题
    ansys的建模基于的坐标系问题
    ANSYS分析轴对称问题
    ANSYS取消坐标轴显示,关闭局部坐标系
  • 原文地址:https://www.cnblogs.com/hacker-linner/p/13632813.html
Copyright © 2020-2023  润新知