版权声明:本文为博主原创文章,转载请注明出处。 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
域名方式访问: