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

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

           

                                   

           

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

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