Guest User

Untitled

a guest
Aug 20th, 2025
4
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.35 KB | None | 0 0
  1. spiderunderurbed@raspberrypi:~/k8s $ cat traefik.yaml
  2. #apiVersion: traefik.io/kind: IngressRoute
  3. #metadata:
  4. # name: traefik-dashboard
  5. # namespace: kube-system
  6. #spec:
  7. # entryPoints:
  8. # - web
  9. # - websecure
  10. # routes:
  11. # - kind: Rule
  12. # match: Host(`traefik.spidershomelab.xyz`) && (PathPrefix(`/dashboard`) || PathPrefix(`/api`))
  13. # services:
  14. # - kind: TraefikService
  15. # name: api@internal
  16. ---
  17. # Update your existing traefik.yaml with this fixed version
  18. apiVersion: traefik.io/v1alpha1
  19. kind: IngressRoute
  20. metadata:
  21. name: traefik-dashboard
  22. namespace: kube-system
  23. spec:
  24. entryPoints:
  25. - web
  26. - websecure
  27. routes:
  28. - match: Host(`traefik.spidershomelab.xyz`) || (Host(`192.168.0.22`) && (PathPrefix(`/dashboard`) || PathPrefix(`/api`))) || (Host(`192.168.68.77`) && (PathPrefix(`/dashboard`) || PathPrefix(`/api`))) || (Host(`192.168.1.22`) && (PathPrefix(`/dashboard`) || PathPrefix(`/api`)))
  29. kind: Rule
  30. services:
  31. - name: api@internal
  32. kind: TraefikService
  33. ---
  34. # Optional: Create an Ingress for easier access
  35. #apiVersion: networking.k8s.io/v1
  36. #kind: Ingress
  37. #metadata:
  38. # name: traefik-dashboard-ingress
  39. # namespace: kube-system
  40. # annotations:
  41. # kubernetes.io/ingress.class: traefik
  42. #spec:
  43. # rules:
  44. # - host: traefik.spidershomelab.xyz
  45. # http:
  46. # paths:
  47. # - path: /
  48. # pathType: Prefix
  49. # backend:
  50. # service:
  51. # name: traefik
  52. # port:
  53. # number: 8000
  54. spiderunderurbed@raspberrypi:~/k8s $ cat traefik-setup.yaml
  55. ---
  56. apiVersion: v1
  57. kind: ServiceAccount
  58. metadata:
  59. name: traefik
  60. namespace: default
  61. ---
  62. apiVersion: rbac.authorization.k8s.io/v1
  63. kind: ClusterRole
  64. metadata:
  65. name: traefik-role
  66. rules:
  67. - apiGroups: [""]
  68. resources:
  69. - services
  70. - secrets
  71. - nodes
  72. - configmaps
  73. verbs:
  74. - get
  75. - list
  76. - watch
  77. - apiGroups: ["networking.k8s.io"]
  78. resources:
  79. - ingresses
  80. - ingressclasses
  81. verbs:
  82. - get
  83. - list
  84. - watch
  85. - apiGroups: ["discovery.k8s.io"]
  86. resources:
  87. - endpointslices
  88. verbs:
  89. - get
  90. - list
  91. - watch
  92. - apiGroups: ["traefik.io"]
  93. resources:
  94. - middlewares
  95. - middlewaretcps
  96. - ingressroutes
  97. - ingressrouteudps
  98. - traefikservices
  99. - serverstransports
  100. - serverstransporttcps
  101. - tlsoptions
  102. - tlsstores
  103. - ingressroutetcps
  104. verbs:
  105. - get
  106. - list
  107. - watch
  108. ---
  109. apiVersion: rbac.authorization.k8s.io/v1
  110. kind: ClusterRoleBinding
  111. metadata:
  112. name: traefik-role-binding
  113. roleRef:
  114. apiGroup: rbac.authorization.k8s.io
  115. kind: ClusterRole
  116. name: traefik-role
  117. subjects:
  118. - kind: ServiceAccount
  119. name: traefik
  120. namespace: default
  121. ---
  122. apiVersion: apps/v1
  123. kind: Deployment
  124. metadata:
  125. name: traefik
  126. namespace: default
  127. spec:
  128. # replicas: 2 # run Traefik on all nodes, adjust to number of nodes
  129. selector:
  130. matchLabels:
  131. app: traefik
  132. template:
  133. metadata:
  134. labels:
  135. app: traefik
  136. spec:
  137. serviceAccountName: traefik
  138. nodeSelector:
  139. kubernetes.io/hostname: raspberrypi
  140. # nodeSelector removed to allow scheduling on all nodes
  141. containers:
  142. - name: traefik
  143. image: traefik:v3.4.0
  144. args:
  145. - --api.insecure=true
  146. - --api.dashboard=true
  147. - --entryPoints.web.address=:80
  148. - --entryPoints.websecure.address=:443
  149. - --entryPoints.dashboard.address=:8085
  150. - --providers.kubernetescrd
  151. - --providers.kubernetesingress
  152. - --log.level=DEBUG
  153. ports:
  154. - name: web
  155. containerPort: 80
  156. - name: websecure
  157. containerPort: 443
  158. - name: dashboard
  159. containerPort: 8085
  160. ---
  161. apiVersion: v1
  162. kind: Service
  163. metadata:
  164. name: traefik
  165. namespace: default
  166. spec:
  167. type: LoadBalancer
  168. selector:
  169. app: traefik
  170. ports:
  171. - name: web
  172. port: 80
  173. targetPort: 80
  174. - name: websecure
  175. port: 443
  176. targetPort: 443
  177. - name: dashboard
  178. port: 8085
  179. targetPort: 8085
  180. # externalTrafficPolicy: Local # preserve client IP
  181. spiderunderurbed@raspberrypi:~/k8s $
Advertisement
Add Comment
Please, Sign In to add comment