赛尔校园公共服务平台 Logo
平台使用
阿里云
百度云
移动云
智算服务
教育生态
登录 →
赛尔校园公共服务平台 Logo
平台使用 阿里云 百度云 移动云 智算服务 教育生态
登录
  1. 首页
  2. 阿里云
  3. ACK Edge集群
  4. 操作指南
  5. 网络管理
  6. Service管理
  7. 使用NodePort类型的Service暴露应用

使用NodePort类型的Service暴露应用

  • Service管理
  • 发布于 2025-04-21
  • 0 次阅读
文档编辑
文档编辑

在Kubernetes中,Service是用于将运行在一组Pod上的应用程序公开为网络服务的抽象概念,本文以Nginx无状态应用为例,介绍如何在ACK Edge集群中使用NodePort类型的Service暴露应用。

使用NodePort类型的Service

由于在边缘侧无负载均衡,因此常见的对集群外服务暴露的方式常常采用NodePort类型的Service。在ACK Edge集群中使用NodePort Service如图所示。部署NodePort类型的Service并选择好后端Pod后,您可以直接通过节点地址和节点端口访问后端服务。更多Service类型以及介绍详情,请参见Service管理。

image

注意事项

由于ACK Edge集群中的节点常分布在不同的网络域中,多个网络域中的节点、容器无法相互访问。

  • 为确保访问流量仅转发到本节点池或本节点上的后端Pod,可配置Service服务拓扑,以避免流量被转发到其他网络域的Pod后端而导致的网络不通问题。具体操作,请参见节点池服务拓扑管理。

  • 为方便您在各个网络域中监听节点端口,并确保不同网络域之间的端口不发生冲突,建议配置端口隔离。具体操作,请参见NodePort端口监听隔离。

操作步骤

步骤一:部署示例应用

  1. 使用以下示例的YAML内容,创建名为nginx.yaml文件。

    apiVersion: apps/v1 
    kind: Deployment
    metadata:
      name: nginx   
      labels:
        app: nginx
    spec:
      replicas: 2     
      selector:
        matchLabels:
          app: nginx
      template:
        metadata:
          labels:
            app: nginx
        spec:
          containers:
          - name: nginx
            image: anolis-registry.cn-zhangjiakou.cr.aliyuncs.com/openanolis/nginx:1.14.1-8.6
            ports:
            - containerPort: 80           
  2. 执行以下命令,部署示例应用。

    kubectl apply -f nginx.yaml
  3. 执行以下命令,查看示例状态。

    kubectl get deployment nginx

    预期输出:

    NAME       READY   UP-TO-DATE   AVAILABLE   AGE
    nginx      2/2     2            2           43s

步骤二:使用NodePort类型的Service

  1. 使用以下示例服务的YAML内容,创建nginx-svc.yaml的文件。

    apiVersion: v1
    kind: Service
    metadata:
      labels:
        app: nginx
      name: nginx-svc
      namespace: default
    spec:
      ports:
      - port: 80
        protocol: TCP
        targetPort: 80
      selector:                # 其中spec.selector对应上文中nginx.yaml的spec.selector.matchLabels对应标签。
        app: nginx
      type: NodePort
  2. 执行以下命令,创建名为nginx-svc.yaml的Service,并且公开应用。

    kubectl apply -f nginx-svc.yaml
  3. 执行以下命令,确认NodePort类型的Service成功创建。

    kubectl get svc my-nginx-svc

    预期输出:

    NAME         TYPE        CLUSTER-IP        EXTERNAL-IP   PORT(S)        AGE
    nginx-svc    NodePort    192.168.xxx.xxx   <none>        80:31309/TCP   3s
  4. 执行以下命令,访问示例应用。

    curl <Node-IP>:31309 # 请将<Node-IP>替换为您需要访问的节点地址。
相关文章

使用负载均衡类型的Service暴露应用 2025-04-21 11:15

在Kubernetes集群中,Service支持ClusterIP、NodePort、LoadBalancer等类型。本文主要为您介绍如何在ACK Edge集群中,通过LoadBalancer(负载均衡)类型Service对外暴露应用。 背景信息 Kubernetes集群支持的所

使用NodePort类型的Service暴露应用 2025-04-21 11:15

在Kubernetes中,Service是用于将运行在一组Pod上的应用程序公开为网络服务的抽象概念,本文以Nginx无状态应用为例,介绍如何在ACK Edge集群中使用NodePort类型的Service暴露应用。 使用NodePort类型的Service

NodePort端口监听隔离 2025-04-21 11:15

在边缘网络场景中,服务隔离是必需的。例如,当使用NodePort类型的Service时,您可以指定特定节点池的节点上才会监听NodePort Service中的端口,从而避免可能产生的端口冲突风险。本文介绍如何使用NodePort端口监听隔离。 架构原理 edge-hub组件中内置可编程数据过滤框架

节点池服务拓扑管理 2025-04-21 11:15

原生Kubernetes Service的后端端点扁平分布在集群中任意节点。因此,跨越不同分组节点的Service流量,会大概率出现访问不可达、或者访问效率低下的问题。Service流量拓扑支持边缘节点应用只能由相同节点池的节点访问,或者只能由本节点访问。本文介绍Service流量拓扑管理功能以及如

目录
Copyright © 2025 your company All Rights Reserved. Powered by 赛尔网络.
京ICP备14022346号-15
gongan beian 京公网安备11010802041014号