diff --git a/traefikdemo/ingress.yaml b/traefikdemo/ingress.yaml new file mode 100644 index 0000000000000000000000000000000000000000..5af1c17335c0c23fd0c5f5e2bc88c2899f97c595 --- /dev/null +++ b/traefikdemo/ingress.yaml @@ -0,0 +1,15 @@ +apiVersion: extensions/v1beta1 +kind: Ingress +metadata: + name: traefik-web-ui + namespace: kube-system + annotations: + kubernetes.io/ingress.class: traefik +spec: + rules: + - host: traefik.haimaxy.com + http: + paths: + - backend: + serviceName: traefik-ingress-service + servicePort: admin diff --git a/traefikdemo/rbac.yaml b/traefikdemo/rbac.yaml new file mode 100644 index 0000000000000000000000000000000000000000..ac18f4f3e021ab732c35a20ee6ed49b5c73bb95b --- /dev/null +++ b/traefikdemo/rbac.yaml @@ -0,0 +1,44 @@ +--- +apiVersion: v1 +kind: ServiceAccount +metadata: + name: traefik-ingress-controller + namespace: kube-system + +--- +kind: ClusterRole +apiVersion: rbac.authorization.k8s.io/v1beta1 +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 diff --git a/traefikdemo/traefik.yaml b/traefikdemo/traefik.yaml new file mode 100644 index 0000000000000000000000000000000000000000..09a8ca746faddd398fad2294536135c1c645b5b0 --- /dev/null +++ b/traefikdemo/traefik.yaml @@ -0,0 +1,55 @@ +--- +kind: Deployment +apiVersion: extensions/v1beta1 +metadata: + name: traefik-ingress-controller + namespace: kube-system + labels: + k8s-app: traefik-ingress-lb +spec: + replicas: 1 + selector: + matchLabels: + k8s-app: traefik-ingress-lb + template: + metadata: + labels: + k8s-app: traefik-ingress-lb + name: traefik-ingress-lb + spec: + serviceAccountName: traefik-ingress-controller + terminationGracePeriodSeconds: 60 + tolerations: + - operator: "Exists" + nodeSelector: + kubernetes.io/hostname: master + containers: + - image: traefik + name: traefik-ingress-lb + ports: + - name: http + containerPort: 80 + hostPort: 80 + - name: admin + containerPort: 8080 + args: + - --api + - --kubernetes + - --logLevel=INFO +--- +kind: Service +apiVersion: v1 +metadata: + name: traefik-ingress-service + namespace: kube-system +spec: + selector: + k8s-app: traefik-ingress-lb + ports: + - protocol: TCP + port: 80 + name: web + - protocol: TCP + port: 8080 + name: admin + type: NodePort