Kubernetes实录-第一篇-集群部署配置(14) [归档]kubernetes使用traefik 1.x 作为反向代理(Deamonset模式)

Kubernetes实录系列记录文档完整目录参考: Kubernetes实录-目录

相关记录链接地址 :

建议:
traefik已经更到了2.x版本,采用kubernetes CRD方式配置,功能比traefik 1.x 强大很多,可以直接配置traefik 2.x版本`

一、使用DaemonSet模式部署traefik 1.x(在kubernetes master节点)

1. kubernetes环境

主机名称ip地址操作系统角色软件版本备注
ejucsmaster-shqs-110.99.12.201CentOS 7.5proxy, master,traefikDaemonSet
ejucsmaster-shqs-210.99.12.202CentOS 7.5proxy, master,traefikDaemonSet
ejucsmaster-shqs-310.99.12.203CentOS 7.5proxy, master,traefikDaemonSet
ejucsnode-shqs-110.99.12.204CentOS 7.5worker
ejucsnode-shqs-210.99.12.205CentOS 7.5worker
ejucsnode-shqs-210.99.12.206CentOS 7.5worker

2. 从GitHub下载treafik部署文件

mkdir -p kubernetes/traefik
cd kubernetes/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
	├── traefik-ds.yaml          # DaemonSet模式文件
	├── traefik-rbac.yaml        # rbac
	└── ui.yaml                  # 使用treafik代理traefik-ui的配置文件

这里使用的DaemonSet,只是用traefik-ds.yaml ,traefik-rbac.yaml , ui.yaml

3. 部署traefik

3.1 rbac
kubectl apply -f traefik-rbac.yaml

kubectl get clusterrole
	traefik-ingress-controller                                             3h29m
3.2 treafik

github上下载的部署文件traefik-ds.yaml,会在所有节点部署traefik,而我们只需要在3个master节点部署,因此需要添加nodeSelector过滤。

# cat traefik-ds.yaml
# ...
kind: DaemonSet
apiVersion: extensions/v1beta1
# ...
spec:
  template:
    # ...
    spec:
      serviceAccountName: traefik-ingress-controller
      terminationGracePeriodSeconds: 60
      #=================添加nodeSelector信息:只在master节点创建===================
      tolerations:
      - key: node-role.kubernetes.io/master
        operator: "Equal"
        value: ""
        effect: NoSchedule
      nodeSelector:
        node-role.kubernetes.io/master: ""
      #=========================================================================
      containers:
      - image: traefik
        name: traefik-ingress-lb
        # ...
kubectl apply -f traefik-ds.yaml

kubectl get svc -n kube-system
	traefik-ingress-service                                  ClusterIP   10.107.214.109   <none>        80/TCP,8080/TCP   4h37m

kubectl get pods -n kube-system -o wide
	traefik-ingress-controller-4dcwd             1/1     Running   0          4h38m   192.168.2.4    ejucsmaster-shqs-3   <none>           <none>
	traefik-ingress-controller-dc5s4             1/1     Running   0          4h38m   192.168.1.3    ejucsmaster-shqs-2   <none>           <none>
	traefik-ingress-controller-dmn5w             1/1     Running   0          4h38m   192.168.0.4    ejucsmaster-shqs-1   <none>           <none>
3.3 访问测试

以上treafik daemonset方式部署完成,可以通过master_ip:8080访问traefik-ui,例如10.99.12.201:8080
可以看到目前里面什么都没有,因为我们只是配置好了traefik,但是还没有使用。
在这里插入图片描述

4. traefik-ui使用traefik进行代理(相当于一个demo实验)

上面3.3节使用的是master_ip:8080(traefik_ui服务端口,可以修改),现在我们使用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.107.53.86     <none>        80/TCP            2s

kubectl get ingress -n kube-system
	NAME             HOSTS                   ADDRESS   PORTS   AGE
	traefik-web-ui   traefik-ui.ejuops.com             80      29s
4.2 在主机上配置hosts文件(浏览器主机)
# C:\Windows\System32\drivers\etc\hosts
...
10.99.12.201 traefik-ui.ejuops.com
4.3 通过域名访问traefik-ui

http://traefik-ui.ejuops.com 可以看到treafik-ui的代理情况(frontends,backends,Health),目前只有这个使用使用了代理。
在这里插入图片描述

以上使用daemonset配置treafik完成。

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值