概述
Kubernetes实录系列记录文档完整目录参考: Kubernetes实录-目录
相关记录链接地址 :
- 第11篇:kubernetes使用traefik作为反向代理(Deamonset模式)
- 第12篇:kubernetes使用traefik作为反向代理(deployment模式)
上一篇kubernetes使用traefik作为反向代理(Deamonset模式)记录了traefik的Deamonset模式配置方式。本篇文档记录deployment模式配置方式。更多介绍可以参考上一篇文档以及官方网站。
一、使用deployment模式部署traefik(在kubernets worker节点)
1. kubernets环境
主机名称 | ip地址 | 操作系统 | 角色 | 软件版本 | 备注 |
---|---|---|---|---|---|
ejucsmaster-shqs-1 | 10.99.12.201 | CentOS 7.5 | proxy, master | ||
ejucsmaster-shqs-2 | 10.99.12.202 | CentOS 7.5 | proxy, master | ||
ejucsmaster-shqs-3 | 10.99.12.203 | CentOS 7.5 | proxy, master | ||
ejucsnode-shqs-1 | 10.99.12.204 | CentOS 7.5 | worker | ||
ejucsnode-shqs-2 | 10.99.12.205 | CentOS 7.5 | worker | ||
ejucsnode-shqs-2 | 10.99.12.206 | CentOS 7.5 | worker |
2. 从GitHub下载treafik部署文件
mkdir -p kubernets/traefik
cd kubernets/traefik
wget https://github.com/containous/traefik/archive/v1.7.8.zip
unzip v1.7.8.zip
cd traefik-1.7.8/examples/k8s/
# tree
.
├── cheese-default-ingress.yaml
├── cheese-deployments.yaml
├── cheese-ingress.yaml
├── cheese-services.yaml
├── cheeses-ingress.yaml
├── traefik-deployment.yaml # deployment模式文件
├── traefik-ds.yaml
├── traefik-rbac.yaml # rbac
└── ui.yaml # 使用treafik代理traefik-ui的配置文件
这里使用的Deployment,只是用traefik-deployment.yaml,traefik-rbac.yaml , ui.yaml 。
由于上一篇文档已经配置了daemonset模式的traefik,这里官方deployment模式的文件里有与daemonset相同的参数或者对象,导致混淆,因此先清理掉daemonset模式的traefik。[不清理同时存在也是可以的,但需要修改yaml文件将冲突的配置修改掉]
kubectl delete -f ui.yaml
kubectl delete -f traefik-ds.yaml
kubectl delete -f traefik-rbac.yaml
3. 部署traefik
3.1 rbac
kubectl apply -f traefik-rbac.yaml
kubectl get clusterrole
traefik-ingress-controller 7s
3.2 treafik(Deployment)
kubectl apply -f traefik-deployment.yaml
serviceaccount/traefik-ingress-controller created
deployment.extensions/traefik-ingress-controller created
service/traefik-ingress-service created
kubectl get serviceaccount -n kube-system
traefik-ingress-controller 1 15s
kubectl get deployment -n kube-system
traefik-ingress-controller 1/1 1 1 58s
kubectl get pods -n kube-system
traefik-ingress-controller-8c8b85bbc-wd4ms 1/1 Running 0 21s
kubectl get svc -n kube-system
traefik-ingress-service NodePort 10.109.133.132 <none> 80:31197/TCP,8080:32400/TCP 66s
可以看到这个模式treafik,traefik-ui使用使用的nodePort的方式暴露服务的。
traefik: 31197
traefik-ui: 32400
3.3 访问测试
以上treafik deployment 方式部署完成,可以通过nodeIP:NodePort访问traefik-ui,例如10.99.12.201:32400
可以看到目前里面什么都没有,因为我们只是配置好了traefik,但是还没有使用。
4. traefik-ui使用traefik进行代理(相当于一个demo实验)
现在我们使用traefik来代理traefik-ui,我们使用域名traefik-ui.ejuops.com(该域名不存在,使用配置hosts的方式访问).
4.1 配置traefik代理traefik-ui
# cat ui.yaml
# 具体内容根据实际情况修改,例如port,name,host等。
---
apiVersion: v1
kind: Service
metadata:
name: traefik-web-ui
namespace: kube-system
spec:
selector:
k8s-app: traefik-ingress-lb
ports:
- name: web
port: 80
targetPort: 8080
---
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: traefik-web-ui
namespace: kube-system
spec:
rules:
# host根据实际情况进行修改。
- host: traefik-ui.ejuops.com
http:
paths:
- path: /
backend:
serviceName: traefik-web-ui
servicePort: web
kubectl apply -f ui.yaml
kubectl get svc -n kube-system
traefik-web-ui ClusterIP 10.99.211.9 <none> 80/TCP 9s
kubectl get ingress -n kube-system
NAME HOSTS ADDRESS PORTS AGE
traefik-web-ui traefik-ui.ejuops.com 80 21s
4.2 在主机上配置hosts文件(浏览器主机)
# C:WindowsSystem32driversetchosts
...
10.99.12.201 traefik-ui.ejuops.com
4.3 通过域名访问traefik-ui
http://traefik-ui.ejuops.com:31197 [这里不是80端口,不可以省略]可以看到treafik-ui的代理情况(frontends,backends,Health),目前只有这个使用使用了代理。
默认deployment只设置了一个副本,可以根据需要多配置几个副本(直接修改deployment.yaml后kubectl apply -f xx.yaml就可以了,代理会自动发现)。以上使用deploment模式配置treafik完成。
最后
以上就是矮小胡萝卜为你收集整理的Kubernetes实录-第一篇-集群部署配置(15) [归档]kubernetes使用traefik 1.x 作为反向代理(deployment模式)的全部内容,希望文章能够帮你解决Kubernetes实录-第一篇-集群部署配置(15) [归档]kubernetes使用traefik 1.x 作为反向代理(deployment模式)所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复