1 概述
NodePort、LoadBalancer 和 Ingress 都是将集群外部流量导入到集群内的方式,只是实现方式不同。以下是三种方式的工作原理
注意:这里说的每一点都基于Google Kubernetes Engine。如果用 minikube 或其它工具,以预置型模式(om prem)运行在其它云上,对应的操作可能有点区别。
2 ClusterIP
ClusterIP 服务是 Kubernetes 的默认服务。它提供一个集群内的服务,集群内的其它应用都可以访问该服务。集群外部无法访问ClusterIP。
ClusterIP 服务的 YAML 文件类似如下:
apiVersion: v1
kind: Service
metadata: name: my-internal-service
selector: app: my-app
spec: type: ClusterIP ports: - name: http port: 80 targetPort: 80 protocol: TCP
从集群外是没法访问 ClusterIP 服务,那如何可以在集群外访问集群数据呢?可以通过 Kubernetes 的 proxy 模式来访问该服务。