企业运维训练营之云上网络原理与实践课程 - 第四讲 负载均衡ALB - 课前答疑

简介: 课程目标了解应用型负载均衡ALB的产品功能了解应用型负载均衡ALB底层架构与相关技术掌握应用型负载均衡ALB的产品优势熟悉应用型负载均衡ALB的使用场景

企业运维训练营之云上网络原理与实践课程

第四讲 负载均衡ALB - 课前答疑

 

视频地址:

https://developer.aliyun.com/learning/course/991/detail/14982

 

 

SLBACKEDAS中的应用场景

 

1、场景一:K8s中的Service场景

 

ACKK8s版本的容器服务,具有高性能可伸缩的容器应用管理能力,支持企业级容器化应用的全生命周期管理。

K8s全称为kubernetes,是一个开源的,用于管理云平台中多个主机上的容器化的应用。目标是让部署容器化的应用简单并且高效,K8s提供了应用部署、规划、更新和维护的机制。

K8s中比较重要的组件就是Service(服务),ServiceK8s中的专有名词。Service中有很多podpod是容器里面直接安装的应用或服务,一个pod相当于一个容器组,Service是很多pod的集合,相当于一个虚拟的负载均衡SLB

 

a.  什么是Service

image.png

 

ServiceKubernetes中的服务发现与负载均衡。

 

为什么需要服务发现? Kubernetes应用应如何相互调用? Kubernetes应用应如何相互调用?

 

  • Pod生命周期短暂, IP地址随时变化;
  • Deployment等的Pod组需要统一访问入口和做负载均衡;
  • 应用间在不同环境部署时,保持同样的部署拓扑和访问方式;
  • 集群内可以通过service name直接访问;

 

b.  创建Service暴露服务

 

  • Service为外部请求提供了一个访问入口,外部请求需要通过Service才能访问到内部的pod
  • 因为pod的调度和生成是随机的,也就是说pod没有固定的IP,不需要pod固定在服务器上,pod的数量是根据业务(请求数量)的多少进行自动增减的,外部请求很难找到对应的pod
  • 因为servicepod的集合,随着pod的增加和减少,自动更新它的规则和策略,外部请求可以通过sevice快速找到相应的pod

 

c.  Service类型

 

K8sService具有以下三种类型的外部访问方式:

 

  • ClusterIP

在集群内单独分配给service使用的IP就叫ClusterIP,只有在集群内部才能访问到ClusterIP,在集群外部是没有办法访问到ClusterIP的。

 

  • NodePort

分配一个集群内部的IP地址,并在每个节点上启用一个端口来暴露服务,可以在集群外部被访问。

 

  • LoadBanancer

分配一个集群内部的IP地址,并在每个节点上启用一个端口来暴露服务,除此之外,kubernetes会请求底层云平台上的负载均衡器,把Node节点作为后端添加进去。LoadBanancer具有Cluster模式和Local模式。

Cluster模式:所有节点都加入SLB后端,如果第一次转发没有命中业务,则需要二次转发;Local模式:SLB可以精确转发到后端业务。

 

2、场景二:Ingress Controller工作原理

 

a.  Ingress Controller的概念

 

Ingress是一种K8s资源对象,用于对外暴露服务,该资源对象定义了不同主机名(域名)URL和对应后端Service ( K8s Service )的绑定,根据不同的路径路由httphttps流量。

Ingress Contoller是一个pod服务,封装了一个 web前端负载均衡器,同时在其基础上实现了动态感知Ingress,并根据Ingress的定义,动态生成前端web负载均衡器的配置文件,比如Nginx Ingress Controller本质上就是一个Nginx,只不过它能根据Ingress资源的定义动态生成Nginx的配置文件,然后动态Reload

具体实现反向代理及负载均衡的程序,对Ingress定义的规则进行解析,根据配置的规则来实现请求转发。

image.png

 

为了使得Ingress资源正常工作,集群中必须要有个Ingress Controller来解析Ingress的转发规则。Ingress Controller收到请求,匹配Ingress转发规则转发到后端Service,而Service转发到Pod,最终由Pod处理请求。KubernetesServiceIngressIngress Controller有着以下关系:

  • Service是后端真实服务的抽象, 一个Service可以代表多个相同的后端服务。
  • Ingress是反向代理规则,用来规定HTTP/HTTPS请求应该被转发到哪个Service上。例如:根据请求中不同的HostURL路径,让请求落到不同的Service上。

 

b.  Ingress基本操作:

 image.png

 

  • name : Ingress的名称,本例为test-ingress
  • host :指定服务访问域名
  • path :指定访问的url路径。SLB将流量转发到backend之前,所有的入站请求都要先匹配hostpath
  • backend :由服务名称和服务端口组成
  • 服务名称: Ingress转发的backend服务名称
  • 服务端口:服务暴露的端口

 

可以将Ingress配置为服务提供外部可访问的URL、负载均衡流量、终止SSL/TLS以及提供基于名称虚拟主机等能力。Ingress控制器通常负责通过负载均衡器来实现Ingress

 

c.  最佳实践:部署高可靠Ingress Controller

image.png

