创建LoadBalancer类型的Service

容器引擎 CCE

  • 功能发布记录
  • 产品描述
    • 介绍
    • 优势
    • 使用限制
    • 应用场景
    • 核心概念
    • 特性
  • 开发指南
    • EFK日志采集系统部署指南
    • 创建LoadBalancer类型的Service
    • Prometheus监控系统部署指南
    • kubectl管理配置
    • 在CCE集群中使用-Network-Policy
  • 常用工具
    • 视图命令行场景示例
  • 产品公告
    • CCE 新版集群管理发布公告
    • CCE 控制台升级公告
    • Kubernetes 版本发布说明
      • CCE发布Kubernetes 1.18版本说明
      • CCE发布Kubernetes 1.30版本说明
      • CCE Kubernetes 版本更新说明
      • CCE发布Kubernetes 1.22版本说明
      • CCE发布Kubernetes 1.20版本说明
      • CCE发布Kubernetes 1.28版本说明
      • CCE发布Kubernetes 1.24版本说明
      • CCE发布Kubernetes 1.26版本说明
    • 安全漏洞修复公告
      • 漏洞CVE-2020-14386修复公告
      • 修复漏洞CVE-2021-30465公告
      • 漏洞CVE-2019-5736修复公告
      • 漏洞CVE-2025-1097、CVE-2025-1098等修复公告
      • 关于 runc 的安全问题(CVE-2024-21626)影响声明
  • 快速入门
    • 快速部署nginx应用
    • 使用CCE容器引擎流程概述
  • 典型实践
    • CCE集群网络说明及规划
    • CCE典型实践之容器网络模式选择
    • Pod异常问题排查
    • 通过 CCE Ingress 实现虚机和容器服务的统一接入
    • CCE集群使用Jenkins持续发布
    • CCE-访问公网实践
    • Linux系统配置常用参数说明
    • 用户使用自定义 CNI 插件方法
    • CCE典型实践之Guestbook搭建
    • 使用KMS对etcd数据加密
    • 添加CGroup V2节点
    • CCE容器运行时选择
    • CCE使用检查清单
    • VPC-ENI模式集群访问公网实践
    • 利用 Velero 实现将应用跨云迁移到 百度CCE
    • 使用 CNI 配置容器内网络参数
    • CCE Resource Recommender 用户文档
    • CCE集群中使用私有镜像实践
    • 云原生AI
      • 使用 CCE AITraining Operator 实现弹性容错训练
      • 部署 TensorFlow Serving 推理服务
      • GPU虚拟化之隔离性最优型的最佳实践
  • 操作指南
    • 多用户访问控制
    • 使用须知
    • 命名空间管理
      • 设置资源配额
      • 设置资源限制
      • 命名空间基本操作
    • 弹性伸缩
      • 使用 cce-autoscaling-placeholder 实现秒级弹性伸缩
      • CCE 集群节点自动伸缩
      • 容器定时水平伸缩(CronHPA)
      • 容器水平伸缩(HPA)
    • 存储管理
      • 使用云盘CDS
      • 使用并行文件存储PFS
      • 使用对象存储BOS
      • 使用并行文件存储PFS L2
      • 使用本地存储
      • 使用数据湖存储加速工具RapidFS
      • 使用文件存储CFS
      • 概述
    • 节点管理
      • 移出节点
      • kubelet容器监控只读端口风险提示
      • 管理污点
      • 设置GPU显存共享
      • 添加节点
      • 自定义Kubelet参数
      • 设置节点封锁
      • 节点排水
      • 管理节点标签
    • 组件管理
      • CCE CSI BOS Plugin 说明
      • Kube Scheduler 说明文档
      • CCE CSI PFS L2 Plugin
      • CCE NodeLocal DNSCache 说明
      • CCE Ingress NGINX Controller 说明
      • CCE RDMA Device Plugin 说明
      • CCE Node Problem Detector 说明
      • CCE Credential Controller 说明
      • Kube Controller Manager 说明
      • CCE Ingress Controller 说明
      • CCE GPU Manager 说明
      • CCE Backup Controller 说明
      • CCE QoS Agent 说明
      • CCE Descheduler 说明
      • 组件概述
      • CCE Image Accelerate 说明
      • CCE Network Plugin说明
      • Kube ApiServer 说明
      • CCE Log Operator 说明
      • CoreDNS 说明
      • CCE NPU Manager 说明
      • CCE AI Job Scheduler 说明
      • CCE LB Controller 说明
      • CCE P2P Accelerator 说明
      • CCE_Hybrid_Manager说明
      • CCE CSI PFS Plugin 说明
      • CCE Deep Learning Frameworks Operator 说明
      • CCE Node Remedier 说明
      • CCE CSI CDS Plugin 说明
      • CCE Ascend Mindx DL说明
      • CCE Calico Felix 说明
      • CCE Virtual Kubelet组件
      • CCE Fluid说明
      • CCE Onepilot 说明
      • CCE CronHPA Controller 说明
      • CCE 动态调度插件说明
    • 云原生AI
      • 云原生AI概述
      • GPU虚拟化
        • MPS 最佳实践&注意事项
        • GPU独占和共享说明
        • GPU在离线混部使用说明
        • GPU虚拟化适配表
        • 单GPU容器共享多卡使用说明
        • 共享GPU场景下的镜像构建注意事项
        • 关闭节点显存共享功能注意事项
      • 队列管理
        • 逻辑队列和物理队列使用说明
        • 修改队列
        • 删除队列
        • 新建队列
      • 任务管理
        • 基于 NCCL的RDMA分布式训练示例
        • 新建AITraining任务
        • 新建PaddlePaddle任务
        • 删除任务
        • 查看任务信息
        • 新建Mxnet任务
        • 新建TensorFlow任务
        • 新建Pytorch任务
      • 数据集管理
        • 删除数据集
        • 操作数据集
        • 查看数据集
        • 新建数据集
      • AI监控大盘
        • 接入监控实例并开启采集任务
        • NVIDIA芯片资源观测
          • AI Job Scheduler组件
          • GPUManager组件
          • GPU资源池总览
          • GPU节点资源
          • GPU工作负载资源
        • 昇腾芯片资源观测
          • 昇腾节点资源
          • 昇腾资源池总览
          • 昇腾工作负载资源
      • AI 加速套件
        • 使用AIAK-Inference 加速推理业务
        • 使用AIAK-Training Pytorch版
        • AIAK 简介
        • 使用 AIAK-Training 部署分布式训练任务
    • Helm管理
      • Helm模板
      • Helm实例
    • 应用管理
      • 部署
      • 保密字典
      • 服务
      • 配置字典
      • 容器组
      • 概述
    • 镜像仓库
      • 使用容器镜像构建服务
      • 镜像仓库基本操作
    • Serverless集群
      • 在Serverless集群中使用Service
      • 产品概述
      • 创建Serverless集群
    • 工作负载
      • 设置工作负载自动水平伸缩
      • Statefulset管理
      • 使用私有镜像创建工作负载
      • Job管理
      • 查看容器组
      • CronJob管理
      • Daemonset管理
      • 免密拉取容器镜像
      • Deployment管理
    • 节点组管理
      • 节点组管理
      • 节点组介绍
      • 升级节点组
      • 添加外部已有节点
      • 自定义节点组 Kubelet 配置
      • 添加备选机型
      • 节点组节点故障检测自愈
      • 配置扩缩容策略
    • 监控日志
      • 使用Prometheus监控集群
      • CCE 事件中心
      • 集群审计仪表盘
      • CCE 集群异常事件报警
      • Java应用监控
      • 集群服务画像
      • 日志管理
      • 集群审计
      • 日志中心
        • 在容器引擎控制台配置采集规则
        • 查看集群控制面日志
        • 日志概述
        • 查看业务日志
        • 使用CRD配置采集规则
    • 网络管理
      • CCE 集群内容器访问集群外服务
      • 容器网段空间耗尽如何继续扩容(VPC-ENI模式)
      • 容器网段空间耗尽如何继续扩容(VPC网络模式)
      • CCE IP Masquerade Agent 用户指南
      • 创建VPC-ENI模式集群
      • 对等连接场景下容器流量转发配置
      • 使用Network Policy网络策略
      • CCE 支持 IPv4 和 IPv6 双栈网络
      • 在CCE集群中使用NetworkPolicy
      • 网络编排
        • 集群 Pod 子网拓扑分布(容器网络 v2)
        • 容器网络 QoS 管理
        • VPC-ENI指定子网分配IP(容器网络 v2)
      • 网络连通性
        • 容器网络通过 NAT 网关访问公网
      • 网络维护
        • CCE容器网络常见错误码对应表
      • DNS
        • DNS 原理概述
        • DNS 问题排查指南
        • CoreDNS 组件手动升级指南
    • 虚拟节点
      • 管理虚拟节点
      • 配置BCIPod
      • 配置bci-profile
    • 备份中心
      • 备份概述
      • 恢复管理
      • 备份仓库
      • 备份管理
    • 巡检与诊断
      • GPU运行环境检查
      • 集群巡检
      • 故障诊断
    • 流量接入
      • NGINX Ingress 使用配置参考
      • CCE基于nginx-ingress实现灰度发布
      • BLB Ingress Annotation说明
      • 通过CCE使用K8S_Ingress
      • 通过YAML创建LoadBalancer_Service
      • 通过CCE使用K8S_Service
      • LoadBalancer Service Annotation说明
      • 使用直连 Pod 模式 LoadBalancer Service
      • Service复用已有负载均衡BLB
      • 通过YAML创建CCE_Ingress
      • 使用 NGINX Ingress
    • 权限管理
      • 配置集群OIDC认证
      • 配置IAM标签权限策略
      • 配置IAM自定义权限策略
      • 配置IAM预置权限策略
      • 权限概述
      • 配置预置RBAC权限策略
    • 配置管理
      • Secret管理
      • Configmap管理
    • 集群管理
      • 集群快照
      • CCE 安全组
      • 查看集群
      • 创建集群
      • 操作集群
      • 升级集群Kubernetes版本
      • 通过kubectl连接集群
      • 托管集群使用说明
      • CCE 支持 GPUSharing 集群
      • CCE节点资源预留说明
      • CCE 节点 CDS 扩容
  • 服务等级协议SLA
    • CCE服务等级协议SLA(V1.0)
  • Solution-Fabric
    • Fabric解决方案
  • API参考
    • 通用说明
    • 公共头和错误返回
    • 概述
  • 常见问题
    • windows下使用kubectl
    • 自动扩缩容常见问题
    • 通过kubectl创建简单的服务
    • 业务应用如何使用负载均衡?
    • 常见问题总览
    • 集群管理常见问题
  • API_V2参考
    • 通用说明
    • Instance相关接口
    • 附录
    • Autoscaler相关接口
    • 组件管理相关接口
    • 套餐适配相关接口
    • Task相关接口
    • 公共头和错误返回
    • Network相关接口
    • 服务域名
    • Cluster相关接口
    • Kubeconfig相关接口
    • InstanceGroup相关接口
    • RBAC相关接口
    • 概述
  • 产品定价
    • 产品定价
  • Solution-Xchain
    • 超级链解决方案
  • SDK
    • Go-SDK
      • 节点组管理
      • 节点管理
      • 集群管理
      • 初始化
      • 安装SDK工具包
      • 概述
