生产环境的部署大多采用F5+ Traefik这种方式,因为Traefik的SSL方式相对来说比较慢,因此SSL更多的在F5上开放,而F5到Traefik之间以及后端都是http方式。

但客户需要在开发和测试环境直接用SSL,因此需要配置。

遇到一些小坑,记录一下理解

  •  先生成一个secret,记住别搞个一年就过期的啊。
openssl req \
-newkey rsa: -nodes -keyout tls.key \
-x509 -days -out tls.crt
  • 创建secret
kubectl create secret generic traefik-cert \
--from-file=tls.crt \
--from-file=tls.key -n kube-system
  • 创建configmap,此处有坑,/ssl/tls.crt等路径不是我们本地的路径,而是在容器内路径,所以不要去修改!
# traefik.toml
defaultEntryPoints = ["http","https"]
[entryPoints]
[entryPoints.http]
address = ":80"
[entryPoints.http.redirect]
entryPoint = "https"
[entryPoints.https]
address = ":443"
[entryPoints.https.tls]
[[entryPoints.https.tls.certificates]]
CertFile = "/ssl/tls.crt"
KeyFile = "/ssl/tls.key"

如果需要同时打开80和443,需要如下配置文件

# traefik.toml
defaultEntryPoints = ["http","https"]
[entryPoints]
[entryPoints.http]
address = ":80"
[entryPoints.https]
address = ":443"
[entryPoints.https.tls]
[[entryPoints.https.tls.certificates]]
CertFile = "/ssl/tls.crt"
KeyFile = "/ssl/tls.key"

建立起来

kubectl create configmap traefik-conf --from-file=traefik.toml -n kube-system
  • traefik.yaml文件

随便找了段贴上去啊,看详细日志打开

logLevel=DEBUG
apiVersion: v1
kind: Deployment
apiVersion: extensions/v1beta1
metadata:
name: traefik-ingress-controller
namespace: kube-system
labels:
k8s-app: traefik-ingress-lb
spec:
replicas:
selector:
matchLabels:
k8s-app: traefik-ingress-lb
template:
metadata:
labels:
k8s-app: traefik-ingress-lb
name: traefik-ingress-lb
spec:
terminationGracePeriodSeconds:
volumes:
- name: ssl
secret:
secretName: traefik-cert
- name: config
configMap:
name: traefik-conf
hostNetwork: true
containers:
- image: registry.yourcompany.com/traefik:v1.1.1
name: traefik-ingress-lb
volumeMounts:
- mountPath: "/ssl"
name: "ssl"
- mountPath: "/config"
name: "config"
resources:
limits:
cpu: 200m
memory: 30Mi
requests:
cpu: 100m
memory: 20Mi
ports:
- name: http
containerPort:
hostPort:
- name: https
containerPort:
hostPort:
- name: admin
containerPort:
args:
- --configfile=/config/traefik.toml
- --web
- --kubernetes
- --logLevel=DEBUG

此处的坑是/config/traefik.toml是容器内地址,不是宿主机的路径,不要手贱去修改!

  • 测试

可以在浏览器上直接测试,也可以用命令行。

curl -k https://...

最新文章

  1. 利用线上数据验证系统 Gor
  2. [开源]基于WPF实现的Gif图片分割器,提取GIf图片中的每一帧
  3. nginx配合zabbix编译安装时web下一步跳转问题
  4. Telnet
  5. Resellerclub –Cpanel 主机中如何设置 index 缺省首页
  6. C++成员变量的初始化顺序问题
  7. CSS值得关注的那些事?
  8. Linux学习笔记——使用指定的用户权限执行程序——sudo
  9. mac下 ssh免密码登陆设置
  10. C#:IText构造PDF文件
  11. 【题解】【链表】【Leetcode】Linked List Cycle II
  12. 【Spark学习】Apache Spark集群硬件配置要求
  13. 关于c#生成word。
  14. VirtualBox修改虚拟盘路径
  15. [Cocos2d-x]节点的尺寸大小
  16. 微信小程序官方demo学习
  17. 笨方法学python--读文件
  18. bzoj 2959: 长跑
  19. ssh无密码登录多台机器,并让所有远程机执行相同命令
  20. 基于OpenGL编写一个简易的2D渲染框架-09 重构渲染器-Shader

热门文章

  1. ASPxgridview 编辑列初始化事件
  2. 海量文件查重SimHash和Minhash
  3. 自定制Form组件
  4. gulp配合vue压缩代码格式化
  5. spring mvc 表单提交 乱码
  6. 部署openstack(N)版本-本地yum源(1)
  7. 关于在windows下部署发布QT程序的总结
  8. Luogu P3178 树上操作(树链剖分+线段树)
  9. 第6天-javascript事件
  10. Python lambda介绍(转)