Kubernetes Ingress解析

机器学习:线性回归模型的原理、应用及优缺点 线性回归是一种统计学和机器学习中常用的方法,用于建立变量之间线性关系的模型。其原理基于假设因变量(或响应变量)与自变量之间存在线性关系。通过最小二乘法,得到最优的系数,从而建立了线性回归模型。模型的预测值 ( \hat{Y} ) 可以通过将自变量的值带入模型中计算得到。可以使用各种指标来评估模型的性能,如均方误差(Mean Squared Error,MSE)或决定系数(R-squared)。这些指标可以衡量模型对观测数据的拟合程度和预测能力。当存在多个自变量时,模型形式仍然是线性的,只是系数增加了。 阅读详情

前言

这是kubernete官方文档中Ingress Resource的翻译,因为最近工作中用到,文章也不长,也很好理解,索性翻译一下,也便于自己加深理解,同时造福kubernetes中文社区。后续准备使用Traefik来做Ingress controller,文章末尾给出了几个相关链接,实际使用案例正在摸索中,届时相关安装文档和配置说明将同步更新到kubernetes-handbook中。

术语

在本篇文章中你将会看到一些在其他地方被交叉使用的术语,为了防止产生歧义,我们首先来澄清下。

  • 节点:Kubernetes集群中的一台物理机或者虚拟机。
  • 集群:位于Internet防火墙后的节点,这是kubernetes管理的主要计算资源。
  • 边界路由器:为集群强制执行防火墙策略的路由器。 这可能是由云提供商或物理硬件管理的网关。
  • 集群网络:一组逻辑或物理链接,可根据Kubernetes网络模型实现群集内的通信。 集群网络的实现包括Overlay模型的 flannel 和基于SDN的OVS。
  • 服务:使用标签选择器标识一组pod成为的Kubernetes服务。 除非另有说明,否则服务假定在集群网络内仅可通过虚拟IP访问。

什么是Ingress?

通常情况下,service和pod仅可在集群内部网络中通过IP地址访问。所有到达边界路由器的流量或被丢弃或被转发到其他地方。从概念上讲,可能像下面这样:

    internet
        |
  ------------
  [ Services ]

Ingress是授权入站连接到达集群服务的规则集合。

    internet
        |
   [ Ingress ]
   --|-----|--
   [ Services ]

你可以给Ingress配置提供外部可访问的URL、负载均衡、SSL、基于名称的虚拟主机等。用户通过POST Ingress资源到API server的方式来请求ingress。 Ingress controller负责实现Ingress,通常使用负载平衡器,它还可以配置边界路由和其他前端,这有助于以HA方式处理流量。

先决条件

在使用Ingress resource之前,有必要先了解下面几件事情。Ingress是beta版本的resource,在kubernetes1.1之前还没有。你需要一个Ingress Controller来实现Ingress,单纯的创建一个Ingress没有任何意义。

GCE/GKE会在master节点上部署一个ingress controller。你可以在一个pod中部署任意个自定义的ingress controller。你必须正确地annotate每个ingress,比如 运行多个ingress controller 和 关闭glbc.

确定你已经阅读了Ingress controller的beta版本限制。在非GCE/GKE的环境中,你需要在pod中部署一个controller。

Ingress Resource

最简化的Ingress配置:

1: apiVersion: extensions/v1beta1
2: kind: Ingress
3: metadata:
4:   name: test-ingress
5: spec:
6:   rules:
7:   - http:
8:       paths:
9:       - path: /testpath
10:        backend:
11:           serviceName: test
12:           servicePort: 80

如果你没有配置Ingress controller就将其POST到API server不会有任何用处

配置说明

1-4行:跟Kubernetes的其他配置一样,ingress的配置也需要apiVersion,kind和metadata字段。配置文件的详细说明请查看部署应用, 配置容器和 使用resources.

5-7行: Ingress spec 中包含配置一个loadbalancer或proxy server的所有信息。最重要的是,它包含了一个匹配所有入站请求的规则列表。目前ingress只支持http规则。

