使用 traefik 配置 https ingress
本文档基于 traefik 配置 https ingress 规则,请先阅读配置基本 ingress。与基本 ingress-controller 相比,需要额外配置 https tls 证书,主要步骤如下:
1.准备 tls 证书
可以使用Let’s Encrypt签发的免费证书,这里为了测试方便使用自签证书 (tls.key/tls.crt),注意CN 配置为 ingress 的域名:
1 | $ openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout tls.key -out tls.crt -subj "/CN=hello.97hjh.cn" |
2.在 kube-system 命名空间创建 secret: traefik-cert,以便后面 traefik-controller 挂载该证书
1 | $ kubectl -n kube-system create secret tls traefik-cert --key=tls.key --cert=tls.crt |
3.创建 traefik-controller,增加 traefik.toml 配置文件及https 端口暴露等,详见该 yaml 文件
1 | $ kubectl apply -f /etc/ansible/manifests/ingress/traefik/tls/traefik-controller.yaml |
4.创建 https ingress 例子
1 | # 创建示例应用 |
5.验证 https 访问
验证 traefik-ingress svc
1 | $ kubectl get svc -n kube-system traefik-ingress-service |
可以看到项目默认使用nodePort 23456暴露traefik 80端口,nodePort 23457暴露 traefik 443端口,因此在客户端 hosts 增加记录 $Node_IP hello.test.com
之后,可以在浏览器验证访问如下:
1 | https://hello.97hjh.cn:23457 |
如果你已经配置了转发 ingress nodePort,那么增加对应 hosts记录后,可以验证访问 https://hello.97hjh.cn
配置 dashboard ingress
前提1:k8s 集群的dashboard 已安装
1 | $ kubectl get svc -n kube-system | grep dashboard |
前提2:/etc/ansible/manifests/ingress/traefik/tls/traefik-controller.yaml
的配置文件traefik.toml
开启了insecureSkipVerify = true
配置 dashboard ingress:kubectl apply -f /etc/ansible/manifests/ingress/traefik/tls/k8s-dashboard.ing.yaml
内容如下:
1 | apiVersion: networking.k8s.io/v1beta1 |
- 注意annotations 配置了 http 跳转 https 功能
- 注意后端服务是443端口
访问如图所示:
参考
文章作者: 小俊
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 小俊丶生活日志!
相关推荐

2023-06-29
Centos7编译安装OpenResty
今天空闲,看到一篇文章,就突发奇想,想搞一下OpenResty 测试说明 测试配置 8核4G 测试系统 Centos7.7-1908 软件版本 OpenResty-1.13.6.2 1.下载安装 1.1下载源码这里我们下载OpenResty的源码包 1wget https://openresty.org/download/openresty-1.13.6.2.tar.gz 1.2安装依赖不安装依赖在编译的时候会出现很多报错 1yum -y install gcc gcc-c++ pcre pcre-devel lua-devel systemtap-sdt-devel openssl-devel openssl 1.3编译前奏需要注意编译并不能在openresty根目录进行,否则将会失败。 12tar zxvf openresty-1.13.6.2.tar.gzcd...

2023-06-29
LVS+Nginx负载均衡
1.学习目标 掌握什么是负载均衡及负载均衡的作用和意义。 了解lvs负载均衡的三种模式。 了解lvs-DR负载均衡部署方法。 掌握nginx实现负载均衡的方法。 掌握lvs+nginx负载均衡拓扑结构。 2.负载均衡的相关技术 基于DNS的负载均衡 优点:实现简单、实施容易、成本低、适用于大多数TCP/IP应用 缺点:...

2023-06-29
Nginx配置文件理解
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172user www www; #定义Nginx运行的用户和用户组worker_processes auto; #nginx进程数,建议设置为等于CPU总核心数,这里auto为自动调整的意思worker_cpu_affinity auto; #对于具有多颗CPU的服务器,Nginx通过设置worker_cpu_affinity参数,即可轻松实现控制进程平均分配到多颗CPU上error_log logs/error.log; #全局错误日志定义类型,[ debug | info | notice | warn | error | crit ]google_perftools_profiles /tmp/tcmalloc; ...

2023-06-29
Ingress-http配置
Ingress简介ingress就是从外部访问k8s集群的入口,将用户的URL请求转发到不同的service上。ingress相当于nginx反向代理服务器,它包括的规则定义就是URL的路由信息;它的实现需要部署Ingress controller(比如 traefik ingress-nginx 等),Ingress controller通过apiserver监听ingress和service的变化,并根据规则配置负载均衡并提供访问入口,达到服务发现的作用。 未配置ingress: 集群外部 -> NodePort -> K8S Service 配置ingress: 集群外部 -> Ingress -> K8S Service 注意:ingress 本身也需要部署Ingress controller时使用以下几种方式让外部访问 使用NodePort方式 使用hostPort方式 使用LoadBalancer地址方式 以下讲解基于Traefik,如果想要了解ingress-nginx的原理与实践,推荐阅读博客烂泥行天下的相关文章 部署...

2023-06-29
ingress负载转发端口
配置负载转发 ingress nodeport向集群外暴露 ingress-controller 本身的服务端口(80/443/8080)一般有以下三种方法: 1.部署ingress-controller时使用hostNetwork: true,这样就可以直接使用上述端口,可能与host已listen端口冲突 2.部署ingress-controller时使用LoadBalancer类型服务,需要集群支持LoadBalancer 3.部署ingress-controller时使用nodePort类型服务,然后在集群外使用 haproxy/f5 等配置 virtual server 集群 本文讲解使用 haproxy 配置 ingress的 VS 集群,前提是配置了自建ex-lb节点 1.配置 ex-lb 参数开启转发 ingress nodeport1234#/etc/ansible/hosts,在ex-lb下面天界以下参数[ex-lb]10.0.0.10 LB_ROLE=master EX_APISERVER_VIP=10.0.0.250...

2023-06-29
K8S-部署Dashboard
本文使用的K8S是基于kubeasz一键搭建Github地址:https://github.com/easzlab/kubeasz本文档基于 dashboard 1.10.1版本,k8s版本 1.18.3。 部署新版配置文件参考 https://github.com/kubernetes/dashboard 安装部署 123456# 部署dashboard 主yaml配置文件$ kubectl apply -f /etc/ansible/manifests/dashboard/kubernetes-dashboard.yaml# 创建可读可写 admin Service Account$ kubectl apply -f /etc/ansible/manifests/dashboard/admin-user-sa-rbac.yaml# 创建只读 read Service Account$ kubectl apply -f /etc/ansible/manifests/dashboard/read-user-sa-rbac.yaml 验证1234567891011# 查看pod...