详情页标题前

阿里云负载均衡通过使用自动创建CLB的服务公开应用-云淘科技

详情页1

当您没有可用的传统型负载均衡CLB(Classic Load Balancer)时,Cloud Controller Manager(CCM)组件可以为LoadBalancer类型服务自动创建CLB,并对其进行管理。本文以Nginx应用为例,介绍如何通过使用自动创建CLB的服务来公开应用

注意事项

  • CCM只为Type=LoadBalancer类型的服务配置CLB。对于非LoadBalancer类型的服务,则不会为其配置负载均衡。

    重要

    Type=LoadBalancer的服务变更为其他类型时,CCM会删除为该CLB添加的配置,从而造成无法通过该CLB访问服务。

  • CCM使用声明式API,会在一定条件下自动根据服务的配置刷新CLB配置。当service.beta.kubernetes.io/alibaba-cloud-loadbalancer-force-override-listeners: 设置为true时,您自行在CLB控制台上修改的配置均存在被覆盖的风险。

    重要

    请勿在CLB控制台上手动修改Kubernetes创建并维护的CLB的任何配置,否则有配置丢失的风险,造成服务不可访问。

  • 已创建的LoadBalancer类型Service不支持重新指定CLB。如果您需要更换CLB,请重新创建Service。

CLB配额限制

  • CCM会为Type=LoadBalancer类型的Service创建CLB。默认情况下一个用户可以保有60个CLB实例。

  • CCM会根据Service中定义的端口创建CLB监听。默认情况下一个CLB实例可以添加50个监听。

  • CCM会根据Service的配置将ECS挂载到CLB后端服务器组中。

    • 默认情况下一个ECS实例可挂载的后端服务器组的数量为50个。

    • 默认情况下一个CLB实例可以挂载200个后端服务器。

    说明

    如需更大配额,您可以前往配额管理页面或配额中心,并根据控制台提示申请配额。

    关于更多CLB使用限制,请参见使用限制。

步骤一:部署示例应用

以下应用部署通过kubectl命令行方式进行。如果您需要通过控制台部署应用,请参见创建无状态工作负载Deployment。

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

    apiVersion: apps/v1 # for versions before 1.8.0 use apps/v1beta1
    kind: Deployment
    metadata:
      name: my-nginx    #示例应用的名称。
      labels:
        app: nginx
    spec:
      replicas: 3       #设置副本数量。
      selector:
        matchLabels:
          app: nginx     #对应服务中Selector的值需要与其一致,才可以通过服务公开此应用。
      template:
        metadata:
          labels:
            app: nginx
        spec:
        #  nodeSelector:
        #    env: test-team
          containers:
          - name: nginx
            image: registry.aliyuncs.com/acs/netdia:latest     #替换为您实际的镜像地址,格式为:。
            ports:
            - containerPort: 80                                #需要在服务中暴露该端口。
  2. 执行以下命令,部署示例应用my-nginx。

    kubectl apply -f my-nginx.yaml
  3. 执行以下命令,确认示例应用状态正常。

    kubectl get deployment my-nginx

    返回结果示例:

    NAME       READY   UP-TO-DATE   AVAILABLE   AGE
    my-nginx   3/3     3            3           50s

步骤二:通过使用自动创建CLB的服务公开应用

您可以通过控制台和kubectl两种方式来创建LoadBalancer类型的服务,并通过其公开应用。

控制台方式

  1. 登录容器服务管理控制台。

  2. 在控制台左侧导航栏,单击集群

  3. 集群列表页面,单击目标集群名称或者目标集群右侧操作列下的详情

  4. 在集群管理页左侧导航栏,选择网络 > 服务

  5. 服务页面,单击右上角的创建

  6. 创建服务对话框中,设置服务的相关参数。

    阿里云负载均衡通过使用自动创建CLB的服务公开应用-云淘科技

    参数

    描述

    名称

    输入服务的名称。

    类型

    选择服务类型,即服务访问的方式。依次选择:负载均衡 -> 公网访问 -> 新建SLB -> 单击修改选择所需的CLB规格。本示例使用默认规格:简约型I(slb.s1.small)。

    关联

    选择关联该服务要绑定的后端应用。若不进行关联部署,则不会创建相关的Endpoints对象,您也可自己进行绑定,请参见services-without-selectors。

    外部流量策略

    设置外部流量策略。

    • Local:流量只发给本机的Pod。

    • Cluster:流量可以转发到集群中其他节点上的Pod。

    说明

    您的服务类型为节点端口负载均衡时,才能设置外部流量策略

    端口映射

    添加服务端口(对应Service YAML文件中的port)和容器端口(对应Service YAML文件中的targetPort),容器端口需要与后端的Pod中暴露的容器端口一致。

    注解

    为该服务添加一个注解(Annotation),配置负载均衡的参数。您可以选择自定义注解阿里云注解。更多注解请参见通过Annotation配置传统型负载均衡CLB。

    标签

    为该服务添加一个标签,标识该服务。

  7. 单击创建

    服务页面,可以看到新创建的服务。阿里云负载均衡通过使用自动创建CLB的服务公开应用-云淘科技

  8. 单击该服务在外部端点列的39.106.XX.XX:80,访问示例应用。