所有文档
menu
没有找到结果,请重新输入

容器引擎 CCE

  • 功能发布记录
  • 产品描述
    • 介绍
    • 优势
    • 使用限制
    • 应用场景
    • 核心概念
    • 特性
  • 开发指南
    • EFK日志采集系统部署指南
    • 创建LoadBalancer类型的Service
    • Prometheus监控系统部署指南
    • kubectl管理配置
    • 在CCE集群中使用-Network-Policy
  • 常用工具
    • 视图命令行场景示例
  • 产品公告
    • CCE 新版集群管理发布公告
    • CCE 控制台升级公告
    • Kubernetes 版本发布说明
      • CCE发布Kubernetes 1.18版本说明
      • CCE发布Kubernetes 1.30版本说明
      • CCE Kubernetes 版本更新说明
      • CCE发布Kubernetes 1.22版本说明
      • CCE发布Kubernetes 1.20版本说明
      • CCE发布Kubernetes 1.28版本说明
      • CCE发布Kubernetes 1.24版本说明
      • CCE发布Kubernetes 1.26版本说明
    • 安全漏洞修复公告
      • 漏洞CVE-2020-14386修复公告
      • 修复漏洞CVE-2021-30465公告
      • 漏洞CVE-2019-5736修复公告
      • 漏洞CVE-2025-1097、CVE-2025-1098等修复公告
      • 关于 runc 的安全问题(CVE-2024-21626)影响声明
  • 快速入门
    • 快速部署nginx应用
    • 使用CCE容器引擎流程概述
  • 典型实践
    • CCE集群网络说明及规划
    • CCE典型实践之容器网络模式选择
    • Pod异常问题排查
    • 通过 CCE Ingress 实现虚机和容器服务的统一接入
    • CCE集群使用Jenkins持续发布
    • CCE-访问公网实践
    • Linux系统配置常用参数说明
    • 用户使用自定义 CNI 插件方法
    • CCE典型实践之Guestbook搭建
    • 使用KMS对etcd数据加密
    • 添加CGroup V2节点
    • CCE容器运行时选择
    • CCE使用检查清单
    • VPC-ENI模式集群访问公网实践
    • 利用 Velero 实现将应用跨云迁移到 百度CCE
    • 使用 CNI 配置容器内网络参数
    • CCE Resource Recommender 用户文档
    • CCE集群中使用私有镜像实践
    • 云原生AI
      • 使用 CCE AITraining Operator 实现弹性容错训练
      • 部署 TensorFlow Serving 推理服务
      • GPU虚拟化之隔离性最优型的最佳实践
  • 操作指南
    • 多用户访问控制
    • 使用须知
    • 命名空间管理
      • 设置资源配额
      • 设置资源限制
      • 命名空间基本操作
    • 弹性伸缩
      • 使用 cce-autoscaling-placeholder 实现秒级弹性伸缩
      • CCE 集群节点自动伸缩
      • 容器定时水平伸缩(CronHPA)
      • 容器水平伸缩(HPA)
    • 存储管理
      • 使用云盘CDS
      • 使用并行文件存储PFS
      • 使用对象存储BOS
      • 使用并行文件存储PFS L2
      • 使用本地存储
      • 使用数据湖存储加速工具RapidFS
      • 使用文件存储CFS
      • 概述
    • 节点管理
      • 移出节点
      • kubelet容器监控只读端口风险提示
      • 管理污点
      • 设置GPU显存共享
      • 添加节点
      • 自定义Kubelet参数
      • 设置节点封锁
      • 节点排水
      • 管理节点标签
    • 组件管理
      • CCE CSI BOS Plugin 说明
      • Kube Scheduler 说明文档
      • CCE CSI PFS L2 Plugin
      • CCE NodeLocal DNSCache 说明
      • CCE Ingress NGINX Controller 说明
      • CCE RDMA Device Plugin 说明
      • CCE Node Problem Detector 说明
      • CCE Credential Controller 说明
      • Kube Controller Manager 说明
      • CCE Ingress Controller 说明
      • CCE GPU Manager 说明
      • CCE Backup Controller 说明
      • CCE QoS Agent 说明
      • CCE Descheduler 说明
      • 组件概述
      • CCE Image Accelerate 说明
      • CCE Network Plugin说明
      • Kube ApiServer 说明
      • CCE Log Operator 说明
      • CoreDNS 说明
      • CCE NPU Manager 说明
      • CCE AI Job Scheduler 说明
      • CCE LB Controller 说明
      • CCE P2P Accelerator 说明
      • CCE_Hybrid_Manager说明
      • CCE CSI PFS Plugin 说明
      • CCE Deep Learning Frameworks Operator 说明
      • CCE Node Remedier 说明
      • CCE CSI CDS Plugin 说明
      • CCE Ascend Mindx DL说明
      • CCE Calico Felix 说明
      • CCE Virtual Kubelet组件
      • CCE Fluid说明
      • CCE Onepilot 说明
      • CCE CronHPA Controller 说明
      • CCE 动态调度插件说明
    • 云原生AI
      • 云原生AI概述
      • GPU虚拟化
        • MPS 最佳实践&注意事项
        • GPU独占和共享说明
        • GPU在离线混部使用说明
        • GPU虚拟化适配表
        • 单GPU容器共享多卡使用说明
        • 共享GPU场景下的镜像构建注意事项
        • 关闭节点显存共享功能注意事项
      • 队列管理
        • 逻辑队列和物理队列使用说明
        • 修改队列
        • 删除队列
        • 新建队列
      • 任务管理
        • 基于 NCCL的RDMA分布式训练示例
        • 新建AITraining任务
        • 新建PaddlePaddle任务
        • 删除任务
        • 查看任务信息
        • 新建Mxnet任务
        • 新建TensorFlow任务
        • 新建Pytorch任务
      • 数据集管理
        • 删除数据集
        • 操作数据集
        • 查看数据集
        • 新建数据集
      • AI监控大盘
        • 接入监控实例并开启采集任务
        • NVIDIA芯片资源观测
          • AI Job Scheduler组件
          • GPUManager组件
          • GPU资源池总览
          • GPU节点资源
          • GPU工作负载资源
        • 昇腾芯片资源观测
          • 昇腾节点资源
          • 昇腾资源池总览
          • 昇腾工作负载资源
      • AI 加速套件
        • 使用AIAK-Inference 加速推理业务
        • 使用AIAK-Training Pytorch版
        • AIAK 简介
        • 使用 AIAK-Training 部署分布式训练任务
    • Helm管理
      • Helm模板
      • Helm实例
    • 应用管理
      • 部署
      • 保密字典
      • 服务
      • 配置字典
      • 容器组
      • 概述
    • 镜像仓库
      • 使用容器镜像构建服务
      • 镜像仓库基本操作
    • Serverless集群
      • 在Serverless集群中使用Service
      • 产品概述
      • 创建Serverless集群
    • 工作负载
      • 设置工作负载自动水平伸缩
      • Statefulset管理
      • 使用私有镜像创建工作负载
      • Job管理
      • 查看容器组
      • CronJob管理
      • Daemonset管理
      • 免密拉取容器镜像
      • Deployment管理
    • 节点组管理
      • 节点组管理
      • 节点组介绍
      • 升级节点组
      • 添加外部已有节点
      • 自定义节点组 Kubelet 配置
      • 添加备选机型
      • 节点组节点故障检测自愈
      • 配置扩缩容策略
    • 监控日志
      • 使用Prometheus监控集群
      • CCE 事件中心
      • 集群审计仪表盘
      • CCE 集群异常事件报警
      • Java应用监控
      • 集群服务画像
      • 日志管理
      • 集群审计
      • 日志中心
        • 在容器引擎控制台配置采集规则
        • 查看集群控制面日志
        • 日志概述
        • 查看业务日志
        • 使用CRD配置采集规则
    • 网络管理
      • CCE 集群内容器访问集群外服务
      • 容器网段空间耗尽如何继续扩容(VPC-ENI模式)
      • 容器网段空间耗尽如何继续扩容(VPC网络模式)
      • CCE IP Masquerade Agent 用户指南
      • 创建VPC-ENI模式集群
      • 对等连接场景下容器流量转发配置
      • 使用Network Policy网络策略
      • CCE 支持 IPv4 和 IPv6 双栈网络
      • 在CCE集群中使用NetworkPolicy
      • 网络编排
        • 集群 Pod 子网拓扑分布(容器网络 v2)
        • 容器网络 QoS 管理
        • VPC-ENI指定子网分配IP(容器网络 v2)
      • 网络连通性
        • 容器网络通过 NAT 网关访问公网
      • 网络维护
        • CCE容器网络常见错误码对应表
      • DNS
        • DNS 原理概述
        • DNS 问题排查指南
        • CoreDNS 组件手动升级指南
    • 虚拟节点
      • 管理虚拟节点
      • 配置BCIPod
      • 配置bci-profile
    • 备份中心
      • 备份概述
      • 恢复管理
      • 备份仓库
      • 备份管理
    • 巡检与诊断
      • GPU运行环境检查
      • 集群巡检
      • 故障诊断
    • 流量接入
      • NGINX Ingress 使用配置参考
      • CCE基于nginx-ingress实现灰度发布
      • BLB Ingress Annotation说明
      • 通过CCE使用K8S_Ingress
      • 通过YAML创建LoadBalancer_Service
      • 通过CCE使用K8S_Service
      • LoadBalancer Service Annotation说明
      • 使用直连 Pod 模式 LoadBalancer Service
      • Service复用已有负载均衡BLB
      • 通过YAML创建CCE_Ingress
      • 使用 NGINX Ingress
    • 权限管理
      • 配置集群OIDC认证
      • 配置IAM标签权限策略
      • 配置IAM自定义权限策略
      • 配置IAM预置权限策略
      • 权限概述
      • 配置预置RBAC权限策略
    • 配置管理
      • Secret管理
      • Configmap管理
    • 集群管理
      • 集群快照
      • CCE 安全组
      • 查看集群
      • 创建集群
      • 操作集群
      • 升级集群Kubernetes版本
      • 通过kubectl连接集群
      • 托管集群使用说明
      • CCE 支持 GPUSharing 集群
      • CCE节点资源预留说明
      • CCE 节点 CDS 扩容
  • 服务等级协议SLA
    • CCE服务等级协议SLA(V1.0)
  • Solution-Fabric
    • Fabric解决方案
  • API参考
    • 通用说明
    • 公共头和错误返回
    • 概述
  • 常见问题
    • windows下使用kubectl
    • 自动扩缩容常见问题
    • 通过kubectl创建简单的服务
    • 业务应用如何使用负载均衡?
    • 常见问题总览
    • 集群管理常见问题
  • API_V2参考
    • 通用说明
    • Instance相关接口
    • 附录
    • Autoscaler相关接口
    • 组件管理相关接口
    • 套餐适配相关接口
    • Task相关接口
    • 公共头和错误返回
    • Network相关接口
    • 服务域名
    • Cluster相关接口
    • Kubeconfig相关接口
    • InstanceGroup相关接口
    • RBAC相关接口
    • 概述
  • 产品定价
    • 产品定价
  • Solution-Xchain
    • 超级链解决方案
  • SDK
    • Go-SDK
      • 节点组管理
      • 节点管理
      • 集群管理
      • 初始化
      • 安装SDK工具包
      • 概述
  • 文档中心
  • arrow
  • 容器引擎CCE
  • arrow
  • 开发指南
  • arrow
  • 创建LoadBalancer类型的Service
