更新时间:2023-03-13 09:59:52浏览次数:951+次
本文介绍在Linux系统上安装Traefik Ingress Controller(Traefik入口控制器)的方法。Traefik Ingress Controller是一种现代的、云原生的、动态的入口控制器,支持多个后端,可用于管理多个Kubernetes集群的流量,当前Traefik提供高级路由功能和负载平衡功能。
安装Traefik Ingress Controller的方法
在本文中,我们将使用Helm安装Traefik Ingress Controller。首先得要安装Helm,包括Kubernetes环境,如下所示:
curl -fsSL -o get_helm.sh https://raw.githubusercontent.com/helm/helm/master/scripts/get-helm-3
chmod 700 get_helm.sh
sudo ./get_helm.sh
检查您的helm版本,确认其已成功安装:
$ helm version
version.BuildInfo{Version:"v3.10.2", GitCommit:"50f003e5ee8704ec937a756c646870227d7c8b58", GitTreeState:"clean", GoVersion:"go1.18.8"}
通过运行以下命令,在工作站中添加Traefik Ingress helm存储库,地址在https://github.com/traefik/traefik-helm-chart:
helm repo add traefik https://helm.traefik.io/traefik
使用以下命令更新helm charts:
$ helm repo update
Hang tight while we grab the latest from your chart repositories...
...Successfully got an update from the "traefik" chart repository
...Successfully got an update from the "metrics-server" chart repository
...Successfully got an update from the "nfs-subdir-external-provisioner" chart repository
...Successfully got an update from the "kubevious" chart repository
...Successfully got an update from the "stable" chart repository
Update Complete. Happy Helming!
创建名为traefik的命名空间:
kubectl create ns traefik
注:需要部署Kubernetes集群。如果设置正在运行并且kubectl已配置,我们可以通过列出Kubernetes集群中的可用节点来测试它,可运行kubectl get nodes命令:
使用Traefik命名空间上的helm chart安装Traefik Ingress Controller:
helm install traefik traefik/traefik --namespace traefik
成功执行命令的示例输出信息如下:
NAME: traefik
LAST DEPLOYED: Sun Mar 12 17:33:01 2023
NAMESPACE: traefik
STATUS: deployed
REVISION: 1
TEST SUITE: None
NOTES:
Traefik Proxy v2.9.8 has been deployed successfully
on traefik namespace !
您可以使用值文件自定义安装。提供了一些示例,地址在https://github.com/traefik/traefik-helm-chart/blob/master/EXAMPLES.md。默认文件中包含所有可用参数的完整文档,地址在https://github.com/traefik/traefik-helm-chart/blob/master/traefik/values.yaml。
例子:
helm upgrade --install traefik \
--namespace traefik \
--set dashboard.enabled=true \
--set rbac.enabled=true \
--set nodeSelector.node-type=master \
--set="additionalArguments={--api.dashboard=true,--log.level=INFO,--providers.kubernetesingress.ingressclass=traefik-internal,--serversTransport.insecureSkipVerify=true}" \
traefik/traefik \
--version <version>
通过检查命名空间中的所有资源来验证安装:
$ kubectl get all -n traefik
输出信息如下截图所示:
从上面的截图输出中,我们有一个LoadBalancer服务,它具有一个挂起的外部IP地址。
使用命令查看Traefik CRDs:
$ kubectl get crd -n traefik | grep traefik
ingressroutes.traefik.containo.us
ingressroutetcps.traefik.containo.us
ingressrouteudps.traefik.containo.us
middlewares.traefik.containo.us
middlewaretcps.traefik.containo.us
serverstransports.traefik.containo.us
tlsoptions.traefik.containo.us
tlsstores.traefik.containo.us
traefikservices.traefik.containo.us
至此,安装Traefik Ingress Controller完毕。