k8s两种部署架构,你们是哪一种?为什么面试官会问你你们的服务是怎么部署的呢?

k8s——16、使用阿里云SLB搭建高可用集群 k8s高可用集群 阅读详情

k8s部署的两种策略

公宗号:堆栈future

干货:


domain+slb+ingress+svc+pod 模式

gateway+registry+pod 模式


通过这篇文章我们可以看出,为啥上篇文章需要讲解网关了,因为这篇文章需要用到它,网关很重要哦。 还有一个问题就是面试官老是会问你们的部署架构是怎样的,其实这个问题挺简单的,只不过各大公司业务不同,体量不同还有场景不同选择的部署架构有差别,但是总体而言基于k8s的部署无非就这两种,只不过细节上略有差别,今天主要聊聊这两种最基本的基础部署架构。

1. 名词介绍

1. ingress

ingress是公开了集群外部访问集群内部服务的HTTP(S)路由,流量路由ingress定义的规则控制。

也就是说:ingress是创建一组路由规则,这个规则会经过k8s API Server存储到etcd中,而处理ingress规则的controller就是ingress controller。它实时监听新的ingress规则,然后在本地生成反向代理upstream负载均衡配置,这里大家可以想像下Nginx的upstream配置,忘记的话我贴一张图就知道了。

  1. server name:域名

  2. proxy_pass: 反向代理

  3. upstream:负载均衡

  4. server:就是后端服务IP,对应在k8s中就是一组pod ip。

2. service 即svc

有ingress必须得有svc,因为ingress中的upstream必须要有server ip,而这些server ip就是来自svc的endpoints(pod ip集合)。

3. pod

真正运行docker容器的(我们的服务就跑在这个上面),它有自己的ip地址,在建立svc之后,当我们通过yaml资源创建pod的时候,pod根据label会走自动挂载到svc上,这样svc就能获取到后端pod ip列表,即endpoints。

好了有了这些概念我们就开启讲解两套部署模式吧。

2. domain+slb+ingress+svc+pod 模式

从上图可以看出基于ingress的这套架构模式基本上是利用k8s核心对象构建起来的。

我们这里以nginx为例:

  1. 用户先创建Pod运行自己的服务。

  2. 然后创建service关联相关Pod。

  3. 最后研发人员提交ingress.yaml创建ingress对象,关联service。

  4. ingress controller就会实时watch到ingress的变化然后创建upstream负载均衡和反向代理。

按照1-4创建完成之后我们接下来做两件事:

  1. 创建slb负载均衡器(后面挂载Node),拿到公网IP地址。

  2. 申请域名解析,将域名解析到slb上(A记录)。

到这里我们的服务就算是搭建起来了,接下来跑通它:

  1. 用户先访问baidu.com

  2. dns解析返回slb地址是192.169.1.1

  3. slb选择一台机器,假如选中Node1

  4. 请求转发到Node1这个机器上

  5. Node1上的ingress controller就会收到用户的请求

  6. ingress controller就会根据server name(baidu.com)通过proxy_pass代理到upstream这个负载均衡上

  7. upstream就会按照RR或者其它方式去访问后端的Pod IP

  8. Pod接收到服务之后就将流量转发到服务(iptables的portmapping 插件实现的)

  9. 服务处理之后返回响应

那大家可能会问,既然将请求转发到一个Node上了,为啥这个Node可以访问别的Node的Pod呢?答案就是CNI,这个大家自己下去了解哈,挺简单的。

好了至此我们微服务部署架构就搭建好了,赞。

3. gateway+registry+pod 模式

从上图可以看出基于网关的这套架构模式基本上也是利用k8s核心对象构建起来的,只不过将原来的ingress用现在的网关代替了而已。

服务搭建流程:

  1. 先创建pod,把服务跑起来

  2. pod将自己的服务名称注册到注册中心,这里以nacos为例

  3. 注册中心记录服务名称到Pod IP:Port的映射

  4. 网关也将自己的地址注册到服务注册中心

用户访问流程:

  1. 用户访问网关地址http://baidu.com/order

  2. dns返回网关ip

  3. 发起tcp连接(网关ip+端口)

  4. 网关收到服务请求之后根据path(/order)路由到nacos-order-service

  5. 网关去服务注册中心去找nacos-order-service的映射

  6. 根据pod IP:Port发起后端服务请求

  7. Pod内存将流向转到服务进程(iptables的portmapping插件实现的)

  8. 服务进程处理完成之后做出响应

4. 小结

