当前位置: 首页 > news >正文

阿里云ACK多个Service绑定单个SLB实践

阿里云ACK是什么

阿里云容器服务Kubernetes版(Alibaba Cloud Container Service for Kubernetes,简称容器服务ACK)是全球首批通过Kubernetes一致性认证的服务平台,提供高性能的容器应用管理服务,支持企业级Kubernetes容器化应用的生命周期管理,让您轻松高效地在云端运行Kubernetes容器化应用。

Service几种暴露方式

Kubernetes Service 支持下面一些暴露方式:

  • NodePort:通过每个节点上的 IP 和静态端口(NodePort)暴露服务。 NodePort 服务会路由到自动创建的 ClusterIP 服务。 通过请求 <节点 IP>:<节点端口>,你可以从集群的外部访问一个 NodePort 服务。
  • hostNetwork: true:Pod中运行的应用程序可以直接看到pod启动主机网络接口。
  • hostPort:是直接将容器端口与所调度节点上的端口路由,这样用户就可以通过宿主机IP加端口来访问Pod。
  • LoadBalancer:使用云提供商的负载均衡器向外部暴露服务。 外部负载均衡器可以将流量路由到自动创建的 NodePort 服务和 ClusterIP 服务上。
  • ExternalName:通过返回 CNAME 和对应值,可以将服务映射到 externalName 字段的内容(例如,foo.bar.example.com)。 无需创建任何类型代理。
  • Ingress:是自kubernetes1.1版本后引入的资源类型。必须要部署Ingress controller才能创建Ingress资源,Ingress controller是以一种插件的形式提供。Ingress controller 是部署在Kubernetes之上的Docker容器。它的Docker镜像包含一个像nginx或HAProxy的负载均衡器和一个控制器守护进程。控制器守护程序从Kubernetes接收所需的Ingress配置。它会生成一个nginx或HAProxy配置文件,并重新启动负载平衡器进程以使更改生效。换句话说,Ingress controller是由Kubernetes管理的负载均衡器。

需求

使用阿里云ACK容器服务时,我们Service默认就支持缓存LoadBalancer,大家有可能第一种念想,每个Service绑定一个SLB,这样会不会太浪费SLB。也可以通过Ingress来实现外部用户访问K8S集群内部。

Ingress是可以实现,但如果我们业务中有很多不是80或者443端口访问的,并且还在一个域名,比如下面:

  • www.example.com:8888
  • www.example.com:8080
  • www.example.com:8081

这种一般不推荐使用Ingress来实现,因为这样Ingress会开放很多端口,以后不便于维护。

那有没有在SLB充分利用前提下,实现上面的需求。方法当然有的,阿里云ACK支持多个Service绑定一个SLB多个端口

多个Service绑定一个SLB多个端口用法

PS: 前提条件:需要提前在SLB控制台创建SLB,SLB需要和K8S在同一个VPC网络下

Service声明TCP协议

apiVersion: v1
kind: Service
metadata:annotations:service.beta.kubernetes.io/alibaba-cloud-loadbalancer-force-override-listeners: "true"# 仅支持TCP和UDP协议。如需设置连接优雅中断,以下两项Annotation必选service.beta.kubernetes.io/alibaba-cloud-loadbalancer-connection-drain: "on"service.beta.kubernetes.io/alibaba-cloud-loadbalancer-connection-drain-timeout: "30"service.beta.kubernetes.io/alibaba-cloud-loadbalancer-delete-protection: "on"service.beta.kubernetes.io/alibaba-cloud-loadbalancer-modification-protection: "ConsoleProtection"service.beta.kubernetes.io/alibaba-cloud-loadbalancer-id: "slb-id"# ACK是Terway网络模式下,通过annotation:service.beta.kubernetes.io/backend-type:"eni"将Pod直接挂载到SLB后端,提升网络转发性能。service.beta.kubernetes.io/backend-type: "eni"name: nginx
spec:externalTrafficPolicy: Clusterports:- port: 80protocol: TCPtargetPort: 80selector:app: nginxtype: LoadBalancer

Service声明使用https协议

apiVersion: v1
kind: Service
metadata:annotations:service.beta.kubernetes.io/alibaba-cloud-loadbalancer-protocol-port: "https:8888"service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-flag: "on"service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-type: "http"service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-uri: "/health"service.beta.kubernetes.io/alibaba-cloud-loadbalancer-healthy-threshold: "4"service.beta.kubernetes.io/alibaba-cloud-loadbalancer-unhealthy-threshold: "4"service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-timeout: "10"service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-interval: "3"service.beta.kubernetes.io/alibaba-cloud-loadbalancer-cert-id: "证书id"service.beta.kubernetes.io/alibaba-cloud-loadbalancer-force-override-listeners: "true"service.beta.kubernetes.io/alibaba-cloud-loadbalancer-delete-protection: "on"service.beta.kubernetes.io/alibaba-cloud-loadbalancer-modification-protection: "ConsoleProtection"service.beta.kubernetes.io/alibaba-cloud-loadbalancer-id: "slb-id"# ACK是Terway网络模式下,通过annotation:service.beta.kubernetes.io/backend-type:"eni"将Pod直接挂载到SLB后端,提升网络转发性能。service.beta.kubernetes.io/backend-type: eniname: nginx
spec:externalTrafficPolicy: Clusterports:- port: 80protocol: TCPtargetPort: 80selector:app: nginxtype: LoadBalancer

