Redian新闻
>
kuberntes ingress 和 openshift router 异同?

kuberntes ingress 和 openshift router 异同?

公众号新闻


目标探讨 Kuberntes Ingress 和 Openshift Router 异同

前提:对Kubernetes 及 Openshift 有了解
背景:Kubernetes Ingress 及Openshift Route都可以以路由的方式暴露服务(Service),便于外界访问集群内部资源,同时也提供负载均衡。


Kubernetes Ingress 简述:

Kubernetes Ingress 是一种 Kubernetes 资源,用于管理和配置将外部流量引导到集群内部服务的方式。它充当了集群和外部网络之间的入口点,可以轻松管理流量路由和负载均衡。Ingress 提供了一种规范的方法来定义应用程序的路由规则,包括主机名和路径匹配,以便根据不同的规则将请求路由到不同的后端服务。
具体请参考 Kubernetes文档

Openshift Route

OpenShift Route 是 OpenShift 容器平台的一项关键功能,用于管理应用程序的外部访问。它提供了集成的安全性、负载均衡、域名路由和TLS认证等功能。通过配置 Route,可以将外部流量引导到集群中的应用程序,实现强大的流量控制和安全性,同时简化了应用程序的公开和管理。Route充分利用了OpenShift的生态系统,支持OAuth、角色授权等特性,提供了灵活的路由策略,是在容器编排环境中轻松管理应用程序访问的关键工具。
具体请参考 Openshift官网

工作原理

Kubernetes Ingress 工作原理

  1. Ingress 资源创建:

    首先,创建一个 Kubernetes Ingress 资源。

    这个资源定义了如何将外部流量引导到集群内部的服务。

  2. Ingress Controller:

    Kubernetes 集群中运行一个或多个 Ingress Controllers,它们是实际处理 Ingress 配置的组件。

  3. Ingress 路由规则:

    Ingress Controller 解析 Ingress 资源中定义的路由规则,包括主机名和路径匹配。

  4. 负载均衡和路由:

    Ingress Controller 使用负载均衡机制将传入的请求路由到相应的后端服务(Pod)。

    这涉及到 Ingress 配置中的主机名和路径匹配。

  5. SSL 认证:

    Ingress Controller 可以实现 SSL/TLS 认证,以保护传输的数据。

  6. 高级路由和安全性:

    一些 Ingress Controllers 提供高级的路由策略和安全性特性,如基于标签选择服务、认证和授权等。


OpenShift Route 工作原理

  1. Route 对象创建:

    首先,OpenShift 集群管理员或开发者创建一个 Route 对象。

    这个对象定义了如何将外部流量引导到集群内部的服务。

  2. 路由规则配置:

    Route 可以配置主机名(例如,myapp.example.com)和路径规则,以确定如何匹配传入的请求。

    还可以配置 TLS 认证来提供加密。

  3. OpenShift Router:

    OpenShift 集群中的 Router 组件负责处理 Route 配置。

    Router 是 OpenShift 的入口点,负责接收传入的流量。

  4. 负载均衡和路由:

    Router 使用负载均衡机制将传入的请求路由到相应的后端服务(Pod)。

    这涉及到 Route 配置中的主机名和路径匹配。

  5. 安全性:

    Route 可以集成 OpenShift 的安全性特性,如 OAuth 和角色授权,以确保只有授权的用户或服务可以访问应用程序。

  6. 流量管理:

    Router 支持权重分配、负载均衡策略和其他高级流量管理功能,以提高性能和可用性。


使用方法

Kubernetes Ingress

你必须拥有一个 Ingress 控制器 才能满足 Ingress 的要求。仅创建 Ingress 资源本身没有任何效果。
你可能需要部署一个 Ingress 控制器,例如 ingress-nginx。你可以从许多 Ingress 控制器中进行选择。
理想情况下,所有 Ingress 控制器都应遵从参考规范。但实际上,各个 Ingress 控制器操作略有不同。
本次就以 higress 为例,本文未涉及用法可以参考  higress官网

  1. 随便创建一个pod

    kind: Podmetadata:name: httpd-podlabels:app: httpdspec:containers:- name: httpd-containerimage: httpd:latestports:- containerPort: 80# 创建podkubectl apply -f httpd-pod.yaml
  2. 创建一个service


apiVersion: v1kind: Servicemetadata:name: httpd-servicespec:selector:app: httpdports:- protocol: TCPport: 80targetPort: 80kubectl apply -f httpd-service.yaml

目前我们拥有了一个httpd pod 和一个service,通过labels: app: httpd 绑定在一起。
3. 安装ingress controller

helm upgrade --install ingress-nginx ingress-nginx \--repo https://kubernetes.github.io/ingress-nginx \--namespace ingress-nginx --create-namespace

或者

kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/controller-v1.8.2/deploy/static/provider/cloud/deploy.yaml
  1. 创建ingress 配置

apiVersion: networking.k8s.io/v1kind: Ingressmetadata:name: httpd-ingressspec:rules:- host: httpd.example.com  # 域名http:paths:- path: /pathType: Prefixbackend:service:name: httpd-serviceport:number: 80# 配置生效kubectl apply -f httpd-ingress.yaml

再随便一个节点访问URL httpd.example.com 可以看到 httpd的欢迎信息。

OpenShift Route