目前据我了解就是这两种基于k8s的部署方案,这两套部署方案都在被广泛使用,所以书谁好谁坏不好说,因为业务不同或者场景不同可能选择的部署架构方案有差别,但是无论选择那种部署方案,都要有基本的维护能力,否则出了问题就两眼抹黑了。

 

ack部署ingress同时使用私网SLB和公网SLB 这个是ack官方的图,由于他文章有部分,有时候说得我头晕眼花了,于是抽出来记录一下。 阅读详情

相关推荐

Kubernetes(k8s) 架构原理一文详解

K8S 的全称为 Kubernetes。用于自动部署、扩展和管理“容器化(containerized)应用程序”的开源系统。可以理解成 K8S 是负责自动化运维管理多个容器化程序(比如 Docker)的集群,是一个生态极其丰富的容器编排框架工具。K8S是Google开源的容器集群管理系统,在Docker等容器技术的基础上,为容器化的应用提供部署运行、资源调度、服务发现和动态伸缩等一系列完整功能,提高了大规模容器集群管理的便捷性。

wlc1213812138的博客 1600

阿里云使用SLB实现k8s的服务service

本文主要讲述的是,如何在云环境下的k8s容器里, 暴露服务service的时候,使用slb实现对外访问。

天草二十六 2477

k8s 二进制集群部署

只2017年开始,断断续续的接触k8s也是有几个年头了,从1.11开始到现在马上都1.20了,真快呀!之前就有想整理下所有技术的想法,毕竟已经35岁的人,闯荡江湖已经12个年头了。是该总结下了,这行说实话干不了几年了。话不多说,等专门写一篇感慨的文章。开整!这块我不会讲的太多,毕竟k8s一个很大的体系,不是一两句话或者两三句话就可以说清楚的。可能说的太深了我也未必能说的清楚,主要是说不清楚吧。但是简单的我还是要说下,主要是应对面试吧。但是说实话理论这事儿干的深了很重要的,在排错的时候,如果有理论加持会事半功

别来沾边儿 959

夯实基础篇--k8s网络理解

0 整体概括 k8s四层网络抽象: 每一层都建立在上一层网络之上 1 pod网络 01 同一节点上的pod网络 eth0:节点上的网卡,支持机器的流量出入,也是用来支持各节点之间寻址和网络互通 docker0:虚拟网桥,简单理解为虚拟交换机,用来支持同一节点上pod之间进行寻址和网络互通的设备 veth0:pod自身的虚拟网卡,支持pod内不同容器之间进行网络互通的一个设备。pause容器唯一的作用就是用来创建veth0的网络接口 veth0的IP是由docker0这个虚拟网桥来分配的 02 不同节点之

error的博客 1196

57道K8S面试题,呕心沥血整理并附答案,赶紧收藏!

Kubernetes是一个开源容器编排平台,用于自动化部署、扩展和管理容器化应用程序。它的主要目标是简化容器化应用的部署和管理,并提供弹性、可靠的应用程序编排。Pod是Kubernetes的最小调度和部署单元。它是一个包含一个或多个容器的逻辑主机,这些容器共享网络和存储资源,并且在同一主机上共享生命周期。ReplicaSet是Kubernetes的控制器之一,用于确保在集群中运行指定数量的Pod副本。如果Pod的数量少于指定的副本数,ReplicaSet将创建新的Pod副本;

力哥讲技术 2万+

深入解析luckyExcel处理xlsx与xls文件的实战技巧

本文深入解析了使用luckyExcel库在前端处理.xlsx与.xls文件的实战技巧。针对.xlsx文件,可直接调用API转换;对于老旧的.xls格式,则需结合SheetJS进行预处理。文章详细介绍了核心API的使用、两种格式的处理流程、数据提取方法以及性能优化建议,为开发在线Excel编辑应用提供了完整解决方案。

cherry的博客 817

面试宝典六-- 项目部署(linux环境搭建,springboot项目部署 ,vue项目部署,nginx负载均衡)

环境准备 实际开发中,项目肯定是部署在一个个的linux系统服务器中的,学习过程中,可以在自己电脑上安装虚 拟机然后配置linux操作系统进行模拟项目部署,当然也可以花费较小费用使用各种平台提供的云服务器 进行项目学习和部署(比如阿里云、腾讯云、华为云等)。 这里我使用的是centos7 配置centos的yum源 1、备份原镜像文件,以免出错后可以恢复 mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup

dyk 3334

【Java】利用反射执行Spring容器Bean指定的方法,支持多种参数自动调用