8-9行:每条http规则包含以下信息:一个host配置项(比如for.bar.com,在这个例子中默认是*),path列表(比如:/testpath),每个path都关联一个backend(比如test:80)。在loadbalancer将流量转发到backend之前,所有的入站请求都要先匹配host和path。

10-12行:正如 services doc中描述的那样,backend是一个service:port的组合。Ingress的流量被转发到它所匹配的backend。

全局参数:为了简单起见,Ingress示例中没有全局参数,请参阅资源完整定义的api参考。 在所有请求都不能跟spec中的path匹配的情况下,请求被发送到Ingress controller的默认后端,可以指定全局缺省backend。

Ingress Controllers

为了使Ingress正常工作,集群中必须运行Ingress controller。 这与其他类型的控制器不同,其他类型的控制器通常作为kube-controller-manager二进制文件的一部分运行,在集群启动时自动启动。 你需要选择最适合自己集群的Ingress controller或者自己实现一个。 示例和说明可以在这里找到。

在你开始前

以下文档描述了Ingress资源中公开的一组跨平台功能。 理想情况下,所有的Ingress controller都应该符合这个规范,但是我们还没有实现。 GCE和nginx控制器的文档分别在这里和这里。确保您查看控制器特定的文档,以便您了解每个文档的注意事项。

Ingress类型

单Service Ingress

Kubernetes中已经存在一些概念可以暴露单个service(查看替代方案),但是你仍然可以通过Ingress来实现,通过指定一个没有rule的默认backend的方式。

ingress.yaml定义文件:

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: test-ingress
spec:
  backend:
    serviceName: testsvc
    servicePort: 80

使用kubectl create -f命令创建,然后查看ingress:

$ kubectl get ing
NAME                RULE          BACKEND        ADDRESS
test-ingress        -             testsvc:80     107.178.254.228

107.178.254.228就是Ingress controller为了实现Ingress而分配的IP地址。RULE列表示所有发送给该IP的流量都被转发到了BACKEND所列的Kubernetes service上。

简单展开

如前面描述的那样,kubernete pod中的IP只在集群网络内部可见,我们需要在边界设置一个东西,让它能够接收ingress的流量并将它们转发到正确的端点上。这个东西一般是高可用的loadbalancer。使用Ingress能够允许你将loadbalancer的个数降低到最少,例如,嫁入你想要创建这样的一个设置:

foo.bar.com -> 178.91.123.132 -> / foo    s1:80
                                 / bar    s2:80

你需要一个这样的ingress:

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: test
spec:
  rules:
  - host: foo.bar.com
    http:
      paths:
      - path: /foo
        backend:
          serviceName: s1
          servicePort: 80
      - path: /bar
        backend:
          serviceName: s2
          servicePort: 80

使用kubectl create -f创建完ingress后:

$ kubectl get ing
NAME      RULE          BACKEND   ADDRESS
test      -
          foo.bar.com
          /foo          s1:80
          /bar          s2:80

只要服务(s1,s2)存在,Ingress controller就会将提供一个满足该Ingress的特定loadbalancer实现。 这一步完成后,您将在Ingress的最后一列看到loadbalancer的地址。

基于名称的虚拟主机

Name-based的虚拟主机在同一个IP地址下拥有多个主机名。

foo.bar.com --|                 |-> foo.bar.com s1:80
              | 178.91.123.132  |
bar.foo.com --|                 |-> bar.foo.com s2:80

下面这个ingress说明基于Host header的后端loadbalancer的路由请求:

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: test
spec:
  rules:
  - host: foo.bar.com
    http:
      paths:
      - backend:
          serviceName: s1
          servicePort: 80
  - host: bar.foo.com
    http:
      paths:
      - backend:
          serviceName: s2
          servicePort: 80

默认backend:一个没有rule的ingress,如前面章节中所示,所有流量都将发送到一个默认backend。你可以用该技巧通知loadbalancer如何找到你网站的404页面,通过制定一些列rule和一个默认backend的方式。如果请求header中的host不能跟ingress中的host匹配,并且/或请求的URL不能与任何一个path匹配,则流量将路由到你的默认backend。

