5.kubernetes的服务暴露插件-Traefik
目录
部署traefik
在HDSS7-200.host.com上
- [root@hdss7- k8s-yaml]# docker pull traefik:v1.7.2-alpine
- [root@hdss7- k8s-yaml]# docker images |grep traefik
- [root@hdss7- k8s-yaml]# docker tag add5fac61ae5 harbor.fx.com/public/traefik:v1.7.2
- [root@hdss7- k8s-yaml]# docker push harbor.fx.com/public/traefik:v1.7.2
准备资源配置清单
在HDSS7-200.host.com上
- [root@hdss7- traefik]# mkdir -p /data/k8s-yaml/traefik && cd /data/k8s-yaml/traefik
rbac.yaml
- [root@hdss7- traefik]# vim rbac.yaml
- apiVersion: v1
- kind: ServiceAccount
- metadata:
- name: traefik-ingress-controller
- namespace: kube-system
- ---
- apiVersion: rbac.authorization.k8s.io/v1beta1
- kind: ClusterRole
- metadata:
- name: traefik-ingress-controller
- rules:
- - apiGroups:
- - ""
- resources:
- - services
- - endpoints
- - secrets
- verbs:
- - get
- - list
- - watch
- - apiGroups:
- - extensions
- resources:
- - ingresses
- verbs:
- - get
- - list
- - watch
- ---
- kind: ClusterRoleBinding
- apiVersion: rbac.authorization.k8s.io/v1beta1
- metadata:
- name: traefik-ingress-controller
- roleRef:
- apiGroup: rbac.authorization.k8s.io
- kind: ClusterRole
- name: traefik-ingress-controller
- subjects:
- - kind: ServiceAccount
- name: traefik-ingress-controller
- namespace: kube-system
ds.yaml
- [root@hdss7- traefik]# vim ds.yaml
- apiVersion: extensions/v1beta1
- kind: DaemonSet
- metadata:
- name: traefik-ingress
- namespace: kube-system
- labels:
- k8s-app: traefik-ingress
- spec:
- template:
- metadata:
- labels:
- k8s-app: traefik-ingress
- name: traefik-ingress
- spec:
- serviceAccountName: traefik-ingress-controller
- terminationGracePeriodSeconds:
- containers:
- - image: harbor.fx.com/public/traefik:v1.7.2
- name: traefik-ingress
- ports:
- - name: controller
- containerPort:
- hostPort:
- - name: admin-web
- containerPort:
- securityContext:
- capabilities:
- drop:
- - ALL
- add:
- - NET_BIND_SERVICE
- args:
- - --api
- - --kubernetes
- - --logLevel=INFO
- - --insecureskipverify=true
- - --kubernetes.endpoint=https://10.4.7.10:7443
- - --accesslog
- - --accesslog.filepath=/var/log/traefik_access.log
- - --traefiklog
- - --traefiklog.filepath=/var/log/traefik.log
- - --metrics.prometheus
svc.yaml
- [root@hdss7- traefik]# vim svc.yaml
- kind: Service
- apiVersion: v1
- metadata:
- name: traefik-ingress-service
- namespace: kube-system
- spec:
- selector:
- k8s-app: traefik-ingress
- ports:
- - protocol: TCP
- port:
- name: controller
- - protocol: TCP
- port:
- name: admin-web
ingress.yaml
- [root@hdss7- traefik]# vim ingress.yaml
- apiVersion: extensions/v1beta1
- kind: Ingress
- metadata:
- name: traefik-web-ui
- namespace: kube-system
- annotations:
- kubernetes.io/ingress.class: traefik
- spec:
- rules:
- - host: traefik.fx.com
- http:
- paths:
- - path: /
- backend:
- serviceName: traefik-ingress-service
- servicePort:
应用资源配置清单
- [root@hdss7- ~]# kubectl apply -f http://k8s-yaml.fx.com/traefik/rbac.yaml
- [root@hdss7- ~]# kubectl apply -f http://k8s-yaml.fx.com/traefik/ds.yaml
- [root@hdss7- ~]# kubectl apply -f http://k8s-yaml.fx.com/traefik/svc.yaml
- [root@hdss7- ~]# kubectl apply -f http://k8s-yaml.fx.com/traefik/ingress.yaml
检查创建资源
- [root@hdss7- ~]# kubectl get pods -n kube-system
- NAME READY STATUS RESTARTS AGE
- coredns-65cb567d6f-4x5tn / Running 15h
- traefik-ingress-7p7z4 / Running 19m
- traefik-ingress-f6kpc / Running 19m
解析域名
- [root@hdss7- ~]# vim /var/named/fx.com.zone
- $ORIGIN fx.com.
- $TTL ; minutes
- @ IN SOA dns.fx.com. dnsadmin.fx.com. (
- ; serial
- ; refresh ( hours)
- ; retry ( minutes)
- ; expire ( week)
- ; minimum ( day)
- )
- NS dns.fx.com.
- $TTL ; minute
- dns A 10.4.7.11
- harbor A 10.4.7.200
- k8s-yaml A 10.4.7.200
- traefik A 10.4.7.10
- [root@hdss7- ~]# systemctl restart named
配置反向代理
- [root@hdss7- ~]# vim /etc/nginx/conf.d/fx.com.conf
- upstream default_backend_traefik {
- server 10.4.7.21: max_fails= fail_timeout=10s;
- server 10.4.7.22: max_fails= fail_timeout=10s;
- }
- server {
- server_name *.fx.com;
- location / {
- proxy_pass http://default_backend_traefik;
- proxy_set_header Host $http_host;
- proxy_set_header x-forwarded-for $proxy_add_x_forwarded_for;
- }
- }
- [root@hdss7- ~]# nginx -t
- [root@hdss7- ~]# nginx -s reload
注:HDSS7-12.host.com也需要配置nginx
浏览器访问
- http://traefik.fx.com/
5.kubernetes的服务暴露插件-Traefik的更多相关文章
- 第十二章 Kubernetes的服务暴露插件--traefik
1.前言 之前部署的coredns实现了k8s的服务在集群内可以被自动发现,那么如何使得服务在k8s集群外被使用和访问呢? 使用nodeport星的Service:此方法只能使用iptables模型, ...
- K8S(05)核心插件-ingress(服务暴露)控制器-traefik
K8S核心插件-ingress(服务暴露)控制器-traefik 1 K8S两种服务暴露方法 前面通过coredns在k8s集群内部做了serviceNAME和serviceIP之间的自动映射,使得不 ...
- 十一章 Kubernetes的服务发现插件--coredns
1.前言 简单来说,服务发现就是服务(应用)之间相互定位的过程: 服务发现并非云计算时代独有的,传统的单体架构时代也会用到,以下应用场景更加需要服务发现: 服务(应用)的动态性强: 服务(应用)更新发 ...
- 4.kubernetes的服务发现插件-CoreDNS
1.1.部署K8S内网资源清单http服务 1.2.部署coredns 部署K8S内网资源清单http服务 在运维主机HDSS7-200.host.com上,配置一个nginx虚拟主机,用以提高k8s ...
- kubernetes进阶(四)服务暴露-ingress控制器之traefik
上一章我们测试了在集群内部解析service名称, 下面我们测试在集群外部解析: 根本解析不到,因为我们外部用的dns是10.4.7.11,也就是我们的自建bind dns,这个DNS服务器上也没有响 ...
- Kubernetes 服务入口管理 Traefik Ingress Controller
前面部署了 kubernetes/ingress-nginx 作为 Ingress Controller,使用 Nginx 反向代理与负载,通过 Ingress Controller 不断的跟 Kub ...
- 容器云平台No.4~kubernetes 服务暴露之Ingress
这是容器云平台第四篇,接上一篇继续, 首先kubernetes服务暴露有如下几种方式: NodePort Loadbalance ClusterIP Ingress 本文紧贴第一篇架构图,只介绍Ing ...
- 初试 Kubernetes 集群中使用 Traefik 反向代理
初试 Kubernetes 集群中使用 Traefik 反向代理 2017年11月17日 09:47:20 哎_小羊_168 阅读数:12308 版权声明:本文为博主原创文章,未经博主允许不得转 ...
- Dubbo 服务暴露注册流程
Dubbo的应用会在启动时完成服务注册或订阅(不论是生产者,还是消费者)如下图所示. 图中小方块Protocol, Cluster, Proxy, Service, Container, Regist ...
随机推荐
- JavaSE案例-Bank
项目介绍 完成基本的银行业务功能 存款 取款 转账 查询余额 修改密码 修改预留手机号 注销账号 退出 任务分解: 定义三个基本类: BankTest():银行业务主程序 Bank(): 银行类,包含 ...
- GC总结
概述 GC(Garbage Collection),需要完成的3件事 哪些内存需要回收? 什么时候回收? 如何回收? 为什么需要了解GC和内存分配?更好的监控和调节 排查各种内存溢出,内存泄漏 避免G ...
- [Unity2d系列教程] 006.Unity如何根据图片自动生成Animator
Unity制作2D产品的时候,我们在制作动画的时候,要不断的生成Animation,Animator等等资源,如果动画一多的话,就变得麻烦.由于Unity是支持插件开发的,我们可以添加一个Editor ...
- JavaScript ——内部函数和匿名函数
在JS中,函数是一种数据类型,可以将它赋值给变量,因此函数可以这样创建: var func=function(){ alert("func"); } func(); 既然函数是一种 ...
- 2020年,为什么我们应该使用abapGit代替SAPLink
SAPLink是一个帮助人们分享开发内容的工具.通过它,人们可以将ABAP开发对象从一个系统打包下载.再上传到另一个系统中.对于各种类型的开发者,它都可以起到作用: 有的开发者喜欢在不同的项目中复制相 ...
- C#线程 线程进阶
第四部分:高级线程 非阻塞同步 前面我们说过,即使在分配或增加字段的简单情况下,也需要同步.尽管锁定始终可以满足此需求,但是竞争性锁定意味着线程必须阻塞,从而遭受上下文切换的开销和调度的延迟,这在高度 ...
- Vue 全选/取消全选,反选/取消反选
这是一个组件: <template> <div> <div> <input type="checkbox" v-model="i ...
- css 图片宽度、居中、倒影
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- Chisel3 - bind - Binding
https://mp.weixin.qq.com/s/2318e6VJ4wFGpWwBOmTikA Chisel数据类型(Data)与Module的绑定关系,根据Data的使用方式不同,而有多种绑 ...
- 点击label时text输入框被选中
当点击label标签时,能够选中与其对应的输入框,有2种方式,采用第一种时会产生太多的id,推荐第二种. <form action="03.php"> <labe ...