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

江门网站优化百度免费注册

江门网站优化,百度免费注册,铁哥们网站建设,企业网站做seo公众号关注 「奇妙的 Linux 世界」设为「星标」,每天带你玩转 Linux !❝作者:KaliArch(薛磊),某 Cloud MSP 服务商产品负责人,熟悉企业级高可用 / 高并发架构,包括混合云架构、异地灾…

公众号关注 「奇妙的 Linux 世界」

设为「星标」,每天带你玩转 Linux !

36fa15958be9182ec09d5bd68191223a.png

作者:KaliArch(薛磊),某 Cloud MSP 服务商产品负责人,熟悉企业级高可用 / 高并发架构,包括混合云架构、异地灾备,熟练企业 DevOps 改造优化,熟悉 Shell/Python/Go 等开发语言,熟悉 Kubernetes、 Docker、云原生、微服务架构等。

背景

在业务使用 Kubernetes 进行编排管理时,针对业务的南北流量的接入,在 Kuberentes 中通常有几种方案,本文就接入的方案进行简单介绍。

流量接入方案

Kuberentes 社区通过为集群增设入口点的方案,解决对外流量的管理。

通过 kube-proxy 进行代理

通常在最简单的测试或个人开发环境,可以通过 kubectl port-forward 来启动一个 kube-proxy 进程代理内部的服务至该命令执行的宿主机节点,如果该宿主机具备公网 IP,且转发监听端口为0.0.0.0就可以实现公网访问该服务,该方式可以代理单个 Pod,或者 Deployment,或者 Servcie。

$ kubectl port-forward -h
Forward one or more local ports to a pod. This command requires the node to have 'socat' installed.Use resource type/name such as deployment/mydeployment to select a pod. Resource type defaults to 'pod' if omitted.If there are multiple pods matching the criteria, a pod will be selected automatically. The forwarding session ends
when the selected pod terminates, and rerun of the command is needed to resume forwarding.Examples:# Listen on ports 5000 and 6000 locally, forwarding data to/from ports 5000 and 6000 in the podkubectl port-forward pod/mypod 5000 6000# Listen on ports 5000 and 6000 locally, forwarding data to/from ports 5000 and 6000 in a pod selected by the
deploymentkubectl port-forward deployment/mydeployment 5000 6000# Listen on port 8443 locally, forwarding to the targetPort of the service's port named "https" in a pod selected by
the servicekubectl port-forward service/myservice 8443:https# Listen on port 8888 locally, forwarding to 5000 in the podkubectl port-forward pod/mypod 8888:5000# Listen on port 8888 on all addresses, forwarding to 5000 in the podkubectl port-forward --address 0.0.0.0 pod/mypod 8888:5000# Listen on port 8888 on localhost and selected IP, forwarding to 5000 in the podkubectl port-forward --address localhost,10.19.21.23 pod/mypod 8888:5000# Listen on a random port locally, forwarding to 5000 in the podkubectl port-forward pod/mypod :5000

NodePort 方式

其次较常用的为 NodePort 方式,将 K8s 中 service 的类型修改为 NodePort 方式,会得到一个端口范围在 30000-32767 端口范围内的宿主机端口,同样宿主机具有公网 IP 就可以实现对服务的暴露,但是 NodePort 会占用宿主机端口,一个 Service 对应一个 NodePort,该方式仅为四层,无法实现 SSL 证书的卸载,如果将服务转发到单个 Node 节点的 NodePort 也无法实现高可用,一般需要在 NodePort 前搭配负载均衡来添加多个后端 NodePort 已实现高可用。

0b0ad1d7840c37797e166d757548fe24.png

LoadBalancer

四层

四层流量转发一个 LB 的端口只能对应一个 Service,Servcie 的 Type 为 NodePort,例如如下图,LoadBalancer 上的 88 端口对应转发到后端 NodePort 的 32111 端口,对应到 servcieA;LB 上的 8080 端口对应转发到后端 NodePort32001 端口;该方案可以通过添加多个 NodePort 方式实现高可用,但是由于为四层无法实现对 SSL 的卸载,对应 NodePort 需要在 LB 占用一个端口。

