Ingress:

ingress是从kubernetes集群外访问集群的入口,将用户的URL请求转发到不同的service上。Ingress相当于nginx、apache等负载均衡方向代理服务器,其中还包括规则定义,即URL的路由信息,路由信息得的刷新由Ingress controller来提供。

Ingress Controller 实质上可以理解为是个监视器,Ingress Controller 通过不断地跟 kubernetes API 打交道,实时的感知后端 service、pod 等变化,比如新增和减少 pod,service 增加与减少等;当得到这些变化信息后,Ingress Controller 再结合下文的 Ingress 生成配置,然后更新反向代理负载均衡器,并刷新其配置,达到服务发现的作用。

Traefik

Traefik是一款开源的反向代理与负载均衡工具。它最大的优点是能够与常见的微服务系统直接整合,可以实现自动化动态配置。

部署Traefik

①创建ingress-rbac.yaml.将用于service account验证。
apiVersion: v1
kind: ServiceAccount
metadata:name: ingressnamespace: default---kind: ClusterRoleBinding
apiVersion: rbac.authorization.k8s.io/v1beta1
metadata:name: ingress
subjects:- kind: ServiceAccountname: ingressnamespace: default
roleRef:kind: ClusterRolename: cluster-adminapiGroup: rbac.authorization.k8s.io
②创建DaemonSet

我们使用DaemonSet类型来部署Traefik,并使用nodeSelector来限定Traefik所部署的主机。

kubectl label nodes 172.20.0.113 edgenode=true
apiVersion: extensions/v1beta1
kind: DaemonSet
metadata:name: traefik-ingress-lbnamespace: defaultlabels:k8s-app: traefik-ingress-lb
spec:template:metadata:labels:k8s-app: traefik-ingress-lbname: traefik-ingress-lbspec:terminationGracePeriodSeconds: 60hostNetwork: truerestartPolicy: AlwaysserviceAccountName: ingresscontainers:- image: traefikname: traefik-ingress-lbresources:limits:cpu: 600mmemory: 90Mirequests:cpu: 300mmemory: 90Miports:- name: httpcontainerPort: 80hostPort: 80- name: admincontainerPort: 8580hostPort: 8580args:- --web- --web.address=:8580- --kubernetesnodeSelector:edgenode: "true"
③创建名为traefik-ingress的ingress,文件名ingress.yaml

首先,我们先创建一个pod和一个services,为负载做准备

//创建pod
kubectl run first-deployment --image=katacoda/docker-http-server --port=80
//创建对应services
kubectl expose deployment first-deployment --port=80


之后,定义一个ingress实现负载

apiVersion: extensions/v1beta1
kind: Ingress
metadata:name: traefik-ingressnamespace: default
spec:rules:- host: traefik.nginx.iohttp:paths:- path: /backend:serviceName: first-deploymentservicePort: 80
④Traefik UI

使用下面的yaml配置来创建Traefik的Web UI。

apiVersion: v1
kind: Service
metadata:name: traefik-web-uinamespace: default
spec:selector:k8s-app: traefik-ingress-lbports:- name: webport: 80targetPort: 8580
---
apiVersion: extensions/v1beta1
kind: Ingress
metadata:name: traefik-web-uinamespace: default
spec:rules:- host: traefik-ui.localhttp:paths:- path: /backend:serviceName: traefik-web-uiservicePort: web

⑤启动

kubectl create -f .

启动之后,发现多了ingress和daemonSet

在浏览器中测试,说明部署正确

左侧黄色部分部分列出的是所有的rule,右侧绿色部分是所有的pod

测试是否真能够集群外访问:

在集群的任意一个节点上执行。假如我要访问traefik.nginx.io。

curl -H Host:traefik.nginx.io http://192.168.204.144/


如果你需要在kubernetes集群以外访问就需要设置DNS,或者修改主机(集群外的机器)的hosts文件。文件在/etc/hosts

192.168.204.144 traefik.nginx.io

访问traefik.nginx.io这些地址的流量都会发送给192.168.204.144这台主机,就是我们启动traefik的主机。

Traefik会解析http请求header里的Host参数将流量转发给Ingress配置里的相应service。

修改hosts后就就可以在kubernetes集群外访问以上service,如下图:

