我正在尝试将Traefik部署为我的GKE集群上的入口控制器。它是一个包含3个节点的基本集群。
我习惯在Kubespray部署的Kubernetes集群上使用清单部署Traefik,但我们正在将一些基础架构迁移到GCP。
所以我尝试使用community helm chart使用以下配置部署Traefik:
image: traefik
imageTag: 1.6.2
serviceType: LoadBalancer
loadBalancerIP: X.X.X.X
kubernetes:
ingressClass: traefik
ssl:
enabled: false
enforced: false
insecureSkipVerify: false
acme:
enabled: false
email: [email protected]
staging: true
logging: false
challengeType: http-01
dashboard:
enabled: true
domain: traefik.mydomain.com
ingress:
annotations:
kubernetes.io/ingress.class: traefik
gzip:
enabled: true
accessLogs:
enabled: true
format: common
然后使用以下命令启动它:
helm install --namespace kube-system --name traefik --values values.yaml stable/traefik
除了仪表板入口外,所有内容都部署在我的K8S群集上,但出现以下错误:
kevin@MBP-de-Kevin ~/W/g/s/traefik> kubectl describe ingress traefik-dashboard -n kube-system
Name: traefik-dashboard
Namespace: kube-system
Address:
Default backend: default-http-backend:80 (10.20.2.6:8080)
Rules:
Host Path Backends
---- ---- --------
traefik.mydomain.com
traefik-dashboard:80 (10.20.1.14:8080)
Annotations:
Events:
Type Reason Age From Message
---- ------ ---- ---- -------
Warning Sync 4m loadbalancer-controller googleapi: Error 400: Invalid value for field 'namedPorts[2].port': '0'. Must be greater than or equal to 1, invalid
知道我的错误在哪里?
非常感谢!
Invalid value for field 'namedPorts[0].port': '0'
当GKE Ingress使用的Service
是ClusterIP
类型(而不是NodePort
)时会发生此错误。 GKE Ingress要求支持服务为NodePort类型。
当入口控制器期望的服务不存在时,也会发生这种情况。 (也许它被意外删除了)
gke上的nginx-ingress-controller与作为clusterIP公开的服务一起使用