k8s部署Traefik
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相关推荐
- K8S部署Traefik与Ingress、IngressRoute——筑梦之路
两种方式: Traefik+Ingress 官方文档:Kubernetes Ingress Routing Configuration - Traefik Traefik+IngressRoute 官 ...
- k8s中部署traefik并开启https支持
k8s中部署traefik并开启https支持 k8s现在已经是容器编排领域的事实标准了,而在我们部署k8s集群时,ingress组件是必不可少的,在k8s领域,做的比较好的ingress组件就是tr ...
- Kubernetes 部署 Traefik Ingress 控制器 (1.7.12)
目录[-] . 一.Ingress 介绍 . 二.Traefik 介绍 . 三.部署 Ingress 控制器 Traefik . 1.Traefik 两种部署方式介绍 . 2.创建 Traefik 配 ...
- 在 Kubernetes 上部署 Traefik Ingress
Traefik 介绍 简单的说,Ingress 就是从 Kubernetes 集群外访问集群的入口,将用户的 URL 请求转发到不同的 Service上.Ingress 相当于 Nginx.Apach ...
- k8s整合Traefik
k8s整合Traefik 介绍 公司的k8s云测试环境,集群和核心组件研究部署的差不多了,此处用阿里云进行模拟,记录安装traefik过程 Traefik 是一个开源的可以使服务发布变得轻松有趣的边缘 ...
- 在Rancher 1.6上部署Traefik负载均衡器
一.给Traefik主机打标签 01-给即将部署Traefik的主机节点打上标签.jpg 02-主机打完traefik_lb标签后的状态.jpg 二.在Rancher应用商店中部署Traefik 应用 ...
- K8S部署工具:KubeOperator集群导入
K8S部署工具:KubeOperator集群导入 基本信息⚓︎ 输入要导入集群的名称.Api Server.Router.Token 示例 Api Server: https://172.16.10. ...
- K8S部署工具:KubeOperator集群部署
K8S部署工具:KubeOperator集群部署 集群信息⚓︎ 项目: 选择集群所属项目 供应商: 支持裸金属(手动模式)和部署计划(自动模式) 版本: 支持版本管理中最新的两个 Kubernetes ...
- K8S部署工具:KubeOperator集群规划-手动模式
K8S部署工具:KubeOperator集群规划-手动模式 KubeOperator 支持两种 Kubernetes 集群部署方式,一种是手动模式,另外一种是自动模式.手动模式下,用户需要自行准备主机 ...
最新文章
- Tips——IndexSearcher自动更新
- linux下date -d,linux date -d的一些用法
- linux命令:系统裁剪之五dropbear嵌入式系统专用ssh服务
- C代码+汇编 C的 函数汇编学习分析 rep stos dword ptr [edi]
- php查询表导出excel文件路径,Thinkphp5如何将导出的excel表格存储到服务器中项目目录的指定目录中?...
- PCB布局,布线技巧总结
- Linux笔记-rpm与yum的基本概念
- SQL中的函数 •Aggregate 函数 •Scalar 函数
- hdu 3923 Invoker
- Java基础学习总结(49)——Excel导入导出工具类
- 【计算几何】bzoj2338 [HNOI2011]数矩形
- 官宣,PyTorch 1.0 稳定版本现已推出
- 【Mybatis】Mybatis三大组件之ResultSetHandler
- 汇川plc c语言,汇川小型PLC梯形图编程教程(十):输入输出继电器X和Y元件及常开常闭触点介绍...
- NetApp存储常用检查命令
- 家庭亲戚关系计算器微信小程序源码
- php文字加边框,图片加特效文字 图片添加各种边框的文字效果 如果有多种边框模板就更好了...
- 网络编程培训之六 使用原始套接字实现Ping
- 利用python爬取知乎评论_一个简单的python爬虫,爬取知乎
- hibernate学习(4)——实体配置详解
热门文章
- mac安装正在计算机,怎么在mac电脑上装windows10系统?一招mac安装Windows10的方法
- [RK3288 Android7.1.2 ]新增wifi模块ap6256
- uni-app自适应遇到的坑
- 金山WPS支持xlookup了?亲自上手实战好不好用。
- Java输入输出(IO)和流的基本概念以及几种方法
- “python”自测100题,快收藏起来吧!
- linux下的抓图工具
- Omni Converter全能转换器 for Mac(全能视频转换工具)v1.0.3中文BAN的特点
- python和编辑器一块安装_python环境搭建与编辑器安装
- 基因共表达网络分析java,WGCNA:加权基因共表达网络分析