目录 使用情景 目的 实现方式 前提: 思路 核心类 测试方法 使用情景 将定时任务录入数据库(这样做的好处是定时任务可视化,也可以动态修改各个任务的执行时间),通过反射执行对应的方法; 配合Netty实现简单的HTTP请求处理框架 其他需要使用反射执行Spring方法的业务亦可 目的 很多文章都提到了反射,但是对于方法参数处理这一块都是明确了类型,不支持按照实际参数动态转换,而本篇文章提供了一个思路怎么做到方法参数的动态调用。 大家也可以...

ITjianshuzhai的博客 2334

k8s两种部署架构,你们是哪一种?为什么面试官会问你你们怎么部署微服务的呢?

k8s部署的两种策略干货:domain+slb+ingress+svc+pod 模式gateway+registry+pod 模式通过这篇文章我们可以看出,为啥上篇文章需要讲解网关了,因为这篇文章需要用到它,网关很重要哦。还有一个问题就是面试官老是会问你们的部署架构是怎样的,其实这个问题挺简单的,只不过各大公司业务不同,体量不同还有场景不同选择的部署架构有差别,但是总体而言基于k8s的部署无非就这两种,只不过细节上略有差别,今天主要聊聊这两种最基本的基础部署架构。1. 名词介绍1. ingressingre

stackfuture的博客 2187

Claude Code教程(二) | Claude Code 核心信息与使用指南

Claude Code 核心信息与使用指南

qq_20236937的博客 2183

UDP协议详解——使用Socket通信

UDP(UserDatagramProtocol)是一个简单的面向消息的传输层协议,尽管UDP提供标头和有效负载的完整性验证(通过校验和),但它不保证向上层协议提供消息传递,并且UDP层在发送后不会保留UDP 消息的状态。因此,UDP有时被称为不可靠的数据报协议。如果需要传输可靠性,则必须在用户应用程序中实现。UDP使用具有最小协议机制的简单无连接通信模型。UDP提供数据完整性的校验和,以及用于在数据报的源和目标寻址不同函数的端口号。它没有握手对话,因此将用户的程序暴露在底层网络的任何不可靠的方面。

qq_3517289697的博客 3385

容器 | Docker 如此之好,你为什么还要用k8s

HI ! 我是小小,我们又见面了,今天是本周的第五篇,本篇将会着重讲解关于为什么要使用k8s前言什么是容器?容器是一个包,包含了其应用以及所需要的所有的依赖。容器中的应用与主机隔离,不需...

mySoul 3945

支付宝h5参数如何实现跳转?(包含相关Demo代码)

🏆本文收录于专栏,主要记录项目实战过程中所遇到的Bug或因后果及提供真实有效的解决方案,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家!持续更新中,up!up!up!!

**My Coding Family** 3245

kubernetes(k8s)安装教程_安装kubernetes,面试官突击一问

最近很多小伙伴找我要Linux学习资料,于是我翻箱倒柜,整理了一些优质资源,涵盖视频、电子书、PPT等共享给大家!

2401_83740129的博客 1231

【软件系统架构】系列六:MBSE(基于模型的系统工程)

基于模型的系统工程(MBSE)是一种以模型为核心的系统工程方法论,通过结构化、可视化的模型取代传统文档,实现从需求到验证的全生命周期管理。MBSE采用SysML建模语言,包含需求、功能、架构和验证四大要素,支持自动追踪、仿真分析和代码生成。相比文档式工程,MBSE具有变更影响自动分析、跨团队协作和高可视化等优势,广泛应用于航空航天、汽车电子等领域。典型开发流程包括需求建模、行为建模、架构建模等阶段,配合MagicDraw、Cameo等工具链实现。MBSE正与数字孪生、AI技术融合,推动自动化建模和智能验证的

moton2017的博客 2783

【Unity 反向运动学插件】Final IK 一套完整的IK解决方案

Final IK是Unity中一套完整的反向运动学解决方案,提供多种IK算法(CCD、FABRIK等)和功能模块,包括全身IK、VR驱动、武器瞄准、视线跟随等。其核心是通过数学方法计算关节旋转,使末端骨骼精确到达目标位置。系统支持多约束求解、旋转限制、动画烘焙及交互系统,采用模块化设计,兼顾性能与扩展性,适用于动作游戏、VR等需要高质量角色控制的场景,是Unity生态中最成熟的IK工具链之一。

2403_88403568的博客 1002

现实分布式微服务系统使用k8s部署还是使用docker部署

