kubernetes部署traefik

版权声明:本文为博主原创文章,转载请注明出处。 https://blog.csdn.net/networken/article/details/85953346

Traefik简介

一张图:
在这里插入图片描述

部署Traefik

官方文档:https://docs.traefik.io/user-guide/kubernetes/
项目地址:https://github.com/containous/traefik

部署rbac.yaml

$ wget https://raw.githubusercontent.com/containous/traefik/master/examples/k8s/traefik-rbac.yaml
$ kubectl apply -f traefik-rbac.yaml

部署traefik

$ wget https://raw.githubusercontent.com/containous/traefik/master/examples/k8s/traefik-deployment.yaml
$ kubectl apply -f traefik-deployment.yaml

查看运行的pod

[centos@k8s-master ~]$ kubectl get pod -n kube-system -o wide -l k8s-app=traefik-ingress-lb
NAME                                         READY   STATUS    RESTARTS   AGE     IP            NODE        NOMINATED NODE   READINESS GATES
traefik-ingress-controller-8c8b85bbc-l5cqs   1/1     Running   0          2m24s   10.244.2.44   k8s-node2   <none>           <none>
[centos@k8s-master ~]$ 

查看service,暴露的nodeport为31633

[centos@k8s-master ~]$ kubectl get svc -n kube-system
NAME                      TYPE           CLUSTER-IP       EXTERNAL-IP      PORT(S)                       AGE
......
traefik-ingress-service   NodePort       10.105.235.201   <none>           80:31673/TCP,8080:31633/TCP   3m50s
[centos@k8s-master ~]$ 

访问traefik的dashboard
http://192.168.92.56:31633
在这里插入图片描述

Ingress方式访问taefik dashboard

下载并执行ui.yaml

$ wget https://raw.githubusercontent.com/containous/traefik/master/examples/k8s/ui.yaml
$ kubectl apply -f ui.yaml

查看yaml配置:
包含了一个service和一个ingress规则

[centos@k8s-master ~]$ vim ui.yaml 
---
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: traefik-ui.minikube
    http:
      paths:
      - path: /
        backend:
          serviceName: traefik-web-ui
          servicePort: web

查看ingress

[centos@k8s-master ~]$ kubectl get ingress -n kube-system 
NAME             HOSTS                 ADDRESS   PORTS   AGE
traefik-web-ui   traefik-ui.minikube             80      4m5s
[centos@k8s-master ~]$ 
[centos@k8s-master ~]$ kubectl describe ingress traefik-web-ui -n kube-system 
Name:             traefik-web-ui
Namespace:        kube-system
Address:          
Default backend:  default-http-backend:80 (<none>)
Rules:
  Host                 Path  Backends
  ----                 ----  --------
  traefik-ui.minikube  
                       /   traefik-web-ui:web (10.244.2.44:8080)
Annotations:
  kubectl.kubernetes.io/last-applied-configuration:  {"apiVersion":"extensions/v1beta1","kind":"Ingress","metadata":{"annotations":{},"name":"traefik-web-ui","namespace":"kube-system"},"spec":{"rules":[{"host":"traefik-ui.minikube","http":{"paths":[{"backend":{"serviceName":"traefik-web-ui","servicePort":"web"},"path":"/"}]}}]}}

Events:
  Type    Reason  Age    From                      Message
  ----    ------  ----   ----                      -------
  Normal  CREATE  4m23s  nginx-ingress-controller  Ingress kube-system/traefik-web-ui
[centos@k8s-master ~]$ 
[centos@k8s-master ~]$ kubectl get service -n kube-system 
NAME                      TYPE        CLUSTER-IP       EXTERNAL-IP   PORT(S)                       AGE
......
traefik-web-ui            ClusterIP   10.101.69.218    <none>        80/TCP                        23m
[centos@k8s-master ~]$

修改集群外主机hosts:

192.168.92.56 traefik-ui.minikube
192.168.92.57 traefik-ui.minikube
192.168.92.58 traefik-ui.minikube

域名方式访问:
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/networken/article/details/85953346