美丽之traefik (ingess)发布服务,实战

  

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)发布服务,实战