玩转K8S之如何访问业务应用(Traefik-ingress篇)
先介绍下什么是Traefik,Traefik是一个为了让部署微服务更加便捷而诞生的现代HTTP反向代理、负载均衡工具。 它支持多种后台 (Docker, Swarm, Kubernetes, Marathon, Mesos, Consul, Etcd, Zookeeper, BoltDB, Rest API, file…) 来自动化、动态的应用它的配置文件设置。
为什么比较偏向域Traefik呢,下面来简单对比下。
ingress:
使用nginx作为前端负载均衡,通过ingress controller不断的和kubernetes api交互,实时获取后端service,pod等的变化,然后动态更新nginx配置,并刷新使配置生效,达到服务发现的目的。
traefik:
traefik本身设计的就能够实时跟kubernetes api交互,感知后端service,pod等的变化,自动更新配置并重载。
相对来说traefik更快速方便,同时支持更多的特性,使反向代理,负载均衡更直接更高效。
来看看如何部署,很简单先把源码clone下来。
1 |
|
来看看目录下都有什么,顺便找到对应的K8S文件。
1 2 3 4 5 6 7 8 |
|
OK,到这一层就找到了所需的文件,一般呢只需要两个文件,第一个就是deployment和rbac。
原因呢很简单,在第一篇部署的时候我们就说了,由于在Kubernets1.6之后启用了RBAC鉴权机制,所以需配置ClusterRole以及ClusterRoleBinding来对api-server的进行相应权限的鉴权。
那rbac这个文件呢就是创建ClusterRole和ClusterRoleBinding的,至于deployment文件这里就不说了,相信看到本篇文章的童鞋已经对K8S有了基本认识。
开始创建rbac
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
|
可以看到clusterrole,clusterrolebinding都创建成功了,下面创建Traefik。
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 |
|
可以看到service和pod都起来了。
刚才前面也说到了有个非常简洁漂亮的界面,非常适合运维统计管理,下面来看看。
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 |
|
刚才发布了一个traefix-web-ui的ingress,接下来我们就可以通过域名了访问了,玩过K8S的相信都能看懂刚才ui-ingress那个yml文件里面有一个域名,名为traefik-ui.minikube,后端traefix-web-ui的service,可以看到关联到了pod地址10.0.100.203:8080和10.0.100.204:8080。
下面我们修改本机hosts文件,使我们可以通过traefik-ui.minikube域名来访问traefix-ui
好了本文到此结束,本篇文章只是初步实现了Traefix的http访问代理,怎么让traefix实现https代理以及怎么对traefix进行更多的配置,将在后续的博文中来讨论。
本文转自中文社区-玩转K8S之如何访问业务应用(Traefik-ingress篇)
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
Kubernetes-应用部署问题定位和处理
1、应用部署问题处理的整体思路 在将容器化的应用部署到Kubernetes集群中,可能会出现各种问题。根据Kubernetes的架构设计原理,容器化应用对外提供服务出现的主要问题在三个点上: 1)应用本身的问题:此问题为应用本身的问题,不在此文中进行详细的阐述; 2)作为容器化应用逻辑主机的Pod的问题:此部分的问题主要涉及到容器化应用是否在容器云中正常部署和运行,这里会涉及到CPU、内存、存储资源等问题; 3)代理容器化应用服务的问题:第三方服务或用户会通过代理服务访问容器化应用,如果代理服务存在问题,则容器云应用将无法对外提供服务能力,这里会涉及到服务是否存在、DNS解析是否正确等问题。 在本文中,以部署的高可用MySQL(请参考:Kubernetes-部署高可用的MySQL)为例展示如何进行问题定位和处理。另外为了能够在Kubernetes集群外访问MySQL数据库,对外暴露了MySQL master的NodePort类型服务,服务名称为mysql-0-svc。 2、调试Pods 在调试Pod之前,通过kubectl get pods命令查看一下Pod的运行状态。 $ kubec...
- 下一篇
深入浅出kubernetes之device-plugins
记得大学刚毕业那年看了侯俊杰的《深入浅出MFC》,就对深入浅出这四个字特别偏好,并且成为了自己对技术的要求标准——对于技术的理解要足够的深刻以至于可以用很浅显的道理给别人讲明白。以下内容为个人见解,如有雷同,纯属巧合,如有错误,烦请指正。 本文基于kubernetes1.11版本,后续会根据kubernetes版本更新及时更新文档,所有代码引用为了简洁都去掉了日志打印相关的代码,尽量只保留有价值的内容。 延续我个人风格,在个人发挥前,先看看官方对于device-plugins的定义是什么? Starting in version 1.8, Kubernetes provides a device plugin framework for vendors to advertise their resources to the kubelet without changing Kubernetes core code. Instead of writing custom Kubernetes code, vendors can implement a device plugin that ...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- CentOS8编译安装MySQL8.0.19
- Windows10,CentOS7,CentOS8安装Nodejs环境
- CentOS7编译安装Cmake3.16.3,解决mysql等软件编译问题
- Eclipse初始化配置,告别卡顿、闪退、编译时间过长
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- SpringBoot2整合Thymeleaf,官方推荐html解决方案
- SpringBoot2整合Redis,开启缓存,提高访问速度
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- CentOS7,8上快速安装Gitea,搭建Git服务器
- Docker安装Oracle12C,快速搭建Oracle学习环境