Openshift 支持两种方式创建Route资源,CLI 及 WEB。

  1. 先创建pod和service,参考上面的pod和service即可,不赘述。

  2. 创建 Openshift route资源配置

CLI

apiVersion: route.openshift.io/v1kind: Routemetadata:name: httpd-routespec:to:kind: Servicename: httpd-serviceweight: 100port:targetPort: 80tls:termination: edgewildcardPolicy: None# 配置生效oc create -f httpd-route.yaml
  1. 在节点访问  http://httpd-route-default.apps.<集群名称>.<集群基域> 即可

WEB

在Openshift Console可以 简单直接的创建出route资源,如下图

填好必要信息,在节点访问。



总结

Kubernetes Ingress 和 OpenShift Route 有很多相似之处,因为它们都是用于路由流量到 Kubernetes 集群内部服务的资源。

  • 路由流量到服务:

    无论是 Kubernetes Ingress 还是 OpenShift Route,它们的主要目标都是将外部流量路由到集群内部的服务(Service)。

  • 负载均衡:

    两者都支持负载均衡,可以将传入的请求分发到多个后端 Pod,从而提高可伸缩性和可用性。

  • 主机和路径匹配:

    Kubernetes Ingress 和 OpenShift Route 都支持主机名和路径匹配,可以根据不同的主机名或 URL 路径将请求路由到不同的服务。

  • TLS 支持:

    两者都支持 TLS 认证,可以在 Ingress 或 Route 中配置 SSL/TLS 证书,以加密传输的数据。

  • 流量控制:

    Kubernetes Ingress 和 OpenShift Route 都支持高级流量控制和策略,例如基于标签选择服务、认证、授权和流量重定向。

尽管有这些相似之处,还是有一些重要的区别:

  • 生态系统:

    Kubernetes Ingress 是 Kubernetes 的原生资源,而 OpenShift Route 是 OpenShift 的特定资源。

    它们通常用于不同的容器编排平台。

  • 配置语法:

    Kubernetes Ingress 和 OpenShift Route 的配置语法略有不同。

    Kubernetes Ingress 使用标准的 Kubernetes YAML 格式,而 OpenShift Route 使用 OpenShift 的自定义资源定义(CRD)。

  • 安全性特性:

    OpenShift Route 在 OpenShift 平台上提供了额外的安全性特性,如 OAuth 和角色授权,以满足 OpenShift 生态系统的要求。

综上所述,Kubernetes Ingress 和 OpenShift Route 是强大的工具,可根据特定平台和需求选择使用。无论选择哪种工具,都能够帮助管理和控制应用程序的外部访问,以确保应用程序在云原生环境中高效运行。

链接:https://blog.51cto.com/u_15249701/7935913

(版权归原作者所有,侵删)

           

                                   

           

微信扫码关注该文公众号作者

戳这里提交新闻线索和高质量文章给我们。
相关阅读
2024招聘季 | 美加学生均可申!Point72(US)开放Winter Internship通过例子介绍如何从零开发 Kubernetes Operator【齐风猎作品】真实的婚姻是对人性的考量和博弈chì rè?zhì rè?千词万字“返场赛”来了!重磅!DoorDash、UberEats、Grubhub和Relay通通惨败精品投行 | Jefferies 已开放Sophomore Internship,26届可投一个甲状腺素无法耐受的病例Asia’s Biggest Men’s Tennis Tournament Returns to ShanghaiRains Revive Poyang Lake, Offering Hope After Record Dry SeasonPinterest 使用 Kubernetes 和 Helix 构建下一代异步计算平台 PacerAnti-Consumerism Advocate Encourages Rethinking Life’s Pleasures用生命shopping!黑五周末,一名青少年在Southcenter 购物中心停车场遭枪击Jenkins pipeline如何连接Kubernetes?相聚多伦多(十四)冬天来了,春天依然很远Space Race: Why Young Chinese Are Cutting Ties with RelativesThree Reasons Luxury Should Remain Resilientbase蒙特利尔丨FTI Consulting开放会计2024 Internship岗位SpringCloud 微服务迁移到 Kubernetes 容器化完整流程“Let's agree to disagree” 到底要不要同意? | 1 min learning EnglishKubernetes 中 Nginx 配置热加载Dugu Xin\'s Multi-sided seal 独孤信多面印使用 kube-downscaler 降低Kubernetes集群成本准备好屏幕 | 现场:BimBamBoom - Shinzo BakuBaku Ochokochoi @ 下北沢SHELTERHow Residents Are Rebuilding Shanghai’s Urban CommunitiesShanghai FTZ at 10: Businesses Eye Enhanced Policies for GrowthAfter Delayed Winter, China’s Ski Resorts Swing into High Gear咨询实习丨Accenture开放咨询类2024 Internship如何用Kubernetes实战快速搭建typecho个人博客?The Cross-Dressing Star Sending Up China’s Office Culture26届同学专属!Jefferies (US)开放Sophomore InternshipKubernetes 实战:使用 k8s+jenkins 实现 CICD一个甲状腺素无法耐受的病例In China, AI Clones Are Putting Human Livestreamers Out of WorkFamous Taiwan Rapper Admits Plagiarizing Comic About DepressionShrinking Negative List Marks Shanghai FTZ’s Decade of Progress
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。