K8S集群Ingress https实践
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了K8S集群Ingress https实践,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2435字,纯文字阅读大概需要4分钟。
内容图文
![K8S集群Ingress https实践](/upload/InfoBanner/zyjiaocheng/1171/51538a2e8e4c450a97d02a08babdcab2.jpg)
前文介绍使用ingress结合traefik实现了入口的动静分离,本文将在前文基础上实现ingress的https配置。
为了简单且高效,建议应用容器化部署之后,https卸载在ingress这一级实现。通俗一点来说就是用户到ingress的连接走https协议,ingress到后端服务的连接走https协议。
我们对https的配置要求也比较简单,主要如下:
1、http自动重定向到https
2、https支持虚拟主机(TLS SNI)
一、初始环境准备
1、这里为了方便测试,把前文配置的网站动态部分路由规则都拿掉,仅保留静态部分
2、配置hosts解析记录
3、http访问测试
二、准备证书文件和配置文件
1、这里将两个站点的四个证书文件统一放到一个secret里面去维护
# kubectl create secret generic traefik-cert --from-file=star_59iedu_com.key --from-file=star_59iedu_com.pem --from-file=star_yingjigl_com.key --from-file=star_yingjigl_com.pem -n kube-system
2、配置http重定向到https,同时支持多个https虚拟主机(TLS SNI)
# cat 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/star_59iedu_com.pem"
KeyFile = "/ssl/star_59iedu_com.key"
[[entryPoints.https.tls.certificates]]
certFile = "/ssl/star_yingjigl_com.pem"
keyFile = "/ssl/star_yingjigl_com.key"
# kubectl create configmap traefik-conf --from-file=traefik.toml -n kube-system
三、修改traefik配置文件
主要需要添加config和ssl volumes,其他的配置(例如:rabc、service、ingress等)保持不变,具体配置可参考前文,前文传送门:http://blog.51cto.com/ylw6006/2073718
# cat traefik-deployment.yaml
apiVersion: v1
kind: ServiceAccount
metadata:
name: traefik-ingress-controller
namespace: kube-system
---
kind: Deployment
apiVersion: extensions/v1beta1
metadata:
name: traefik-ingress-controller
namespace: kube-system
labels:
k8s-app: traefik-ingress-lb
spec:
replicas: 2
selector:
matchLabels:
k8s-app: traefik-ingress-lb
template:
metadata:
labels:
k8s-app: traefik-ingress-lb
name: traefik-ingress-lb
spec:
serviceAccountName: traefik-ingress-controller
hostNetwork: true
nodeSelector:
traefik: proxy
terminationGracePeriodSeconds: 60
volumes:
- name: ssl
secret:
secretName: traefik-cert
- name: config
configMap:
name: traefik-conf
containers:
- image: traefik
name: traefik-ingress-lb
volumeMounts:
- mountPath: "/ssl"
name: "ssl"
- mountPath: "/config"
name: "config"
ports:
- name: web
containerPort: 80
hostPort: 80
- name: admin
containerPort: 8081
args:
- --configfile=/config/traefik.toml
- --web
- --web.address=:8081
- --kubernetes
# kubectl apply -f traefik-deployment.yaml
四、访问测试与验证
参考文档:
其他的需求,例如gzip压缩,tls版本和加密算法,rewrite重定向等配置也可以参考此文档
https://docs.traefik.io/configuration/entrypoints/#basic
原文:http://blog.51cto.com/ylw6006/2119784
内容总结
以上是互联网集市为您收集整理的K8S集群Ingress https实践全部内容,希望文章能够帮你解决K8S集群Ingress https实践所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。