Docker与Kubernetes(K8s)在微服务部署中各具优势:Docker适合轻量级单机环境,实现快速迭代和资源优化;K8s则擅长管理大规模分布式系统,提供自动化扩缩容、高可用等生产级能力。实践建议中小型企业从Docker入手,逐步迁移至K8s;云原生架构可直接采用K8s的高级特性。两者常结合使用,Docker负责容器化封装,K8s实现集群管理,形成完整的容器化解决方案。企业应根据业务规模和技术成熟度选择合适方案。

hhua0123的专栏 1177

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

【容器架构】你知道有 Docker 为什么还要 K8s 吗?

因为有了 K8s, 用户才能极为便捷、有效的容器管理平台,省去应用容器化过程中许多需要手动进行的部署和扩展操作。

激流丶的博客 1561

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

面试官最爱问的Java微服务项目实战:从架构设计到部署上线全流程

老吴:最后给你整理10个面试官必问的问题和标准答案,你直接记下来,面试时绝对能用得上!问:微服务架构的优缺点是什么?答:优点:独立部署、独立扩容、技术栈灵活、容错性高;缺点:服务拆分复杂、分布式事务难解决、服务调用链路长、运维成本高。问:如何解决微服务的服务雪崩问题?答:1. 服务容错(Sentinel/Hystrix)熔断降级;2. 限流(Gateway/Sentinel);3. 服务隔离(线程池隔离/信号量隔离);4. 缓存兜底。问:Nacos的AP和CP模式有什么区别?答。

2601_94871597的博客 1303

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

k8s相关面试问题_K8S 面试 11 问:面试官想考察什么?

翻译:毛十三(Caicloud)校对:星空下的文仔(Caicloud)、bot(Caicloud)编者按:近几年,Kubernetes 相关工作岗位在互联网圈中越来越火爆。很多开发人员都因其发展前景与薪资而准备学习或加深了解。恰逢“三金四银”好时节,社区特别奉献《K8S 面试 11 问:面试官想考察什么?》,从面试官角度剖析 11 个 Kubernetes 技术问题的面试技巧。希望可以为正在准备跳...

weixin_39950083的博客 405

Kubernetes 面试 11 问:面试官想考察什么?

文章来源:K8sMeetup社区ID:Kuberneteschina2近几年,Kubernetes 相关工作岗位在互联网圈中越来越火爆。很多开发人员都因其发展前景与薪资而...

Docker的专栏 712

2025年40个最重要的Kubernetes面试问答——我经常会问的一些Kubernets问题

40 个最重要的 Kubernetes 面试问答。本 Kubernetes 面试问答教程将帮助你在完成培训后,为可能面临的任何面试或认证考试做好准备。

硅基创想家的博客 1266

Java大厂面试官怒问AI与微服务架构:谢飞机如何应对Spring AI、RAG与Kubernetes实战?

能力维度 | 考察内容 || 基础知识 | Java语法、Spring生态、常用中间件 || 场景建模 | 能否结合业务设计技术方案 || 深度理解 | 是否了解技术演进与替代方案 || 系统思维 | 架构分层、容错、扩展性 || 新技术敏感度 | 对AI、云原生、RAG等趋势的认知 |💡给求职者的建议:不要只背八股文,要学会把技术放在真实业务场景中思考。多动手搭建完整项目,尤其是AI+传统系统的融合应用,将是未来3年Java工程师的核心竞争力。作者寄语:谢飞机虽然没过,但他至少敢说。

2401_85724444的博客 720

Kubernetes:面试官喜欢问什么

根据对近期 Kubernetes 面试题中关键词的统计分析,我们可以清晰地看到面试官在考察候选人时的关注重点。这份数据不仅揭示了技术面试的趋势,也为准备 Kubernetes 相关岗位的工程师提供了明确的学习和复习方向

ocean2103的专栏 706

面试官:有做过高可用的K8S集群部署方案吗?

一、涉及到的内容 LVS HAProxy Harbor etcd Kubernetes (Master Worker) 最近经常有粉丝私信我,说博主没有整理出面试突击的资料。这次直接安排上,谁叫我有求必应呢!花了两星期的时间进行筛选和整理最终完成了这篇30天面试突击文稿,希望对大家有所帮助! 整理内容较广,知识点比较全面,篇幅受限无法全部展现出来,文中所有资料都已整理成文件夹,先关注博主一波私信免费获取 二、整体拓补图 以上是最小生产可用的整体拓补图(相关节点根据需要进行增加,但不能减少)

weixin_48606364的博客 663
上一篇: 什么是API网关,它和BFF到底有什么区别呢
下一篇: Redis单线程处理IO请求性能瓶颈有哪些
stackfuture
博客等级 码龄5年 23粉丝 38原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值