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
访问面板
完美部署。
使用 Traefik 中间件 BasicAuth 设置面板访问权限
详细文档,请查阅 BasicAuth

配置 Secret
密码必须是一个 MD5,SHA1 或者 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
重新访问面板
看到没,验证通过才能访问。
参考 & 感谢
一起 K8S DevOps & GitOps 云️原生,关注黑客下午茶。
Cloud-Native! 实战 Helm 3 部署 Traefik 2的更多相关文章
- 基于Kubernetes 的Cloud Native 实战 培训课程安排
课程安排: 基于Kubernetes 的Cloud Native 实战 课程介绍: 云计算.虚拟化.容器微服务PaaS 技术已经广泛应用于新兴互联网企业(如电商平台.搜索引擎.社交平台网站.位置服务平 ...
- Cloud Native Weekly | Kubernetes 1.13发布
云原生一周精选 1——Kubernetes 1.13发布 2——Kubernetes首次出现重大安全漏洞 3——Docker和微软公司推出云原生应用的部署规范 4——谷歌推出beta版本的Cloud ...
- Cloud Native Weekly | 华为云抢先发布Redis5.0,红帽宣布收购混合云提供商 NooBaa
1——华为云抢先发布Redis5.0 2——DigitalOcean K8s服务正式上线 3——红帽宣布收购混合云提供商 NooBaa 4——微软发布多项 Azure Kubernetes 服务更新 ...
- [追热点]了解 Cloud Native 云原生
起源和发展 Pivotal 是云原生应用的提出者,并推出了 Pivotal Cloud Foundry 云原生应用平台和 Spring 开源 Java 开发框架,成为云原生应用架构中先驱者和探路者. ...
- On cloud, be cloud native
本来不想起一个英文名,但是想来想去都没能想出一个简洁地表述该意思的中文释义,所以就用了一个英文名称,望见谅. Cloud Native是一个刚刚由VMware所提出一年左右的名词.其表示在设计并实现一 ...
- 一篇文章带你了解Cloud Native
背景 Cloud Native表面看起来比较容易理解,但是细思好像又有些模糊不清:Cloud Native和Cloud关系是啥?它用来解决什么问题?它是一个新技术还是一个新的方法?什么样的APP符合“ ...
- 程序员如何让自己 Be Cloud Native - 配置篇
前言 这是<程序员如何让自己 Be Cloud Native>系列文章的第二篇,从第一篇的反馈来看,有些同学反馈十二要素太形式主义,不建议盲目跟从.作者认为任何理论和技术都需要有自己的观点 ...
- helm 持久化部署ingres
Ingress 是一种 Kubernetes 资源,也是将 Kubernetes 集群内服务暴露到外部的一种方式.本文将讲一讲如何用 Helm 在 Kubernetes 集群中部署 Ingress,并 ...
- 微软推出了Cloud Native Application Bundles和开源ONNX Runtime
微软的Microsoft Connect(); 2018年的开发者大会 对Azure和IoT Edge服务进行了大量更新; Windows Presentation Foundation,Window ...
随机推荐
- MyBatis 原理浅析——基本原理
前言 MyBatis 是一个被广泛应用的持久化框架.一个简单的使用示例如下所示,先创建会话工厂,然后从会话工厂中打开会话,通过 class 类型和配置生成 Mapper 接口的代理实现,最后使用 Ma ...
- [Luogu P1613]跑路 (DP+倍增+最短路)
题面 传送门:https://www.luogu.org/problemnew/show/P1613 Solution 挺有意思的一道题. 题面已经挺明显的描述出了这题的主要思想:倍增. 先这样想,我 ...
- 被巴菲特看中的Snowflake,是怎样深刻改变云计算产业的?
众所周知,在很长一段时间里,巴菲特都从来不碰科技股.但人总是会变的,他在2016年开始首次持仓苹果,并在此后一再增持,目前苹果为伯克希尔第一大重仓股. 前不久,巴菲特持股了人生中的又一家科技公司--S ...
- Git使用push命令卡住?
为什么Git用ssh连不上GitHub,push就卡住,而用HTTPS可以连接.上一次用Git的ssh连接时候还可以,这段时间再重新使用Git却发现ssh方式push到Git,每次一push就卡住,找 ...
- vim-配置教程+源码
目录 概念 前言 参考链接 vim 优点 vim 配置 vim 配置方法一 vim 配置方法二 自动添加文件头 一般设置 插件 ** 映射 YouCompleteMe 插件 其它配置 概念 前言 放弃 ...
- Ideas and Tricks Part II
33.对于统计答案幂次的技巧 对于$x^k$,考虑其组合意义:将$k$个不同球放到$x$个不同的盒子里的方案数,直接维护不好维护,那么考虑枚举把这些球放到了哪些盒子里,最后乘上第二类斯特林数和对于的阶 ...
- xshell断线解决办法
困扰了好几个月了,网上更改ssh配置文件.固定ip都不好使,终于找到xshell掉线的解决办法了 哈哈!!! 设备管理器-->网络适配器-->对应网络连接虚拟机方式,本机虚拟机桥接如图 右 ...
- PhpExcel PhpSpreadsheet 锁定单元格 正确做法!!
首先声明 PhpExcel 已经停止更新,转而代之的是 PhpSpreadsheet : 但是 !!不必担心 PhpSpreadsheet 包含了大部分的 PhpExcel 的功能 : //code ...
- 嗖嗖移动大厅 源代码 Java初级小项目
今天给大家一个比较综合的项目:嗖嗖移动业务大厅.项目功能很多,概括的功能也很全面.吃透了这个项目,你的java基础部分已经非常棒了!!! 一 . 项目概述 技能要求 使用面向对象设计的思想 合 ...
- 多级iframe中,获取元素相对于浏览器左上角的坐标(非当前frame)
搜索了好多文章,都不是自己想要的,所以在此贴下自己的解决方案,做个笔记. 1.常规需求:获取当前元素距离左边.顶部的距离 1 var x = $(div).offset().left; 2 var y ...