本页目录
  • 快速开始
  • 高级配置
  • 固定EIP
  • 不分配EIP(即VPC内BLB)
  • 自定义EIP配置
  • UDP-Service
  • 为Service的BLB指定子网

创建LoadBalancer类型的Service

更新时间:2025-08-21

本文档会详细介绍如何在CCE下创建类型是LoadBalancer的Service。

Kubernetes官方教程:Services

快速开始

当用户创建类型是LoadBalancer的Service,默认情况下,CCE会联动的创建BLB,并为此BLB绑定EIP。

以创建一个简单的Nginx为例:

Plain Text
1---
2kind: Service
3apiVersion: v1
4metadata:
5  name: nginx-service
6spec:
7  selector:
8    app: nginx
9  type: LoadBalancer
10  ports:
11  - name: nginx-port
12    port: 80
13    targetPort: 80
14    protocol: TCP
15---
16apiVersion: apps/v1beta1
17kind: Deployment
18metadata:
19  name: nginx-deployment
20spec:
21  replicas: 1
22  template:
23    metadata:
24      labels:
25        app: nginx
26    spec:
27      containers:
28      - name: nginx
29        image: nginx
30        ports:
31        - containerPort: 80

(1)创建

$ kubectl create -f nginx.yaml

(2)查询EIP

