前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >使用traefik暴露常用kubernetes服务的方法

使用traefik暴露常用kubernetes服务的方法

作者头像
tanmx
发布2023-10-18 12:41:30
2510
发布2023-10-18 12:41:30
举报

1.创建自签证书

1

openssl req -newkey rsa:2048 -nodes -keyout tls.key -x509 -days 3650 -out tls.crt

2.创建secret

1 2

如果服务在多个ns,需要多个ns中创建secret kubectl create secret generic dashboard-tls --from-file=tls.crt --from-file=tls.key -n kube-system

3.暴露服务

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81

#创建对应的 IngressRoute apiVersion: traefik.containo.us/v1alpha1 kind: IngressRoute metadata: name: traefik-dashboard namespace: traefik spec: entryPoints: - websecure tls: secretName: dashboard-tls routes: - match: Host(`traefik.cluster.local`) #匹配的域名 kind: Rule services: - name: api@internal #traefik内置服务 kind: TraefikService --- apiVersion: traefik.containo.us/v1alpha1 kind: ServersTransport metadata: name: mytransport namespace: kubernetes-dashboard spec: serverName: "dashboard.cluster.local" insecureSkipVerify: true --- apiVersion: traefik.containo.us/v1alpha1 kind: IngressRoute metadata: name: dashboard-k8s namespace: kubernetes-dashboard spec: entryPoints: - websecure routes: - match: "Host(`dashboard.cluster.local`)" kind: Rule services: - name: kubernetes-dashboard #绑定的后端service port: 443 serversTransport: mytransport tls: secretName: dashboard-tls --- apiVersion: traefik.containo.us/v1alpha1 kind: IngressRoute metadata: name: prometheus-grafana namespace: monitoring spec: entryPoints: - websecure tls: secretName: dashboard-tls routes: - match: Host(`grafana.cluster.local`) kind: Rule services: - name: prometheus-grafana port: 80 --- apiVersion: traefik.containo.us/v1alpha1 kind: IngressRoute metadata: name: hubble-ui namespace: kube-system spec: entryPoints: - websecure tls: secretName: dashboard-tls routes: - match: Host(`hubble.cluster.local`) kind: Rule services: - name: hubble-ui port: 80 #应用 kubectl apply -f web.yaml

其中 k8s dashboard 的服务比较特殊,因为原来就是https,需要配置 insecureSkipVerify。

4.配置本地解析

1 2 3 4

10.*.*.131 traefik.cluster.local 10.*.*.131 grafana.cluster.local 10.*.*.131 dashboard.cluster.local 10.*.*.131 hubble.cluster.local

5.使用域名访问相关服务

traefik: https://traefik.cluster.local

dashboard: https://dashboard.cluster.local/

grafana: https://grafana.cluster.local/

hubble: https://hubble.cluster.local/

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2022-02-08,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1.创建自签证书
  • 2.创建secret
  • 3.暴露服务
  • 4.配置本地解析
  • 5.使用域名访问相关服务
相关产品与服务
容器服务
腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档