这是我在k8s.yml文件中定义的:
apiVersion: v1
kind: Service
metadata:
name: myservice
namespace: mynamespace
labels:
app: myservice
annotations:
service.beta.kubernetes.io/aws-load-balancer-internal: 0.0.0.0/0
service.beta.kubernetes.io/aws-load-balancer-cross-zone-load-balancing-enabled: "true"
external-dns.alpha.kubernetes.io/hostname: "myservice."
spec:
selector:
app: myservice
type: LoadBalancer
ports:
- name: http
port: 8080
targetPort: 8080
protocol: TCP
运行此命令:
kubectl describe service myservice
给我这样的"LoadBalancer大会“:
类型: LoadBalancer IP: 25.0.162.225 internal-a9716e......us-west-2.elb.amazonaws.com汇入: LoadBalancer
据我所知,我使用的发布类型是"LoadBalancer“,它帮助我将服务公开到外部IP地址(参见https://kubernetes.io/docs/concepts/services-networking/connect-applications-service/)。而在服务的前面,入侵是另一回事,我并没有在yml文件中定义它。(请参阅:https://medium.com/google-cloud/kubernetes-nodeport-vs-loadbalancer-vs-ingress-when-should-i-use-what-922f010849e0)我可以从集群之外访问我的服务,但是我不明白为什么它被称为"LoadBalancer侵入“?这和安妞有什么关系?还是每个负载均衡器都配备了一个用于服务公开目的的侵入?
发布于 2018-11-20 19:20:32
入口是一个抽象的定义,揭露什么和如何暴露。通常指的是HTTP(S)流量,但是有了一些摆弄也可以其他模式/协议。
Ingress是一种特殊的实现,它将使用特定的软件来实现您的侵入定义的期望。无论是Nginx、Traefik还是其他解决方案,都有可能致力于特定的云提供商。
他们将使用Service
对象作为查找到达它们的特定流量的端点的方法。如果这是headless
、ClusterIP
、NodePort
或LoadBalancer
类型的服务,就没有意义了。
尽管如此,LoadBalancer
类型服务在一个意外的负载均衡器上公开了您的服务。同样,通常与云提供商相关。这是一种完全不同的公开服务的方式,就像NodePort
类型一样。
https://stackoverflow.com/questions/53399894
复制相似问题