IP 8.8.8.8 即为此Nginx的EIP。

Plain Text
1$ kubectl get svc
2NAME            CLUSTER-IP     EXTERNAL-IP      PORT(S)        AGE
3nginx-service   1.1.1.1        8.8.8.8          80:30274/TCP   5m

(3)查询BLB

Plain Text
1$ kubectl get svc nginx-service -o jsonpath={.metadata.annotations}
2map[service.beta.kubernetes.io/cce-load-balancer-id:lb-xxxxxx]

lb-xxxxxx即为此Service的BLB的id。

(4)访问测试

$ curl -i http://8.8.8.8

高级配置

固定EIP

当用户删除Service并重新创建的时候,EIP会变,这样就需要去更改依赖于此IP的其他所有服务,所以CCE提供一种方式来固定此EIP。

固定EIP的方案:

(1)用户预先百度智能云上购买一个EIP实例
(2)在创建Service时,设置loadBalancerIP为此EIP
(3)创建Service,此时EXTERNAL-IP即为此EIP
(4)删除Service,CCE只会解绑此EIP而不会释放此EIP,用户下次还可以继续使用

示例如下:

Plain Text
1---
2kind: Service
3apiVersion: v1
4metadata:
5  name: nginx-service-eip-with-load-balancer-ip
6spec:
7  selector:
8    app: nginx-eip-with-load-balancer-ip
9  type: LoadBalancer
10  loadBalancerIP: 8.8.8.8
11  ports:
12  - name: nginx-port
13    port: 80
14    targetPort: 80
15    protocol: TCP
16---
17apiVersion: apps/v1beta1
18kind: Deployment
19metadata:
20  name: nginx-deployment-eip-with-load-balancer-ip
21spec:
22  replicas: 1
23  template:
24    metadata:
25      labels:
26        app: nginx-eip-with-load-balancer-ip
27    spec:
28      containers:
29      - name: nginx
30        image: nginx
31        ports:
32        - containerPort: 80

