オンプレミスの Kubernetes クラスターがあります。traefik の例に従って、クラスターで traefik を実行しています。これは、ロードバランサーとなるノードに関連付けられています。ルートでノードポートをヒットすることで、実行中のサービスにアクセスできます(イングレスあり)。たとえばhttp://build.mydomain.com:NODEPORTは、私を Jenkins にルーティングします。
しかし、 http://build.mydomain.comと入力するだけで Jenkins をヒットできるようにしたい
これは可能ですか、それともクラスター外でtraefik を実行する必要がありますか?
基本的には、ロード バランサーで 80 に達したすべてのものを traefik イングレス コントローラーにヒットさせたいだけです。これにより、イングレスに基づいてリクエストがルーティングされます。
---
apiVersion: v1
kind: ServiceAccount
metadata:
name: traefik-ingress-controller
namespace: kube-system
---
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
containers:
- image: traefik
name: traefik-ingress-lb
ports:
- name: http
containerPort: 80
- name: admin
containerPort: 8080
args:
- --api
- --kubernetes
- --logLevel=INFO
nodeSelector:
node-role.kubernetes.io/worker: loadbalancer
---
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