TLS

你可以通过指定包含TLS私钥和证书的secret来加密Ingress。 目前,Ingress仅支持单个TLS端口443,并假定TLS termination。 如果Ingress中的TLS配置部分指定了不同的主机,则它们将根据通过SNI TLS扩展指定的主机名(假如Ingress controller支持SNI)在多个相同端口上进行复用。 TLS secret中必须包含名为tls.crt和tls.key的密钥,这里面包含了用于TLS的证书和私钥,例如:

apiVersion: v1
data:
  tls.crt: base64 encoded cert
  tls.key: base64 encoded key
kind: Secret
metadata:
  name: testsecret
  namespace: default
type: Opaque

在Ingress中引用这个secret将通知Ingress controller使用TLS加密从将客户端到loadbalancer的channel:

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: no-rules-map
spec:
  tls:
    - secretName: testsecret
  backend:
    serviceName: s1
    servicePort: 80

请注意,各种Ingress controller支持的TLS功能之间存在差距。 请参阅有关nginx,GCE或任何其他平台特定Ingress controller的文档,以了解TLS在你的环境中的工作原理。

Ingress controller启动时附带一些适用于所有Ingress的负载平衡策略设置,例如负载均衡算法,后端权重方案等。更高级的负载平衡概念(例如持久会话,动态权重)尚未在Ingress中公开。 你仍然可以通过service loadbalancer获取这些功能。 随着时间的推移,我们计划将适用于跨平台的负载平衡模式加入到Ingress资源中。

还值得注意的是,尽管健康检查不直接通过Ingress公开,但Kubernetes中存在并行概念,例如准备探查,可以使你达成相同的最终结果。 请查看特定控制器的文档,以了解他们如何处理健康检查(nginx,GCE)。

更新Ingress

假如你想要向已有的ingress中增加一个新的Host,你可以编辑和更新该ingress:

$ kubectl get ing
NAME      RULE          BACKEND   ADDRESS
test      -                       178.91.123.132
          foo.bar.com
          /foo          s1:80
$ kubectl edit ing test

这会弹出一个包含已有的yaml文件的编辑器,修改它,增加新的Host配置。

spec:
  rules:
  - host: foo.bar.com
    http:
      paths:
      - backend:
          serviceName: s1
          servicePort: 80
        path: /foo
  - host: bar.baz.com
    http:
      paths:
      - backend:
          serviceName: s2
          servicePort: 80
        path: /foo
..

保存它会更新API server中的资源,这会触发ingress controller重新配置loadbalancer。

$ kubectl get ing
NAME      RULE          BACKEND   ADDRESS
test      -                       178.91.123.132
          foo.bar.com
          /foo          s1:80
          bar.baz.com
          /foo          s2:80

在一个修改过的ingress yaml文件上调用kubectl replace -f命令一样可以达到同样的效果。

跨可用域故障

在不通云供应商之间,跨故障域的流量传播技术有所不同。 有关详细信息,请查看相关Ingress controller的文档。 有关在federation集群中部署Ingress的详细信息,请参阅[federation文档]()。

未来计划

  • 多样化的HTTPS/TLS模型支持(如SNI,re-encryption)
  • 通过声明来请求IP或者主机名
  • 结合L4和L7 Ingress
  • 更多的Ingress controller

请跟踪L7和Ingress的proposal,了解有关资源演进的更多细节,以及Ingress repository,了解有关各种Ingress controller演进的更多详细信息。

替代方案

你可以通过很多种方式暴露service而不必直接使用ingress:

参考

Kubernetes Ingress Resource

使用NGINX Plus负载均衡Kubernetes服务

使用 NGINX 和 NGINX Plus 的 Ingress Controller 进行 Kubernetes 的负载均衡

Kubernetes : Ingress Controller with Træfɪk and Let’s Encrypt

Kubernetes : Træfɪk and Let’s Encrypt at scale

