gpt4 book ai didi

kubernetes - 为什么 Google Cloud 在使用 ClusterIP 时显示错误

转载 作者:行者123 更新时间:2023-12-03 06:53:59 26 4
gpt4 key购买 nike

在我的 gcloud 控制台中,我定义的入口显示以下错误:

Error during sync: error while evaluating the ingress spec: service "monitoring/kube-prometheus" is type "ClusterIP", expected "NodePort" or "LoadBalancer"

我使用 traefik 作为反向代理(而不是 nginx),因此我使用 ClusterIP 定义入口。据我了解,所有流量都是通过 traefik 服务(定义了 Loadbalancer 入口)代理的,因此我所有其他入口实际上应该有 ClusterIP,而不是 NodePort 或 Loadbalancer?

问题:

那么为什么 Google Cloud 警告我它需要 NodePort 或 LoadBalancer?

enter image description here

最佳答案

我不知道为什么会发生这个错误,因为(对我来说)它似乎是一个有效的配置。但要清除错误,您可以将服务切换到命名的 NodePort。然后将您的入口切换为使用端口名称而不是号码。例如:

服务:

apiVersion: v1
kind: Service
metadata:
name: testapp
spec:
ports:
- name: testapp-http # ADD THIS
port: 80
protocol: TCP
targetPort: 80
selector:
app: testapp
type: NodePort

入口:

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: testapp
spec:
rules:
- host: hostname.goes.here
http:
paths:
- backend:
serviceName: testapp
# USE THE PORT NAME FROM THE SERVICE INSTEAD OF THE PORT NUMBER
servicePort: testapp-http
path: /

更新:

这是我从 Google 收到的解释。

因为默认情况下的服务是 ClusterIP [1],并且这种类型的服务应该可以从集群内部访问。使用 kube-proxy 时可以从外部访问它,而不是通过 ingress 直接访问。

作为建议,我个人认为这篇文章 [2] 有助于理解这些类型的服务之间的差异。

[1] https://kubernetes.io/docs/concepts/services-networking/service/#publishing-services-service-types

[2] https://medium.com/google-cloud/kubernetes-nodeport-vs-loadbalancer-vs-ingress-when-should-i-use-what-922f010849e0

关于kubernetes - 为什么 Google Cloud 在使用 ClusterIP 时显示错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51572249/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com