Kubernetes Ingress 与具有外部 IP 的服务
Kubernetes Ingress vs. Service with externalIPs
如果我在(小型)Kubernetes 1.13 集群上公开一个(单个)Web 服务(比如 http://a.b.c.d
或 https://a.b.c.d
),使用 Ingress
比使用 Ingress
有什么好处Service
类型 ClusterIP
单独使用 externalIPs [ a.b.c.d ]
?
地址a.b.c.d
被路由到我的一个集群节点。 Ingress
需要安装和维护一个 ingress controller,所以我想知道什么时候这是合理的。
- ClusterIP 类型的每个服务都有自己的 public IP 地址,而 Ingress 只需要一个 IP,即使您想提供对数十个服务的访问。
- 您也可以根据Ingress提供的基于主机和路径的路由,将客户端请求转发到相应的服务。
- 由于 Ingresses 在第 7 层(应用层)运行,它还可以提供基于 cookie 的会话等功能,这是通过服务无法实现的。
我现在遇到了第一个具体示例,在其中我看到使用 Ingress
而不是 Service
和 externalIPs
的具体好处。
Kubernetes 集群内的私有 Docker 注册表通常需要 TLS 凭据。使用 Docker 图像 registry:2
必须安装这些凭据,例如从 ConfigMap
进入容器并在容器中有某些环境变量(例如 REGISTRY_HTTP_TLS_CERTIFICATE
)指向它们。
只要能够容忍对集群内注册表的不安全访问,使用 Ingress
管理起来就会变得更容易。证书可以放入 Secret
中,Ingress
资源可以指向 (kubectl explain ingress.spec.tls.secretName
)。不再需要对挂载或环境变量给予额外的详细关注。 TLS 连接将在入口控制器处终止。
如果我在(小型)Kubernetes 1.13 集群上公开一个(单个)Web 服务(比如 http://a.b.c.d
或 https://a.b.c.d
),使用 Ingress
比使用 Ingress
有什么好处Service
类型 ClusterIP
单独使用 externalIPs [ a.b.c.d ]
?
地址a.b.c.d
被路由到我的一个集群节点。 Ingress
需要安装和维护一个 ingress controller,所以我想知道什么时候这是合理的。
- ClusterIP 类型的每个服务都有自己的 public IP 地址,而 Ingress 只需要一个 IP,即使您想提供对数十个服务的访问。
- 您也可以根据Ingress提供的基于主机和路径的路由,将客户端请求转发到相应的服务。
- 由于 Ingresses 在第 7 层(应用层)运行,它还可以提供基于 cookie 的会话等功能,这是通过服务无法实现的。
我现在遇到了第一个具体示例,在其中我看到使用 Ingress
而不是 Service
和 externalIPs
的具体好处。
Kubernetes 集群内的私有 Docker 注册表通常需要 TLS 凭据。使用 Docker 图像 registry:2
必须安装这些凭据,例如从 ConfigMap
进入容器并在容器中有某些环境变量(例如 REGISTRY_HTTP_TLS_CERTIFICATE
)指向它们。
只要能够容忍对集群内注册表的不安全访问,使用 Ingress
管理起来就会变得更容易。证书可以放入 Secret
中,Ingress
资源可以指向 (kubectl explain ingress.spec.tls.secretName
)。不再需要对挂载或环境变量给予额外的详细关注。 TLS 连接将在入口控制器处终止。