Kubernetes Ingress Controller-Træfɪk

Kubernetes 1.2 and simplifying advanced networking with Ingress

线性回归基本原理 线性回归 阅读详情

相关推荐

Python线性回归实战:从原理到应用

线性回归作为机器学习的基础算法,通过建立特征与目标变量之间的线性关系模型,广泛应用于数据预测与分析。其核心原理y=wx+b简单直观,适合作为机器学习入门项目。在Python生态中,scipy、statsmodels和scikit-learn等库提供了不同层次的实现方案,满足从快速验证到工业级部署的需求。典型应用场景包括房价预测、销售分析和学术研究等。通过特征工程和正则化等技术,可以处理非线性关系和多重共线性问题。掌握线性回归不仅为理解更复杂算法奠定基础,也是数据科学实践的重要起点。

weixin_33708633的博客 257

线性回归模型

线性回归是一种预测连续型响应变量(也称为因变量或目标变量)的方法,基于一个或多个解释变量(自变量或特征) 。

以择人之心择己,以恕己之心恕人。 712

线性回归模型:从原理到工业级应用实战

线性回归作为机器学习中最基础的监督学习算法,通过建立特征与目标变量之间的线性关系进行预测。其核心原理是通过最小化预测误差来求解权重参数,具有模型可解释性强、计算效率高等特点。在工程实践中,线性回归常作为基线模型应用于房价预测、销量预估等场景,配合特征工程和正则化技术可有效提升性能。本文结合Scikit-learn框架,详解数据预处理、模型训练、评估优化全流程,特别针对工业级应用中的特征工程技巧和部署优化方案进行深入探讨,并分享电商价格预测等实战经验。

weixin_33895516的博客 441

深入解析线性回归:算法原理、应用与Python实战案例

通过本文的介绍,我们不仅详细了解了线性回归的基本原理、不同类型的线性回归模型,而且通过具体的Python实现示例,深入探讨了线性回归在实际问题中的应用。线性回归虽然是最基础的预测技术之一,但它的应用范围极广,从经济学到生物统计,从市场分析到社会科学,都能发现它的身影。通过实际案例的分析,我们可以看到,线性回归模型能够为我们提供有价值的洞察,帮助我们预测和解释关键因素对结果变量的影响。

m0_69240837的博客 2636

【机器学习-06】线性回归(Linear Regression,LR)算法:原理、应用与实现

在【机器学习-01】机器学习一般建模流程yiβ0β1x1βp−1xp−1εii12nyi​β0​β1​x1​...βp−1​xp−1​εi​i12...n上述等式的矩阵形式是yXβεy∈RnX∈Rn∗pβ∈Rpε∈RnyXβεy∈RnX∈Rn∗pβ∈Rpε∈Rn其中 Y 是反应变量, X 是解释变量,β 是参数。

qq_38614074的博客 1万+

26、贝叶斯线性回归:原理与应用

本文介绍了贝叶斯线性回归的基本原理及其应用,包括正则化与贝叶斯视角的关系、贝叶斯模型中的先验和似然设定、预测分布的计算、后验分布推导以及边际似然在模型选择中的作用。通过贝叶斯方法,可以有效处理过拟合问题,并提供可靠的预测不确定性评估。

tensor9flow的博客 79

线性回归完全指南:从数学原理到实践应用

线性回归完全指南:从数学原理到实践应用

2501_91537388的博客 1242

25、线性回归:原理、方法与应用

本文深入探讨了线性回归的基本原理、参数估计方法及其在实际中的应用。从最大似然估计到最大后验估计,文章系统介绍了如何通过概率建模和正则化技术解决过拟合问题,并展示了多项式回归、岭回归等拓展方法。同时,涵盖了模型选择、性能评估指标(如RMSE、R²)以及线性回归在时间序列、控制、优化和深度学习中的广泛应用,为读者提供了一套完整的线性回归理论与实践框架。

y7z8a的博客 84

线性回归模型:原理、应用与评估