这样查到的EXTERNAL-IP即为此EIP:

Plain Text
1kubectl get svc nginx-service
2NAME                                    TYPE           CLUSTER-IP       EXTERNAL-IP      PORT(S)        AGE
3nginx-service-eip-with-loadBalancerIP   LoadBalancer   1.1.1.1          8.8.8.8          80:30601/TCP   1m

不分配EIP(即VPC内BLB)

用户使用时:
(1)设置Service.Spec.Type=LoadBalancer
(2)为Service添加annotations,即service.beta.kubernetes.io/cce-load-balancer-internal-vpc: "true"

示例如下:

Plain Text
1---
2kind: Service
3apiVersion: v1
4metadata:
5  name: nginx-service-blb-internal-vpc
6  annotations:
7    service.beta.kubernetes.io/cce-load-balancer-internal-vpc: "true"
8spec:
9  selector:
10    app: nginx-blb-internal-vpc
11  type: LoadBalancer
12  ports:
13  - name: nginx-port
14    port: 80
15    targetPort: 80
16    protocol: TCP
17---
18apiVersion: apps/v1beta1
19kind: Deployment
20metadata:
21  name: nginx-deployment-blb-internal-vpc
22spec:
23  replicas: 1
24  template:
25    metadata:
26      labels:
27        app: nginx-blb-internal-vpc
28    spec:
29      containers:
30      - name: nginx
31        image: nginx
32        ports:
33        - containerPort: 80