cde1059ec4afd1b19158dc8ab6104387.png

七层

七层可以借助 LB 的域名转发,实现一个域名端口对应多个 Service,如图可以根据 path 路径,/cmp 对应 NodePort 的 32111,/gateway 对应 NodePort 的 32000 端口,不仅可以实现高可用,而且七层可以实现 SSL 卸载。

e3fa2522644eacfa93a867bbadedadfc.png

目前一般公有云的 LB 级别都具备四层和七层的功能,配合使用可以实现灵活的业务流量暴露。

Ingress

在 K8s 中,存在有 Ingress 资源来实现单个域名转发根据不同的路径或其他配置规则转发到 K8 集群内部不同的 Service,但是用户请求需要访问 Ingress 实现控制器的 NodePort 例如 Ingress-nginx 的 Controller 的 Service 的 NodePort,针对具体的业务域名一般不会带端口,所以一般前面还需要一层 80/443 的端口转发。

一般 Ingress 的 Controller 实现业界也有不少解决方案,例如比较知名的 Ingress—nginx/Ingress-traefik 等。

764216b51331ba074b03549025560965.png

LoadBalancer + Ingress

如下图所示在最前面有一个四层 LB 实现端口 80/443 转发至 ingress-provider 的 Service 的 NodePort,K8s 集群内部配置有多个 service。

f0792b3091c03d40b39e18a02f7c9d56.png

Ingress-nginx 详解

在上面的几种方案中,均有用到 Ingress,Nginx-ingress 为 Nginx 官方提供的实现 K8s ingress 资源的方案,同时 Kubernetes 官方也提供了基于 Nginx 实现的 Ingress 方案。

Nginx Ingress 由资源对象 Ingress、Ingress 控制器、Nginx 三部分组成,Ingress 控制器的目标是构建完成一个配置文件(nginx.conf),主要通过检测配置文件发生改变后重载 Nginx 实现,但并不是仅在 Upstream 更改时重载 Nginx(部署应用程序时修改 Endpoints),使用 lua-nginx-module 实现。

根据下图可以更好理解 Ingress-nginx 的使用场景。

983b8b99604dfbb78f41b5f8aed5abfe.png

图中展示如下信息:

  • 一个 K8s 集群

  • 集群用户管理、用户 A 和用户 B,它们通过 Kubernetes API 使用集群。

  • 客户端 A 和客户端 B,它们连接到相应用户部署的应用程序 A 和 B。

  • IC,由 Admin 部署在名称空间 nginx-ingress 中的 pod 中,并通过 ConfigMap nginx-ingress 进行配置。Admin 通常部署至少两个 pod 以实现冗余。IC 使用 Kubernetes API 获取集群中创建的最新入口资源,然后根据这些资源配置 NGINX。

  • 应用程序 A 由用户 A 在命名空间 A 中部署了两个吊舱。为了通过主机 A.example.com 向其客户机(客户机 A)公开应用程序,用户 A 创建入口 A。

  • 用户 B 在命名空间 B 中部署了一个 pod 的应用程序 B。为了通过主机 B.example.com 向其客户机(客户机 B)公开应用程序,用户 B 创建 VirtualServer B。

  • 公共端点,它位于 IC 吊舱前面。这通常是一个 TCP 负载均衡器(云、软件或硬件),或者这种负载均衡器与 NodePort 服务的组合。客户端 A 和 B 通过公共端点连接到他们的应用程序。

黄色和紫色箭头表示与客户端通信量相关的连接,黑色箭头表示对 Kubernetes API 的访问。

为了简单,没有显示许多必要的 Kubernetes 资源,如部署和服务,管理员和用户也需要创建这些资源。

其他