原则:

  • pod多副本,避免单点故障;
  • ingress controller部署在单独的节点,避免其他应用抢占资源;
  • 根据业务流量水平扩缩容ingress节点或者ingress controller 水平伸缩;

 

以上是SLB结合ACK的场景,SLB结合EDAS的场景也是类似的,因为EDAS本身就是一个分布式服务的框架,可以加ECS节点,也可以加K8s容器集群,然后加入到SLB的后端。

image.png

 

 

相关实践学习
部署高可用架构
本场景主要介绍如何使用云服务器ECS、负载均衡SLB、云数据库RDS和数据传输服务产品来部署多可用区高可用架构。
负载均衡入门与产品使用指南
负载均衡(Server Load Balancer)是对多台云服务器进行流量分发的负载均衡服务,可以通过流量分发扩展应用系统对外的服务能力,通过消除单点故障提升应用系统的可用性。 本课程主要介绍负载均衡的相关技术以及阿里云负载均衡产品的使用方法。
相关文章
|
2月前
|
存储 运维 安全
2024.3.18隐语训练营第1讲笔记:数据可信流通,从运维信任到技术信任
数据二十条提出了要建立数据可信流通体系,使得数据可以安全的流转起来。但由于在数据流通中存在的各种风险,使得信任四要素全部遭到破坏,导致信任降级甚至崩塌。为了应对这些风险,要实现从运维信任到技术信任的转变,针对信任的各个要素,提出了解决方案。最后简要介绍了安全可信基础设施的融合布局。
47 3
|
12天前
|
存储 算法 Windows
课程视频|R语言bnlearn包:贝叶斯网络的构造及参数学习的原理和实例(下)
课程视频|R语言bnlearn包:贝叶斯网络的构造及参数学习的原理和实例
|
12天前
|
算法 数据可视化 数据挖掘
课程视频|R语言bnlearn包:贝叶斯网络的构造及参数学习的原理和实例(上)
课程视频|R语言bnlearn包:贝叶斯网络的构造及参数学习的原理和实例
|
8天前
|
运维 监控 安全
网络安全预习课程笔记(四到八节)
网络安全领域的岗位多样化,包括应急响应、代码审计、安全研究、工具编写、报告撰写、渗透测试和驻场服务等。其中,应急响应处理系统故障和安全事件,代码审计涉及源码漏洞查找,安全研究侧重漏洞挖掘,工具编写则要开发自动化工具,报告撰写需要良好的写作能力。渗透测试涵盖Web漏洞和内网渗透。岗位选择受公司、部门和领导的影响。此外,还可以参与CTF比赛或兼职安全事件挖掘。了解不同岗位职责和技能需求,如安全运维工程师需要熟悉Web安全技术、系统加固、安全产品和日志分析等。同时,渗透测试包括信息收集、威胁建模、漏洞分析、攻击实施和报告撰写等步骤。学习网络安全相关术语,如漏洞、木马、后门等,有助于深入理解和学习。
|
12天前
|
前端开发 数据挖掘 数据建模
课程视频|R语言bnlearn包:贝叶斯网络的构造及参数学习的原理和实例(中)
课程视频|R语言bnlearn包:贝叶斯网络的构造及参数学习的原理和实例
|
16天前
|
负载均衡 算法
SpringCloud&Ribbon负载均衡原理与实践
SpringCloud&Ribbon负载均衡原理与实践
20 3
|
1月前
|
JavaScript Java 测试技术
基于Java的网络类课程思政学习系统的设计与实现(源码+lw+部署文档+讲解等)
基于Java的网络类课程思政学习系统的设计与实现(源码+lw+部署文档+讲解等)
31 0
基于Java的网络类课程思政学习系统的设计与实现(源码+lw+部署文档+讲解等)
|
2月前
|
存储 Kubernetes 应用服务中间件
容器服务ACK常见问题之SLB公网改成ALB失败如何解决
容器服务ACK(阿里云容器服务 Kubernetes 版)是阿里云提供的一种托管式Kubernetes服务,帮助用户轻松使用Kubernetes进行应用部署、管理和扩展。本汇总收集了容器服务ACK使用中的常见问题及答案,包括集群管理、应用部署、服务访问、网络配置、存储使用、安全保障等方面,旨在帮助用户快速解决使用过程中遇到的难题,提升容器管理和运维效率。
|
2月前
|
运维 安全 区块链
隐私计算训练营第一讲 :数据可信流通,从运维信任到技术信任
构建数据可信流通体系旨在解决数据流转中的安全和信任问题,确保来源可确认、使用范围界定、过程可追溯及风险可控。体系基于身份验证、利益对齐、预期能力和行为审计的技术要求,采用可信计算、区块链、隐私计算等技术,打造从原始到衍生数据的全程可信环境。密态计算技术成为关键,推动数据密态时代的到来,其中密态天空计算是重要的基础设施。
37 0
|
2月前
|
运维 安全 区块链
隐语训练营第1讲笔记:数据可信流通,从运维信任到技术信任
数据可信流通需要从运维信任转向技术信任,需要安全可信基础设施的融合布局。
42 1