Service声明使用http协议

apiVersion: v1
kind: Service
metadata:annotations:service.beta.kubernetes.io/alibaba-cloud-loadbalancer-protocol-port: "http:8080"service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-flag: "on"service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-type: "http"service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-uri: "/health"service.beta.kubernetes.io/alibaba-cloud-loadbalancer-healthy-threshold: "4"service.beta.kubernetes.io/alibaba-cloud-loadbalancer-unhealthy-threshold: "4"service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-timeout: "10"service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-interval: "3"service.beta.kubernetes.io/alibaba-cloud-loadbalancer-force-override-listeners: "true"service.beta.kubernetes.io/alibaba-cloud-loadbalancer-delete-protection: "on"service.beta.kubernetes.io/alibaba-cloud-loadbalancer-modification-protection: "ConsoleProtection"service.beta.kubernetes.io/alibaba-cloud-loadbalancer-id: "slb-id"# ACK是Terway网络模式下,通过annotation:service.beta.kubernetes.io/backend-type:"eni"将Pod直接挂载到SLB后端,提升网络转发性能。service.beta.kubernetes.io/backend-type: eniname: nginxnamespace: default
spec:externalTrafficPolicy: Clusterports:- port: 80protocol: TCPtargetPort: 80selector:run: nginxtype: LoadBalancer

参考链接

  • https://help.aliyun.com/document_detail/86531.html?spm=5176.21213303.J_6704733920.7.c5983eda1xJwdH&scm=20140722.S_help%40%40%E6%96%87%E6%A1%A3%40%4086531.S_0%2Bos0.ID_86531-RL_serviceDOTbetaDOTkubernetes-OR_helpmain-V_2-P0_0
  • https://help.aliyun.com/document_detail/181517.html
  • https://kubernetes.io/zh/docs/concepts/services-networking/service/#externalname

🔥运维干货分享

  • 我的站点:www.byteooo.cn

  • 软考高级系统架构设计师备考学习资料

  • 软考中级数据库系统工程师学习资料

  • 软考高级网络规划设计师备考学习资料

  • 软考高级系统规划与管理师

  • 软考中级系统集成项目管理师

  • Kubernetes CKA认证学习资料分享

  • AI大模型学习资料合集

  • 免费文档翻译工具(支持word、pdf、ppt、excel)

  • PuTTY中文版安装包

  • MobaXterm中文版安装包

  • pinginfoview网络诊断工具中文版

  • Xshell、Xsftp、Xmanager中文版安装包

  • Typora简单易用的Markdown编辑器

  • Window进程监控工具,能自动重启进程和卡死检测

  • Spring 源码学习资料分享

  • 毕业设计高质量毕业答辩 PPT 模板分享

  • IT行业工程师面试简历模板分享

http://www.dtcms.com/a/492381.html

相关文章:

  • 电脑硬盘和内存查询和分配
  • 公众电影网站怎么做保洁公司在哪个网站做推广比较好
  • DeerFlow多智能体项目分析-架构和项目入口
  • 湖南微信网站广州交通站场建设管理中心网站
  • 【UI】像素颜色格式
  • 网站建设费用表wordpress特别慢
  • 管理学习网站旅游网网站建设
  • 私募基金公司网站建设盘锦化工网站建设
  • 成绩查询网站开发潍坊快速网站排名
  • 广州模板建站系统wordpress 文字不显示
  • 企业网站建设方案书模板wordpress响应式concise主题
  • 衡石科技HQL与Agentic BI技术深度解析:构建下一代智能数据分析引擎
  • 淄博比较好的网站建设公司怎么用织梦源代码做网站
  • 智能SQL审核优化工具 PawSQL 月度更新 | 正确性优先、兼容性与可观测性加强
  • 网站备案icp过期青岛网站设计建议i青岛博采
  • 西安网站手机网站建设专业的上海网站建设公司哪家好
  • Kubernetes:控制器 - HPA
  • 网站开发入那个科目网页设计常用代码
  • 深圳网站制作就找兴田德润公司申请邮箱怎么申请
  • 网站推广建设期游戏公司招聘网站
  • 视觉差 网站邢台网站建设哪家公司好
  • Windows Search 服务
  • 网站优化及推广顺德网站制作案例价位
  • 北京品牌网站建设公司排名做图表的网站知乎
  • 点控云智能短信:重构企业与用户的连接,让品牌沟通更高效
  • NewStarCTF2025-Week1-PWN
  • 个人网站建站的流程网站设计过程
  • 网站开发合同受托方辽宁建设工程信息网业绩录入规定
  • 英文网站建设维护网络技术培训机构
  • 网站开发语言排行手机wap网页设计