Traefik是一種功能強(qiáng)大的Ingress Controller,它是基于Go語言開發(fā)的,并且支持自動發(fā)現(xiàn)和自我配置。Traefik支持多種路由和負(fù)載均衡算法,并且具有內(nèi)置的TLS終止和Websocket支持等功能。在本文中,我們將介紹如何使用Traefik安裝和配置Ingress資源。
(資料圖片僅供參考)
安裝Traefik需要執(zhí)行以下步驟:
添加Traefik Chart存儲庫
helm repo add traefik https://helm.traefik.io/traefik
更新存儲庫
helm repo update
創(chuàng)建Traefik命名空間
kubectl create namespace traefik
安裝Traefik
helm install traefik traefik/traefik --namespace=traefik
這將安裝Traefik,并創(chuàng)建一個名為traefik
的命名空間。
完成安裝Traefik之后,您需要創(chuàng)建Ingress資源以路由流量到相應(yīng)的Service對象。要創(chuàng)建Ingress資源,請編寫Ingress YAML文件,并使用kubectl命令創(chuàng)建它。
以下是一個示例Ingress YAML文件,它將HTTP和HTTPS流量路由到一個名為example-service
的Service對象:
apiVersion: networking.k8s.io/v1kind: Ingressmetadata: name: example-ingress annotations: traefik.ingress.kubernetes.io/routing-certificate: example-tls traefik.ingress.kubernetes.io/router.entrypoints: web, websecurespec: rules: - host: example.com http: paths: - path: /test pathType: Prefix backend: service: name: example-service port: name: http tls: - hosts: - example.com secretName: example-tls
在上述示例中,metadata
部分指定Ingress的名稱和注釋。spec
部分指定路由規(guī)則,包括TLS設(shè)置、主機(jī)和路徑規(guī)則。在該示例中,我們將HTTP和HTTPS流量路由到example-service
Service對象,該Service對象綁定到80端口上。
在該示例中,我們還使用了兩個名為traefik.ingress.kubernetes.io/routing-certificate
和traefik.ingress.kubernetes.io/router.entrypoints
的注釋。前者指定了要使用的TLS證書,后者指定了要使用的入口點(diǎn)(即要使用的協(xié)議和端口)。
創(chuàng)建Ingress資源的命令如下所示:
kubectl apply -f example-ingress.yaml
創(chuàng)建Ingress資源后,您可以測試Ingress是否正確地路由流量到Service對象。
首先,使用kubectl get ingress
命令獲取Ingress的IP地址和路由路徑:
kubectl get ingress
輸出應(yīng)該類似于以下內(nèi)容:
NAME CLASS HOSTS ADDRESS PORTS AGEexample-ingress example.com 10.0.0.100 80 5m
在上述輸出中,ADDRESS
列中的IP地址是Traefik Ingress的IP地址。您可以使用該IP地址在瀏覽器中測試路由是否正常。如果您使用TLS終止功能,則需要使用https://
協(xié)議訪問Ingress的IP地址。
例如,在本示例中,使用http://10.0.0.100/test
訪問Ingress IP地址將路由流量到example-service
Service對象的80端口。