在建立线性回归模型时,通常使用最小二乘法来拟合数据,并通过各种指标来评估模型的性能,如均方误差(MSE)或决定系数(R-squared)。这些指标可以衡量模型对观测数据的拟合程度和预测能力。线性回归模型是一种确定变量之间相关关系的数学回归模型,也是统计学和机器学习中常用的方法。它基于假设因变量(或响应变量)与自变量之间存在线性关系。

这里汇聚了前沿的技术分享与实用的开发技巧,带你探索从创意到企业的技术创业之路。 580

38、线性回归与岭回归:原理、方法与应用

本文详细介绍了线性回归和岭回归的基本原理、计算方法及其应用场景。线性回归基于最大似然估计,适用于数据特征维度较低且无严重共线性的情况;而岭回归通过引入L2正则化项,有效缓解了过拟合问题,特别适合高维数据、多重共线性和数据量较少的场景。文章还比较了两种方法的性能差异,并给出了岭回归的具体实现步骤和选择正则化强度的策略,帮助读者在实际问题中更好地选择和应用这两种回归方法。

metal的博客 65

阿里奇门接口联调全流程详解:从沙箱自测到正式上线的保姆级攻略

本文详细解析阿里奇门接口联调的全流程,从沙箱自测到正式上线的关键步骤与避坑指南。涵盖环境配置、业务场景测试、跨团队协作、灰度发布及生产运维监控,帮助开发者高效完成API对接,确保供应链协同系统的稳定运行。特别适合首次接触奇门对接的技术负责人参考。

weixin_42535461的博客 417

理解线性回归模型:从基础原理到应用实践

线性回归模型是统计学和机器学习领域中最简单但也最常用的模型之一。它在预测变量与目标变量之间建立线性关系,被广泛应用于各种领域,如经济学、生物统计学、医学、工程等。本文将介绍线性回归模型的基础原理、常见的回归分析技术以及如何在实际问题中应用线性回归模型。

2301_79262050的博客 782

机器学习: 共轭梯度算法(PCG)