这样查到的EXTERNAL-IP只能在VPC内访问:

Plain Text
1kubectl get svc nginx-service
2NAME                             TYPE           CLUSTER-IP       EXTERNAL-IP      PORT(S)        AGE
3nginx-service-blb-internal-vpc   LoadBalancer   1.1.1.1          2.2.2.2          80:30601/TCP   1m

注:此内网BLB只能在一个VPC内的集群间正常使用;在使用同一个集群内的内网BLB时,会存在问题,建议在同一个集群内直接使用Service的ClusterIP

自定义EIP配置

EIP支持配置类型:

预付费(Prepaid)

项目 限制
公网带宽 1-200Mbps,Int
购买时长 [1,2,3,4,5,6,7,8,9,12,24,36],时间单位,month

后付费(Postpaid)

计费方式 公网带宽 费用举例
按使用流量计费(ByTraffic) 1~1000Mbps,Int 配置费用:¥0.00032/分钟;流量费用:¥0.76/GB
按使用带宽计费(ByBandwidth) 1-200Mbps,Int 配置费用(1Mbps为例):¥0.00094/分钟

使用方式: 在创建Service时设置相应Annotation如下:

Plain Text
1// 付费方式,默认:Postpaid;可选:Postpaid、Prepaid
2service.beta.kubernetes.io/cce-elastic-ip-payment-timing:"Postpaid"
3// 计费方式,默认:ByTraffic;可选:ByTraffic、ByBandwidth
4service.beta.kubernetes.io/cce-elastic-ip-billing-method:"ByTraffic"
5// 公网带宽,单位为Mbps,默认:1000或者200;对于prepay以及bandwidth类型的EIP,限制为为1~200之间的整数,对于traffic类型的EIP,限制为1~1000之前的整数。
6service.beta.kubernetes.io/cce-elastic-ip-bandwidth-in-mbps:"1000"
7// 对于预付费,必须设置时长,[1,2,3,4,5,6,7,8,9,12,24,36],单位月;对于后付费,此设置无效
8service.beta.kubernetes.io/cce-elastic-ip-reservation-length:"36"