Kubectl方式

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

    将selector修改为my-nginx.yaml示例应用文件中matchLabels的值(本示例为app: nginx),从而将该服务关联至后端应用。

    apiVersion: v1
    kind: Service
    metadata:
      labels:
        app: nignx
      name: my-nginx-svc
      namespace: default
    spec:
      ports:
      - port: 80
        protocol: TCP
        targetPort: 80
      selector:
        app: nginx
      type: LoadBalancer
  2. 执行以下命令创建名为my-nginx-svc的服务,并通过其公开应用。

    kubectl apply -f my-nginx-svc.yaml
  3. 执行以下命令确认LoadBalancer类型的服务创建成功。

    kubectl get svc my-nginx-svc

    返回结果示例:

    NAME           TYPE           CLUSTER-IP    EXTERNAL-IP      PORT(S)        AGE
    my-nginx-svc   LoadBalancer   172.21.5.82   39.106.XX.XX     80:30471/TCP   5m
  4. 执行curl 命令访问示例应用,请将YOUR-External-IP替换为上面获取到的EXTERNAL-IP地址。

    curl 39.106.XX.XX

    返回结果示例:

    
    
    
    Welcome to nginx!
    
        body {
            width: 35em;
            margin: 0 auto;
            font-family: Tahoma, Verdana, Arial, sans-serif;
        }
    
    
    
    

    Welcome to nginx!

    If you see this page, the nginx web server is successfully installed andworking. Further configuration is required.

    For online documentation and support please refer tonginx.org.
    Commercial support is available atnginx.com.

    Thank you for using nginx.

相关文档

  • 通过Annotation配置传统型负载均衡CLB

  • 通过使用已有CLB的服务公开应用

内容没看懂? 不太想学习?想快速解决? 有偿解决: 联系专家

阿里云企业补贴进行中: 马上申请

腾讯云限时活动1折起,即将结束: 马上收藏

同尘科技为腾讯云授权服务中心。

购买腾讯云产品享受折上折,更有现金返利:同意关联,立享优惠

转转请注明出处:https://www.yunxiaoer.com/170293.html

(0)
上一篇 2023年12月10日 下午12:51
下一篇 2023年12月10日
详情页2

相关推荐

  • 阿里云容器服务ACK通过使用已有SLB的服务公开应用-云淘科技

    通过阿里云负载均衡SLB(Server Load Balancer)暴露的服务(Service),在集群外可通过SLB域名或的方式访问服务,在集群内可通过的方式访问服务。本文以Nginx应用为例,介绍如何通过使用已有SLB的服务来公开应用。 前提条件 已存在通过SLB控制台创建的SLB实例,且该实例与Kubernetes集群处于同一地域。如果没有创建,请参见…

    2023年12月10日
  • 阿里云负载均衡通过使用已有CLB的服务公开应用-云淘科技

    通过阿里云传统型负载均衡CLB(Classic Load Balancer)暴露的服务(Service),在集群外可通过CLB域名或的方式访问服务,在集群内可通过的方式访问服务。本文以Nginx应用为例,介绍如何通过使用已有CLB的服务来公开应用。 前提条件 已存在通过CLB控制台创建的CLB实例,且该实例与Kubernetes集群处于同一地域。如果没有创建…

    2023年12月10日
  • 阿里云容器服务ACK使用Service对外暴露应用-云淘科技

    在Kubernetes中,Pod虽然拥有独立的IP,但会被快速地创建和删除,因此无法直接对外提供服务。而服务(Service)能够解耦前端和后端的关联,从而实现松耦合的微服务设计。本文介绍如何通过控制台和Kubectl创建服务的方式对外发布应用。 控制台操作指导 登录容器服务管理控制台,在左侧导航栏选择集群。 在集群列表页面,单击目标集群名称,然后在左侧导航…

    2023年12月10日
  • 信息流广告,信息流部分建议宽度830px,只针对默认列表样式,顺序随机
  • 阿里云容器服务ACK通过使用已有SLB的服务公开应用-云淘科技

    通过阿里云负载均衡SLB(Server Load Balancer)暴露的服务(Service),在集群外可通过SLB域名或的方式访问服务,在集群内可通过的方式访问服务。本文以Nginx应用为例,介绍如何通过使用已有SLB的服务来公开应用。 前提条件 已存在通过SLB控制台创建的SLB实例,且该实例与Kubernetes集群处于同一地域。如果没有创建,请参见…

    阿里云容器服务 2023年12月10日
  • 阿里云容器服务ACK通过使用自动创建SLB的服务公开应用-云淘科技

    当您没有可用的SLB时,Cloud Controller Manager(CCM)组件可以为LoadBalancer类型服务自动创建SLB,并对其进行管理。本文以Nginx应用为例,介绍如何通过使用自动创建SLB的服务来公开应用。 注意事项 CCM只为Type=LoadBalancer类型的服务配置SLB。对于非LoadBalancer类型的服务,则不会为其…

    2023年12月10日

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信
本站为广大会员提供阿里云、腾讯云、华为云、百度云等一线大厂的购买,续费优惠,保证底价,买贵退差。