今天介绍数值计算和优化方法中非常有效的一种数值解法,共轭梯度法。我们知道,在解大型线性方程组的时候,很少会有一步到位的精确解析解,一般都需要通过迭代来进行逼近,而 PCG 就是这样一种迭代逼近算法。 我们先从一种特殊的线性方程组的定义开始,比如我们需要解如下的线性方程组: Ax=bAx=b 这里的 A(n×n)A(n×n) 是对称,正定矩阵, b(n×...

weixin_30807677的博客 3181

python线性回归:从原理到实战应用

本文介绍了线性回归的原理与应用。首先通过银行贷款案例说明线性回归的作用,即通过特征变量预测目标值。在原理部分,详细阐述了线性表达式的构建方法,引入矩阵计算以提高效率,并解释了误差项的高斯分布特性。文章推导了损失函数和极大似然估计方法,比较了最小二乘法和梯度下降法两种优化方法的特点。最后通过Python代码示例展示了线性回归的实际应用,使用体重和年龄预测血压收缩值,输出了模型得分、回归方程和预测结果。全文从理论到实践系统介绍了线性回归的核心内容。

weixin_73958875的博客 1072

使用vite+react+ts+Ant Design开发后台管理项目(四)

本文将引导开发者从零基础开始,运用、react、react-router、react-redux、Ant Design、less、tailwindcss、axios等前沿技术栈,构建一个高效、响应式的后台管理系统。通过详细的步骤和实践指导,文章旨在为开发者揭示如何利用这些技术工具,从项目构思到最终实现的全过程,提供清晰的开发思路和实用的技术应用技巧。使用vite+react+ts+Ant Design开发后台管理项目(一)使用vite+react+ts+Ant Design开发后台管理项目(二)

lbking666666的专栏 2011

HFSS实战:手把手教你设计微带发夹线滤波器(附完整参数计算流程)

本文详细介绍了使用HFSS设计微带发夹线滤波器的完整流程,包括参数计算、HFSS建模和优化策略。通过实战案例,帮助读者掌握微波滤波器设计的核心技巧,特别是奇偶模阻抗计算和HFSS仿真中的关键设置,适用于通信系统设计和射频工程应用。

weixin_29251567的博客 441

线性回归原理推导与应用(一):一元线性回归原理

线性回归原理公式推导

Smilecoc的博客 2641

zemax光线光扇图

通过入瞳某一坐标(PX,PY)的光线在像面上有唯一的位置(EX,EY),以EX,EY为纵坐标,以PX,PY为横坐标,分别建立坐标系,把通过入瞳的光线都在坐标系里描点就得到了光扇图。对于视场内任意一点,取其子午面内的光线,以光线在光阑面上的透射点坐标为横坐标,同时以该光线在像面上的坐标为纵坐标,描出所有点,构成的图形即为子午面光扇图。在焦点位置,曲线的斜率为0,也就是说,不管入射时的横坐标(光阑面上的位置)是多少,离轴多远,都将汇聚在焦点处。此时,子午面和弧矢面有不同的分布,两条曲线不重合。

fendoudecheng的博客 8103

深入理解线性回归:原理、实现与应用

指定线性回归模型的形式,即。

2301_81698853的博客 7299

TOPCon vs PERC:2024年光伏电站投资,哪种技术更划算?

本文深入分析了2024年光伏电站投资中TOPCon与PERC技术的财务表现。通过对比初始系统成本、全生命周期发电量及环境适应性,指出当前TOPCon组件与PERC价差已显著缩小,其更高的转换效率和更低的衰减率能有效降低度电成本并提升项目内部收益率,为投资者提供更具长期价值的方案。

p5l2m9n4o6q的博客 267

Ubuntu22.04安装ros(一键搞定)

然后发现可以一键安装,话不多说,直接终端输入如下指令。回车之后系统会自动安装ros。

m0_47313541的博客 7416

揭秘机器学习线性回归:原理应用与未来挑战

揭秘机器学习线性回归:原理、应用与未来挑战》

Jiyan_xiaobai的博客 662

开关电源-LLC基本原理

本文详细介绍了LLC谐振变换器的兴起原因、基本工作原理、变换器特点及拓扑结构。重点讨论了半桥、全桥LLC及其软开关技术,包括零电压开关(ZVS)和零电流开关(ZCS)。通过理解简单的谐振电路(RL、RC、LC)来阐述LLC如何改变电压增益,以及如何通过调节频率实现输出电压的稳定性。

让你爱上电路设计 2万+

线性回归算法:原理、应用与优化

线性回归(Linear Regression)是一种基于统计学和机器学习的经典算法,用于建模因变量(目标变量)与一个或多个自变量(特征)之间的**线性关系**。其中,\( y \)为目标变量,\( x_1 \)为特征,\( w_0 \)为截距项,\( w_1 \)为权重系数,\( \epsilon \)为误差项。2. **误差项独立同分布**:误差 \( \epsilon \) 服从均值为0、方差为σ²的正态分布。- **R²(决定系数)**:解释模型对数据方差的拟合程度,取值范围[0,1]。

weixin_47233946的博客 616

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

深度探索:线性回归在机器学习中的原理与应用

线性回归的核心思想是建立一条直线或超平面以尽可能精确地逼近数据点。在单变量线性回归中,模型形式表现为y=ax+b,其中y为目标变量,x为输入变量,a为斜率,b为截距。多元线性回归则拓展至多维空间,模型形式为y=β0​+β1​x1​+β2​x2​+...+βn​xn​​,其中β为模型参数,xi​为多个输入变量。

qq_51320133的博客 1754

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

线性回归原理推导与应用(二):Python一元线性回归实战

Python一元线性回归实战部分

Smilecoc的博客 2931

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

上一篇: 在Kubernetes Pod中使用Service Account访问API Server
下一篇: 解决阿里云服务器只能内网访问,外网访问不了
hxpjava1
博客等级 码龄19年 1365粉丝 511原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值