后付费举例:

Plain Text
1kind: Service
2apiVersion: v1
3metadata:
4  name: nginx-service
5  annotations:
6    service.beta.kubernetes.io/cce-elastic-ip-payment-timing: "Postpaid"
7    service.beta.kubernetes.io/cce-elastic-ip-billing-method: "ByTraffic"
8    service.beta.kubernetes.io/cce-elastic-ip-bandwidth-in-mbps: "200"
9spec:
10  selector:
11    app: nginx
12  type: LoadBalancer
13  ports:
14  - name: http
15    port: 80
16    targetPort: 80

预付费举例(请确定余额充足,否则会失败):

Plain Text
1kind: Service
2apiVersion: v1
3metadata:
4  name: nginx-service
5  annotations:
6    service.beta.kubernetes.io/cce-elastic-ip-payment-timing: "Prepaid"
7    service.beta.kubernetes.io/cce-elastic-ip-bandwidth-in-mbps: "10"
8    service.beta.kubernetes.io/cce-elastic-ip-reservation-length:"1"
9spec:
10  selector:
11    app: nginx
12  type: LoadBalancer
13  ports:
14  - name: http
15    port: 80
16    targetPort: 80

说明事项 默认配置: 默认为:后付费+按流量+1000M带宽。

固定EIP: 不支持对固定EIP的配置进行更新,请用户自行到控制台修改。

