13518219792

建站动态

根据您的个性需求进行定制 先人一步 抢占小程序红利时代

Kubernetes集群网络:k8s对外暴露服务的方式

一、Master集群网络

master集群的网络比较简单,和通常的负载均衡集群一样。多个节点的apiserver的ip与端口(6443)使用负载均衡的ip与端口。在master/node节点join时均使用此负载均衡的ip与端口,这样就是master节点的集群网络。

创新互联建站坚持“要么做到,要么别承诺”的工作理念,服务领域包括:成都做网站、成都网站建设、企业官网、英文网站、手机端网站、网站推广等服务,满足客户于互联网时代的平顶山网站设计、移动媒体设计的需求,帮助企业找到有效的互联网解决方案。努力成为您成熟可靠的网络建设合作伙伴!

二、Node集群网络

K8s集群对外暴露服务的方式主要有以下几种:

1、NodePort

NodePort 是 Kubernetes 提供的一种最简单的服务暴露方式。当 Service 的类型为 NodePort 时,Kubernetes 会为该 Service 分配一个固定的端口,该端口会映射到集群中每个节点的相同端口。客户端可以通过集群中任何节点的 IP 地址和端口访问服务。

NodePort 的配置非常简单,只需要在 Service 的 spec 中设置 type 为 NodePort,并指定端口号即可。例如,以下 YAML 定义了一个 NodePort 服务:

apiVersion: v1
kind: Service
metadata:
  name: nginx
spec:
  type: NodePort
  ports:
    - port: 80
      targetPort: 80
      nodePort: 30000

该服务将暴露到集群中每个节点的 30000 端口。客户端可以通过集群中任何节点的 IP 地址和 30000 端口访问该服务。

NodePort 的优点是简单易用,可以快速将服务暴露到集群外部。但是,NodePort 也有一定的缺点。
Kubernetes NodePort 类型的服务将在每个节点上暴露一个端口,并分配一个 cluster IP 地址。外部客户端可以通过 : 来访问该服务。NodePort 类型的服务适用于需要在集群外部访问的服务,例如 Web 服务。

NodePort 类型的服务有以下优点:

NodePort 类型的服务也有以下缺点:

2、LoadBalancer

LoadBalancer 是 Kubernetes 提供的一种更高级的服务暴露方式。当 Service 的类型为 LoadBalancer 时,Kubernetes 会在云平台上创建一个负载均衡器(一般付费购买相应的负载均衡产品),并将该负载均衡器绑定到 Service 上。客户端可以通过负载均衡器的公网 IP 地址和端口访问服务。

LoadBalancer 类型的服务有以下优点:

LoadBalancer 类型的服务也有以下缺点:

3、Ingress

Ingress 是 Kubernetes 提供的一种更灵活的服务暴露方式。Ingress 控制器可以将多个 Service 统一到一个域名下,并提供路由规则,使得客户端可以通过统一的域名访问不同的Service。

具体选择哪种方式需要根据实际需求来决定。如果需要快速部署服务,NodePort 是一个不错的选择。如果需要将服务暴露到公网,LoadBalancer 或 Ingress 是更好的选择。

它具有以下优点:

Ingress 的缺点:

三、相关问题

1、已经有了Service为什么还需要ingress?

Kubernetes Service 和 Ingress 都是用来将 Kubernetes 服务暴露给外部世界的资源对象。它们之间主要的区别如下:

因此,Service 和 Ingress 可以结合起来使用,以实现更灵活和强大的服务路由功能。例如,可以使用 Service 将 Pod 集合抽象成一个逻辑单元,然后使用 Ingress 为该 Service 提供路由和负载均衡功能。

2、是否可以使用nginx代替ingress?

Ingress 和外部 Nginx 之间的主要区别如下:

Ingress 是 Kubernetes 中更完整的解决方案,它提供了更丰富的功能和更灵活的配置方式。如果您需要使用 Kubernetes 集群中的所有功能,那么使用 Ingress 是更好的选择。

以下是一些使用外部 Nginx 代替 Ingress 的场景:

3、NodePort vs Ingress

四、部署应用的步骤

在 k8s node 集群节点部署的 java 应用,要想向外提供访问服务,需要使用 k8s 的 Service 和 Ingress 这两个资源对象。Service 是一种抽象,它定义了一组 Pod 的逻辑访问方式,可以实现 Pod 之间和 Pod 与外部网络之间的负载均衡和服务发现。Ingress 是一种规则集合,它定义了如何将外部请求路由到集群内部的 Service 上,可以实现域名、路径、SSL/TLS 等高级功能 。具体可以通过以下几个步骤来实现:


网站名称:Kubernetes集群网络:k8s对外暴露服务的方式
网页路径:http://cdbrznjsb.com/article/cooggsp.html

其他资讯

让你的专属顾问为你服务