在 K8s 中,通常云厂商的 LB 一般云厂商提供适配 CNI,会在创建 K8s 集群时会自动创建 LB 类型的 servcie,例如阿里的 ACK,腾讯的 TKE,华为的 CCE 等,但是在我们自建或个人测试场景,开源的 Metallb[1]是一个不错的选择,其作用通过 K8s 原生的方式提供 LB 类型的 Service 支持,开箱即用,当然还有青云科技 KubeSphere 团队开源的负载均衡器插件 OpenELB[2],是为物理机(Bare-metal)、边缘(Edge)和私有化环境设计的负载均衡器插件,可作为 Kubernetes、K3s、KubeSphere 的 LB 插件对集群外暴露 “LoadBalancer” 类型的服务。在 2021 年 11 月已进入 CNCF 沙箱(Sandbox)托管,也是解决用户将 Kubernetes 集群部署在裸机上,或是私有化环境特别是物理机或边缘集群,Kubernetes 并不提供 LoadBalancer 的痛点,提供与基于云的负载均衡器相同的用户体验。

引用链接

[1]

Metallb: https://github.com/metallb/metallb

[2]

OpenELB: https://openelb.io/

本文转载自:「KubeSphere云原生」,原文:https://url.hi-linux.com/bMtj0,版权归原作者所有。欢迎投稿,投稿邮箱: editor@hi-linux.com。

1b606b88034c3a786b6a516a6052777a.gif

最近,我们建立了一个技术交流微信群。目前群里已加入了不少行业内的大神,有兴趣的同学可以加入和我们一起交流技术,在 「奇妙的 Linux 世界」 公众号直接回复 「加群」 邀请你入群。

141eeeec4eba20b9e211287cbae8c409.png

你可能还喜欢

点击下方图片即可阅读

51e495967abf65f70db81449dd464767.png

5 分钟入门 Kubernetes 集群联邦和资源分发

cd843943076760bd440a882884d3de5a.png
点击上方图片,『美团|饿了么』外卖红包天天免费领

91b5beef826ce9efb8950eea17f6e0d7.png

更多有趣的互联网新鲜事,关注「奇妙的互联网」视频号全了解!

http://www.lbrq.cn/news/2712223.html

相关文章:

  • 24小时有效地址域名惠州seo优化
  • 网站建设 bs模式营销策略的概念
  • magento怎么做b2b网站电商运营
  • 做肝病科网站长沙做网站的公司有哪些
  • 住房和城乡建设网站长沙seo代理
  • 网站开发阶段怎么做测试凡科建站怎么收费
  • 做淘宝客网站需要多大带宽新手seo入门教程
  • 商务网站建设实训心得体会关键词排名优化网站
  • 天津建设工程信息网招标公告成都关键词优化平台
  • 怎样做免费网站建设策划方案网站
  • 如何做打码网站免费的郑州网络推广服务
  • 陕西省建设局网站网站策划书怎么写
  • 贵阳网站如何推广举例网络营销的例子
  • cms建站方案什么是百度推广
  • 个人网页设计实训报告江门seo
  • angular适合 做 网站吗网络销售平台排名前十
  • 敖汉旗住房和城乡建设局网站网络营销产品策略分析
  • 茂民网站建设宁波seo教程
  • 空间里怎么放多个网站googleplay
  • 网站策划主要工作是什么深圳seo优化公司哪家好
  • 婚介网站模板佛山网站定制
  • 呼和浩特商城网站建设如何优化标题关键词
  • 网站色彩东莞疫情最新消息今天新增病例
  • 第三方平台做色情网站免费p站推广网站入口
  • 律师在哪个网站做搜索百度网址网页
  • 网站3级营销是怎么做的深圳seo专家
  • 学校网站建设的成果关键词分类
  • 怎么做淘宝劵网站亚马逊跨境电商开店流程及费用
  • 自适应网站设计稿搜外网
  • 深圳装饰网站建设站长统计幸福宝下载
  • Java使用Apache POI读取Excel文件
  • 京东【自主售后】物流信息获取_影刀RPA源码解读
  • 跨域及解决方案
  • .NET 的 WebApi 项目必要可配置项都有哪些?
  • 我的第一个开源项目-jenkins集成k8s项目
  • Python【算法中心 03】Docker部署Django搭建的Python应用流程实例(Docker离线安装配置+Django项目Docker部署)