k8s的traefik配置https
环境中traefik生成的域名都是http的公网域名,就算做了域名备案。因此会配置https域名来防止被劫持,同时保留http域名来满足不同网络环境的访问。traefik.ingress.kubernetes.io/router.tls: "true"---需要tls。traefik正常代理80端口来作为http的转发,新增443端口的转发。同理若是其他服务使用traefik生成的域名,若是htt
背景:
环境中traefik生成的域名都是http的公网域名,就算做了域名备案。在有些对网络环境安全要求较高的环境中还会存在域名被劫持。因此会配置https域名来防止被劫持,同时保留http域名来满足不同网络环境的访问
操作原理:
traefik正常代理80端口来作为http的转发,新增443端口的转发。本次使用阿里云slb挂上eip来作为访问入口
后端服务器组为3台master节点。后端接口分别为80和443,若为安全考虑可以不用常规端口(用的都是TCP转发)
k8s内部署了nginx服务来作为各域名及后端转发
现新增nginx-https-ingress
大致配置如下:
[root@master-001 changmo]# cat nginx-glyy-https.yml
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
annotations:
kubernetes.io/ingress.class: traefik
traefik.ingress.kubernetes.io/router.tls: "true" ---需要tls
name: nginx-ingress-https
namespace: nginx
spec:
tls:
- secretName: tls-secret-glyy-poc 将证书导入ks8 secret
rules:
- host: poc.come.com 域名保持不变
http:
paths:
- backend:
service:
name: nginx-helm-nginx
port:
number: 80
path: /
pathType: ImplementationSpecific
- host: open.come.com
http:
paths:
- backend:
service:
name: nginx-helm-nginx
port:
number: 80
path: /
pathType: ImplementationSpecific
创建secret 导入证书(注意证书名要改为 tls.crt tls.key 否则traefik会报错)
创建secret
kubectl create secret generic tls-secret-glyy-poc --from-file=certs/come-future.com.key --from-file=certs/come-future.com.crt -n nginx
同理若是其他服务使用traefik生成的域名,若是http的,都可以新加一个https的ingress
更多推荐
所有评论(0)