k8s部署Traefik相关推荐

  1. K8S部署Traefik与Ingress、IngressRoute——筑梦之路

    两种方式: Traefik+Ingress 官方文档:Kubernetes Ingress Routing Configuration - Traefik Traefik+IngressRoute 官 ...

  2. k8s中部署traefik并开启https支持

    k8s中部署traefik并开启https支持 k8s现在已经是容器编排领域的事实标准了,而在我们部署k8s集群时,ingress组件是必不可少的,在k8s领域,做的比较好的ingress组件就是tr ...

  3. Kubernetes 部署 Traefik Ingress 控制器 (1.7.12)

    目录[-] . 一.Ingress 介绍 . 二.Traefik 介绍 . 三.部署 Ingress 控制器 Traefik . 1.Traefik 两种部署方式介绍 . 2.创建 Traefik 配 ...

  4. 在 Kubernetes 上部署 Traefik Ingress

    Traefik 介绍 简单的说,Ingress 就是从 Kubernetes 集群外访问集群的入口,将用户的 URL 请求转发到不同的 Service上.Ingress 相当于 Nginx.Apach ...

  5. k8s整合Traefik

    k8s整合Traefik 介绍 公司的k8s云测试环境,集群和核心组件研究部署的差不多了,此处用阿里云进行模拟,记录安装traefik过程 Traefik 是一个开源的可以使服务发布变得轻松有趣的边缘 ...

  6. 在Rancher 1.6上部署Traefik负载均衡器

    一.给Traefik主机打标签 01-给即将部署Traefik的主机节点打上标签.jpg 02-主机打完traefik_lb标签后的状态.jpg 二.在Rancher应用商店中部署Traefik 应用 ...

  7. K8S部署工具:KubeOperator集群导入

    K8S部署工具:KubeOperator集群导入 基本信息⚓︎ 输入要导入集群的名称.Api Server.Router.Token 示例 Api Server: https://172.16.10. ...

  8. K8S部署工具:KubeOperator集群部署

    K8S部署工具:KubeOperator集群部署 集群信息⚓︎ 项目: 选择集群所属项目 供应商: 支持裸金属(手动模式)和部署计划(自动模式) 版本: 支持版本管理中最新的两个 Kubernetes ...

  9. K8S部署工具:KubeOperator集群规划-手动模式

    K8S部署工具:KubeOperator集群规划-手动模式 KubeOperator 支持两种 Kubernetes 集群部署方式,一种是手动模式,另外一种是自动模式.手动模式下,用户需要自行准备主机 ...

最新文章

  1. Tips——IndexSearcher自动更新
  2. linux下date -d,linux date -d的一些用法
  3. linux命令:系统裁剪之五dropbear嵌入式系统专用ssh服务
  4. C代码+汇编 C的 函数汇编学习分析 rep stos dword ptr [edi]
  5. php查询表导出excel文件路径,Thinkphp5如何将导出的excel表格存储到服务器中项目目录的指定目录中?...
  6. PCB布局,布线技巧总结
  7. Linux笔记-rpm与yum的基本概念
  8. SQL中的函数 •Aggregate 函数 •Scalar 函数
  9. hdu 3923 Invoker
  10. Java基础学习总结(49)——Excel导入导出工具类
  11. 【计算几何】bzoj2338 [HNOI2011]数矩形
  12. 官宣,PyTorch 1.0 稳定版本现已推出
  13. 【Mybatis】Mybatis三大组件之ResultSetHandler
  14. 汇川plc c语言,汇川小型PLC梯形图编程教程(十):输入输出继电器X和Y元件及常开常闭触点介绍...
  15. NetApp存储常用检查命令
  16. 家庭亲戚关系计算器微信小程序源码
  17. php文字加边框,图片加特效文字 图片添加各种边框的文字效果 如果有多种边框模板就更好了...
  18. 网络编程培训之六 使用原始套接字实现Ping
  19. 利用python爬取知乎评论_一个简单的python爬虫,爬取知乎
  20. hibernate学习(4)——实体配置详解

热门文章

  1. mac安装正在计算机,怎么在mac电脑上装windows10系统?一招mac安装Windows10的方法
  2. [RK3288 Android7.1.2 ]新增wifi模块ap6256
  3. uni-app自适应遇到的坑
  4. 金山WPS支持xlookup了?亲自上手实战好不好用。
  5. Java输入输出(IO)和流的基本概念以及几种方法
  6. “python”自测100题,快收藏起来吧!
  7. linux下的抓图工具
  8. Omni Converter全能转换器 for Mac(全能视频转换工具)v1.0.3中文BAN的特点
  9. python和编辑器一块安装_python环境搭建与编辑器安装
  10. 基因共表达网络分析java,WGCNA:加权基因共表达网络分析