k8之traefik (ingess)发布服务实战
上篇描述了基于k8集群安装部署traefik作为入口服务,简单演示了一下发布服务,本篇将细节讲述如果结合traefik发布业务服务。
安装部署参考:
https://blog.51cto.com/michaelkang/2429929
版本介绍
<代码> traefik: v1.7 美丽:v1.15.1 代码>
快速部署traefik
如果你的美丽集群已经部署完成,想快速部署traefik,执行命令如下:
<代码> kubectl创建https://raw.githubusercontent.com/containous/traefik/v1.7/examples/k8s/traefik-rbac.yaml - f kubectl创建- f https://raw.githubusercontent.com/containous/traefik/v1.7/examples/k8s/traefik-ds.yaml 执行成功,在浏览器数据一个节点节点的IP地址:8080端口即可看到traefik的管理页面。代码>
实战开始
编写一个业务yaml文件
如果对yaml不太熟悉,看这边:https://blog.51cto.com/michaelkang/2429745
<代码> - - - - - - #配置部署 :部署/v1beta1 apiVersion:扩展 元数据: #设置dm名称 名称:dm-pttest #添加标签pt 标签: 应用:pt 规范: #通过副本声明个仓数是2 副本:2 #通过标签选择被控制的豆荚 选择器: matchLabels: 应用:pt #在模板中定义豆荚 模板: 元数据: #给pod打上标签程序=pt 标签: 应用:pt 规范: 容器: #声明容器名称,注意不是豆荚名称,pod名称应该定义在元数据中 ——名称:myapp 图片:ikubernetes/myapp: v1 港口: - containerPort: 80 --- #服务配置 apiVersion: v1 #声明一个服务资源对象 类型:服务 元数据: #舱名称 名称:svcpttest 标签: 应用:pt 注释: #检查后端服务返回错误率,大于% 50,踢出集群 traefik.backend。断路器:“NetworkErrorRatio()比;0.5” 规范: 港口: ——名称:http 端口:80 选择器: 应用:pt --- #配置入口/v1beta1 apiVersion:扩展 :入口 元数据: 名称:myapp-traefik-ingress 注释: kubernetes.io/入口。类:traefik 规范: 规则: (主持人:pttest.pt.com http: 道路: -路径:/#指定后端服务 后端: 名:svcpttest servicePort: 80 代码>
验证服务
<代码> #查看服务 [root@kubm-02 traefik] # kubectl得到svc - o宽 名字类型集群ip外部ip端口(S)年龄选择器 svcpttest ClusterIP 10.245.148.114 & lt; none>80/TCP 2 m12应用=pt & lt;==标签 #查看集装箱 [root@kubm-02 traefik] # kubectl得到豆荚- o宽 姓名就绪状态重启年龄IP节点节点准备盖茨提名 63年代dm-pttest-6f6cd797f5-cdjk5 1/1运行0 10.244.3.115 kubnode-01 & lt; none>& lt; none> 63年代dm-pttest-6f6cd797f5-tqh64 1/1运行0 10.244.4.135 kubnode-02 & lt; none>& lt; none> #入口信息 [root@kubm-02 traefik] # kubectl入口 主机地址端口名称的年龄 myapp-traefik-ingress pttest.pt.com 80 23 s #部署 [root@kubm-02 traefik] # kubectl得到部署 名称准备最新的可用的年龄 dm-pttest 2/2 2 2 12 m 代码>
验证访问:
请求pttest.pt.com,服务svcpttest会把请求负载给后端的豆荚。
<代码> #请求两次分别返回两个 [root@kubm-02 traefik] # curl - h”主持人:pttest.pt.com http://172.20.101.166/hostname.html dm-pttest-6f6cd797f5-cdjk5 [root@kubm-02 traefik] # curl - h”主持人:pttest.pt.com http://172.20.101.166/hostname.html dm-pttest-6f6cd797f5-tqh64 代码>
扩容节点
kubectl编辑部署dm-pttest
<代码> apiVersion:扩展/v1beta1 :部署 元数据: 注释: deployment.kubernetes。io/修订:“1” creationTimestamp:“2019 - 08 - 16 - t10:13:49z” 代:1 标签: 应用:pt 名称:dm-pttest 名称空间:默认 resourceVersion:“3871589” selfLink:/api/扩展/v1beta1/命名空间//部署/dm-pttest违约 uid: 153 a60fb - 66 - df - 4884 aa9a ac47cebd2c——49 规范: progressDeadlineSeconds: 2147483647 副本:5《=====荚数量,有默认2个,调整到5个 保存退出,k8集群会自动执行;代码>
验证
kubectl得到豆荚
<代码> [root@kubm-02 traefik] # kubectl豆荚 重启名字就绪状态的年龄 dm-pttest-6f6cd797f5-cdjk5 1/1运行0 17米 99年代dm-pttest-6f6cd797f5-qd4cl 1/1运行0 99年代dm-pttest-6f6cd797f5-r25dc 1/1运行0 99年代dm-pttest-6f6cd797f5-tbfmh 1/1运行0 dm-pttest-6f6cd797f5-tqh64 1/1运行0 17米 #请求 [root@kubm-02 traefik] # curl - h”主持人:pttest.pt.com http://172.20.101.166/hostname.html dm-pttest-6f6cd797f5-r25dc [root@kubm-02 traefik] # curl - h”主持人:pttest.pt.com http://172.20.101.166/hostname.html dm-pttest-6f6cd797f5-tbfmh [root@kubm-02 traefik] # curl - h”主持人:pttest.pt.com http://172.20.101.166/hostname.html dm-pttest-6f6cd797f5-tqh64 [root@kubm-02 traefik] # curl - h”主持人:pttest.pt.com http://172.20.101.166/hostname.html dm-pttest-6f6cd797f5-cdjk5 [root@kubm-02 traefik] # curl - h”主持人:pttest.pt.com http://172.20.101.166/hostname.html dm-pttest-6f6cd797f5-qd4cl [root@kubm-02 traefik] # curl - h”主持人:pttest.pt.com http://172.20.101.166/hostname.html dm-pttest-6f6cd797f5-r25dc [root@kubm-02 traefik] # curl - h”主持人:pttest.pt.com http://172.20.101.166/hostname.html dm-pttest-6f6cd797f5-tbfmh美丽之traefik (ingess)发布服务,实战