用户更新Service EIP的配置(即手动编辑annotation): 支持更新的配置有:公网带宽

预付费:

(1)对于预付费,由于EIP API的限制,目前不支持自动续费,需要用户自行到console上续费。

(2)对于预付费,不需要设置计费方式

(3)删除Service时,预付费EIP不会释放,到期后才会释放

UDP-Service

修改spec.ports.protocol为UDP即可使用UDP Service的功能,举例如下:

Plain Text
1---
2apiVersion: v1
3kind: Service
4metadata:
5  name: udp-server-demo-svc
6  labels:
7    app: udp-server-demo
8spec:
9  type: LoadBalancer
10  ports:
11  - name: udp-server-demo-port
12    port: 3005
13    targetPort: 3005
14    protocol: UDP
15  selector:
16    app: udp-server-demo
17---
18apiVersion: extensions/v1beta1
19kind: Deployment
20metadata:
21  name: udp-server-demo
22  labels:
23    app: udp-server-demo
24spec:
25  replicas: 1
26  selector:
27    matchLabels:
28      app: udp-server-demo
29  template:
30    metadata:
31      labels:
32        app: udp-server-demo
33    spec:
34      containers:
35      - name: udp-server-demo
36        image: hub.baidubce.com/jpaas-public/udp-server-demo:latest
37        ports:
38        - containerPort: 3005
39          protocol: UDP

(1)部署udp测试服务

Plain Text
1$ kubectl apply -f udp.yaml

(2)UDP Service创建成功

Plain Text
1$ kubectl get svc
2NAME                  TYPE           CLUSTER-IP       EXTERNAL-IP      PORT(S)          AGE
3kubernetes            ClusterIP      172.16.0.1       <none>           443/TCP          6h
4udp-server-demo-svc   LoadBalancer   172.16.122.139   10.10.10.10      3005:31441/UDP   1m

(3)查看服务日志

Plain Text
1$ kubectl logs -f udp-server-demo-6fdf5d796f-h6595
2Received: HealthCheck
3Get Health Check, response OK
4Received: HealthCheck
5Get Health Check, response OK
6Received: HealthCheck
7Get Health Check, response OK

注:根据百度云负载均衡BLB的要求,对于监听UDP的服务,一定要通过UDP健康检查,BLB才会把流量转发到后端,所以需要用户的后端UDP服务响应健康检查字符串,详见:UDP健康检查介绍

为Service的BLB指定子网

为方便用户管理网络相关资源,支持创建Service时为BLB指定子网 用户使用时:

(1)设置Service.Spec.Type=LoadBalancer

(2)为Service添加annotations,指定子网ID,即service.beta.kubernetes.io/cce-load-balancer-subnet-id: "sbn-*"

示例如下:

YAML
1---
2kind: Service
3apiVersion: v1
4metadata:
5  name: nginx-service-blb-subnet-id
6  annotations:
7    service.beta.kubernetes.io/cce-load-balancer-subnet-id: "sbn-123456"
8spec:
9  selector:
10    app: nginx
11  type: LoadBalancer
12  ports:
13  - name: nginx-port
14    port: 80
15    targetPort: 80
16    protocol: TCP
17---
18apiVersion: apps/v1beta1
19kind: Deployment
20metadata:
21  name: nginx-deployment-blb-subnet-id
22spec:
23  replicas: 1
24  template:
25    metadata:
26      labels:
27        app: nginx
28    spec:
29      containers:
30      - name: nginx
31        image: nginx
32        ports:
33        - containerPort: 80

部署服务后,可以去百度智能云BLB页面查询创建的BLB所在的子网进行验证 注:仅支持在创建Service时指定子网,不支持创建Service之后编辑Service添加或修改该annotation

上一篇
EFK日志采集系统部署指南
下一篇
Prometheus监控系统部署指南