网站建网站建设做水利网站需要多少钱

web/2025/10/4 12:32:47/文章来源:
网站建网站建设,做水利网站需要多少钱,网络营销搜索引擎,pc蛋蛋游戏体验网站建设一、前言 K8S经过多年的发展#xff0c;构建了云原生的基石#xff0c;成为了云原生时代的统治者。我将用三个博客系列全面#xff0c;循序渐进的介绍K8S相关知识。 初级入门系列#xff0c;主要针对K8S初学者#xff0c;以及希望对K8S有所了解的研发人员#xff0c;重点…一、前言 K8S经过多年的发展构建了云原生的基石成为了云原生时代的统治者。我将用三个博客系列全面循序渐进的介绍K8S相关知识。 初级入门系列主要针对K8S初学者以及希望对K8S有所了解的研发人员重点介绍K8S的使用包括核心概念yaml文件等并配合一些简单的案例进行练习能达到了解K8S的目标。 中级原理系列主要针对K8S有一定研究的架构师开发人员等深度剖析K8S核心架构组件以及实现原理能达到理解K8s的目标。 高级实战系列主要针对K8S的架构研发运维人员结合周边产品构建整体的K8S生态体系将相关知识点运用到实践能达到掌握和使用K8S的目标。 千里之行始于足下Lets go 二、云计算发展历史 在讲K8S之前我们先了解下整个云计算的发展历史这样有助于更加全面的了解和认识K8S的前生今世。 计算的设施经历了物理机虚机以及目前的云原生时代。 1、物理机时代 物理机时代所有的服务都直接部署到物理机上。其架构示意图如下 这种模式部署简单对于早期的单体应用来说能基本满足要求。但这种模式最大的问题是资源无法有效利用无法平民化。 2、虚机时代 随着互联网的兴起一方面线上流量呈指数级增长另一方面对于初创的互联网企业没有足够的资金购买大量的设备资源如何利用技术解决成本问题成为各厂商面临的主要问题。这个时期内诞生了诸如分布式技术虚拟化技术等等。 虚拟化英语Virtualization是一种资源管理技术是将计算机的各种实体资源如服务器、网络、内存及存储等予以抽象、转换后呈现出来打破实体结构间的不可切割的障碍使用户可以比原本的组态更好的方式来应用这些资源。这些资源的新虚拟部分是不受现有资源的架设方式地域或物理组态所限制。  虚拟化技术就是把物理资源(服务器网络硬件CPU)进行隔离的技术。 在计算机的系统中从底层至高层依次可分为硬件层、操作系统层、函数库层、应用程序层每一层都可以实现虚拟化这里主要是指硬件层的虚拟化又称系统级虚拟化。系统级虚拟化从类型上又可以分为完全虚拟化和类虚拟化。 完全虚拟化完全虚拟化的虚拟平台和现实平台是一样的客户机操作系统察觉不到是运行在一个虚拟平台上这样的虚拟平台可以运行现有的操作系统无须对操作系统进行任何修改因此这种方式被称为完全虚拟。在当前的系统级虚拟化解决方案中完全虚拟化技术应用非常普遍典型的有知名的产品有VirtualBox、KVM、VMware Workstation和VMware ESX它在其4.0版被改名为VMware vSphere、Xen也支持全虚拟化。类虚拟化这样的虚拟平台需要对所运行的客户机操作系统进行或多或少的修改使之适应虚拟环境因此客户机操作系统知道其运行在虚拟平台上并且会去主动适应。这种方式被称为类虚拟化有时也称作半虚拟化。这种虚拟技术以Xen为代表微软的Hyper-V所采用技术和Xen类似也可以把Hyper-V归属于半虚拟化。 其架构模型示意图如下 VMM(Virtual Machine Manager)首先可以被看做是一个完备的操作系统不过和传统操作系统不同的是VMM是为虚拟化而设计的因此还具备虚拟化功能。从架构上来看首先所有的物理资源如处理器、内存和I/O设备等都归VMM所有因此VMM承担着管理物理资源的责任其次VMM需要向上提供虚拟机用于运行客户机操作系统因此VMM还负责虚拟环境的创建和管理。 接下来我们来认识下重要的虚拟化的产品。 (1)VMware VMware是x86 虚拟化软件的主流广商之一提供一系列的虚拟化产品其产品的应用领域从服务器到桌面。下面是VMware主要产品的简介包括VMware ESX、VMware Server和VMware Workstation。 VMware ESX Server是VMware的旗舰产品后续版本改称VMware vSphere。ESX Server基于Hypervisor模型在性能和安全性方面都得到了优化是一款面向企业级应用的产品。VMware ESX Server支持完全虚拟化可以运行Windows 、Linux、Solaris和Novell Netware等客户机操作系统。VMware ESX Server也支持类虚拟化可以运行Linux 2. 6. 21 以上的客户机操作系统。 VMware Server之前叫VMware GSX Server是VMware面向服务器端的入门级产品。宿主机操作系统可以是Windows或者Linux。VMware Server的功能与ESX Server类似但是在性能和安全性上与ESX Server有所差距。 VMware Workstation是VMware面向桌面的主打产品。宿主机操作系统可以是Windows或者Linux。专门针对桌面应用做了优化如为虚拟机分配USB设备为虚拟机显卡进行3D加速等。 (2)Xen Xen是一款基于GPL授权方式的开源虚拟机软件。Xen起源于英国剑桥大学Ian Pratt领导的一个研究项目之后Xen独立出来成为一个社区驱动的开源软件项目。 它是运行在裸机上的虚拟化管理程序(Hypervisor)。它支持全虚拟化和半虚拟化Xen支持hypervisor和虚拟机互相通讯而且提供在所有Linux版本上的免费产品包括Red Hat Enterprise Linux和SUSE Linux Enterprise Server。Xen最重要的优势在于半虚拟化此外未经修改的操作系统也可以直接在xen上运行(如Windows)能让虚拟机有效运行而不需要仿真因此虚拟机能感知到hypervisor而不需要模拟虚拟硬件从而能实现高性能。 (3)KVM KVM(Kernel-based Virtual Machine)也是一款基于GPL授权方式的开源虚拟机软件。KVM 最早由Qumranet公司开发在2006年出现在Linux内核的邮件列表上并于2007年被集成到了Linux 2.6.20内核中成为内核的一部分。 它集成到Linux内核的Hypervisor是X86架构且硬件支持虚拟化技术(Intel VT或AMD-V)的Linux的全虚拟化解决方案。它是Linux的一个很小的模块利用Linux做大量的事如任务调度、内存管理与硬件设备交互等。 KVM还可以结合QEMU来提供设备虚拟化。 (4)QEMU QEMU是一套由Fabrice Bellard所编写的模拟处理器的自由软件。它与BochsPearPC近似但其具有某些后两者所不具备的特性如高速度及跨平台的特性。经由kqemu这个开源的加速器QEMU能模拟至接近真实电脑的速度。 QEMU本身可以不依赖于KVM但是如果有 KVM的存在并且硬件(处理器)支持比如Intel VT功能那么QEMU在对处理器虚拟化这一块可以利用KVM提供的功能来提升性能。换言之KVM缺乏设备虚拟化以及相应的用户空间管理虚拟机的工具所以它借用了QEMU的代码并加以精简连同KVM一起构成了一个完整的虚拟化解决方案不妨称之为KVMQEMU。 5OpenStack 不同于前面的几个产品Openstack是一个云管平台项目由美国国家航空航天局和Rackspace在2010年末合作研发的开源项目旨在打造易于部署、功能丰富且易于扩展的云计算平台。OpenStack项目的首要任务是简化云的部署过程并为其带来良好的可扩展性企图成为数据中心的操作系统即云操作系统。 OpenStack覆盖了网络、虚拟化、操作系统、服务器等各个方面。其核心的组件如下 计算ComputeNova。一套控制器用于为单个用户或使用群组管理虚拟机实例的整个生命周期根据用户需求来提供虚拟服务。负责虚拟机创建、开机、关机、挂起、暂停、调整、迁移、重启、销毁等操作配置CPU、内存等信息规格。自Austin版本集成到项目中。对象存储Object StorageSwift。一套用于在大规模可扩展系统中通过内置冗余及高容错机制实现对象存储的系统允许进行存储或者检索文件。可为Glance提供镜像存储为Cinder提供卷备份服务。自Austin版本集成到项目中。镜像服务Image ServiceGlance。一套虚拟机镜像查找及检索系统支持多种虚拟机镜像格式AKI、AMI、ARI、ISO、QCOW2、Raw、VDI、VHD、VMDK有创建上传镜像、删除镜像、编辑镜像基本信息的功能。自Bexar版本集成到项目中。身份服务Identity ServiceKeystone。为OpenStack其他服务提供身份验证、服务规则和服务令牌的功能管理Domains、Projects、Users、Groups、Roles。自Essex版本集成到项目中。网络地址管理NetworkNeutron。提供云计算的网络虚拟化技术为OpenStack其他服务提供网络连接服务。为用户提供接口可以定义Network、Subnet、Router配置DHCP、DNS、负载均衡、L3服务网络支持GRE、VLAN。插件架构支持许多主流的网络厂家和技术如OpenvSwitch。自Folsom版本集成到项目中。块存储 (Block Storage)Cinder。为运行实例提供稳定的数据块存储服务它的插件驱动架构有利于块设备的创建和管理如创建卷、删除卷在实例上挂载和卸载卷。自Folsom版本集成到项目中。UI 界面 (Dashboard)Horizon。OpenStack中各种服务的Web管理门户用于简化用户对服务的操作例如启动实例、分配IP地址、配置访问控制等。自Essex版本集成到项目中。测量 (Metering)Ceilometer。像一个漏斗一样能把OpenStack内部发生的几乎所有的事件都收集起来然后为计费和监控以及其它服务提供数据支撑。自Havana版本集成到项目中。部署编排 (Orchestration)Heat。提供了一种通过模板定义的协同部署方式实现云基础设施软件运行环境计算、存储和网络资源的自动化部署。自Havana版本集成到项目中。数据库服务Database ServiceTrove。为用户在OpenStack的环境提供可扩展和可靠的关系和非关系数据库引擎服务。自Icehouse版本集成到项目中。 其分层架构如下: 3、云原生时代 云计算发展就是能力不断下沉到基础设备应用开发者不断得到解放的过程。 这个过程可以类比社会的发展从封建主义社会的自给自足到资本主义社会的按劳分配再到共产主义社会的按需分配。云原生时代就可以看做社会主义社会阶段大部分工作已经被底层设施完成应用开发者仅关注业务自身逻辑。 什么是云原生2015年成立的CNCF基金会(​Cloud Native Computing Foundation​)在2018年对云原生做了如下定义(中英文对照) Cloud native technologies empower organizations to build and run scalable applications in modern, dynamic environments such as public, private, and hybrid clouds. Containers, service meshes, microservices, immutable infrastructure, and declarative APIs exemplify this approach. 译文云原生技术有利于各组织在公有云、私有云和混合云等新型动态环境中构建和运行可弹性扩展的应用。云原生的代表技术包括容器、服务网格、微服务、不可变基础设施和声明式 API。 These techniques enable loosely coupled systems that are resilient, manageable, and observable. Combined with robust automation, they allow engineers to make high-impact changes frequently and predictably with minimal toil. 译文:这些技术能够构建容错性好、易于管理和便于观察的松耦合系统。结合可靠的自动化手段云原生技术使工程师能够轻松地对系统作出频繁和可预测的重大变更。 关于什么是云原生现在还在争论中可谓百家争鸣笔者认为云原生是一种设计理念一切有利于提升云上资源利用率以及应用交付效率的行为或方式都可以看做云原生如容器化ServiceMeshServerlessK8S等技术。 云原生的设计理念如下: 面向分布式设计Distribution容器、微服务、API 驱动的开发面向配置设计Configuration一个镜像多个环境配置面向韧性设计Resistancy故障容忍和自愈面向弹性设计Elasticity弹性扩展和对环境变化负载做出响应面向交付设计Delivery自动拉起缩短交付时间面向性能设计Performance响应式并发和资源高效利用面向自动化设计Automation自动化的 DevOps面向诊断性设计Diagnosability集群级别的日志、metric 和追踪面向安全性设计Security安全端点、API Gateway、端到端加密 云原生起始于容器化技术前面在讲虚拟化时我们说到计算机系统的每一层都可以虚拟化其中操作系统虚拟化又称之为容器化。 容器技术属于轻量级的虚拟化它不需要虚拟出整个操作系统只需要虚拟一个小规模的环境类似“沙箱”。与虚拟化技术比较 特性虚拟机容器隔离级别操作系统级别进程级别隔离策略HypervisorGGroups系统资源5%15%0%5%启动时间分钟秒镜像存储GB~TBKB~MB集群规模上百上万高可用策略备份容灾迁移弹性负载动态 容器技术与虚拟机技术并不是互斥的而是互补的。大部分的方案是在物理机上虚化一层然后再进行容器化。 总之容器技术在性能弹性可维护性方面的优势成为云原生的基础。 (1)Docker Docker是容器化技术的佼佼者甚至是容器的代名词其实它仅是容器化技术的一个项目产品其类似的产品包括LXCRocket等。Docker项目最初是由一家名为DotCloud的平台即服务厂商所打造其后该公司更名为Docker。Docker在起步阶段使用LXC而后利用自己的Libcontainer库将其替换下来。 对于容器技术大家的方案差不多采用了CgroupNameSpace技术实现了进程级别的隔离。那为什么Docker会脱颖而出其杀手锏是采用一套高效的分层式容器镜像模型实现了高效的部署。 以ubuntu 为例分为只读层和读写层示意图如下 rootfs由多个 image 来构成ubuntu版本之间差异由之前的rootfs变成粒度更小的images对于ubuntu的不同版本来说大部分的images是可以共用的仅下载由变动的images就可以完成容器的创建和迁移大大提升了效率。 rootfs作为只读层是基石不可以被改变的。那么Docker又在其上增加读写层作为增量的修改。通过AUFS实现 rootfs 与 read-write filesystem 的合并形成一个完整的ubuntu系统。 Docker容器是云原生技术的奠基石开启了轰轰烈烈的云原生时代。 (2)CNCF CNCF(Cloud Native  Computing Foundation,云原生基金会)成立于2015年12月11日是一个开源软件基金会。CNCF的成立对于云原生是个里程碑式的事件其致力于推动云原生技术的可持续发展以及帮助开发人员快速构建出色的云原生的产品。 CNCF的全景图(原图请见GitHub - cncf/landscape: The Cloud Native Interactive Landscape filters and sorts hundreds of projects and products, and shows details including GitHub stars, funding or market cap, first and last commits, contributor counts, headquarters location, and recent tweets.) 其路线路包含十个步骤也涵盖了云原生技术栈。 容器化。目前最流行的容器化技术是Docker你可以将任意大小的应用程序和依赖项甚至在模拟器上运行的一些程序都进行容器化。随着时间的推移你还可以对应用程序进行分割并将未来的功能编写为微服务。CI/CD持续集成和持续发布。创建CI/CD环境从而使源代码上的任意修改都能够自动通过容器进行编译、测试并被部署到预生产甚至生产环境中。应用编排Kubernetes。Kubernetes是目前市场上应用编排领域被最广泛应用的工具Helm Charts可以用来帮助应用开发和发布者用于升级Kubernetes上运行的应用。监控和分析。在这一步中用户需要为平台选择监控、日志以及跟踪的相关工具例如将Prometheus用于监控、Fluentd用于日志、Jaeger用于整个应用调用链的跟踪。服务代理、发现和治理。CoreDNS、Envoy和LInkerd可以分别用于服务发现和服务治理提供服务的健康检查、请求路由、和负载均衡等功能。网络。Calico、Flannel以及Weave Net等软件用于提供更灵活的网络功能。分布式数据库和存储。分布式数据库可以提供更好的弹性和伸缩性能但同时需要专业的容器存储予以支持。流和消息处理。当应用需要比JSON-REST这个模式更高的性能时可以考虑使用gRPC或者NATS。gRPC是一个通用的RPC远程调用框架类似各种框架中的RPC调用NATS是一个发布/订阅和负载均衡的消息队列系统。容器镜像库和运行环境。Harbor是目前最受欢迎的容器镜像库同时你也可以选择使用不同的容器运行环境用于运行容器程序。软件发布。最后可以借助Notary等软件用于软件的安全发布。 目前(截止2022年10月)已有18个项目从CNCF毕业分别是Kubernetes、Prometheus、Envoy、CoreDNS、Containerd、TUF、Jaeger、Fluentd、VitessHelmEtcdHarborLinkedOpen Policy AgentRookspiffespireTikv。 (3)K8S 写到这我们的主角终于闪亮登场了。Docker技术完美的解决了应用的部署和迁移一致性以及高效性的问题但是还得有人告诉它如何部署和迁移这就是容器的编排和调度也就是K8S的职责所在同时它提供了存储网络权限等一套API已经成为事实意义上的云操作系统是云原生的霸主统治者。 K8S(Kubernetes) 是 Google 于 2014 年 6 月基于其内部使用的Brog系统开源出来的容器编排调度引擎2018年经过CNCF的孵化成为第一个毕业的项目。实际上K8S的霸主之路并非一帆风顺它的问世给如日冲天的Docker形成了威胁遭到多方的绞杀经过与Swarm、Mesos 的混战之后最终胜出。其中的原因是多方面的笔者认为主要有两方面。一方面是谷歌的背书自带光环其技术的领先性以及产品的稳定性都得到了很好的保障另一方面K8S作为开源项目坚持公正公平赢得了广大开发者的支持要知道K8S的服务对象就这这群开发者得人心者得天下。 关于K8S的技术架构我们稍后将详细介绍。 (4) Serverless Serverless(无服务器技术)并不是突然兴起的时髦概念早在2014年AWS就推出Lamada服务这就是早期商用的FAAS(函数即服务)。随着容器和K8S技术的成熟使得Serverless发展走上了快车道。 Serverless并不是说不需要服务器而是包括服务器操作系统环境等基础设备完全对于开发者屏蔽了更进一步部署运维等工作也不需要开发者介入开发者唯一要做的是把业务逻辑代码写好生产力真正得到了解放。 从架构上理解ServerlessFAAS事件驱动BAAS FAASFunction as a Service,函数即服务应用由诸多个独立的函数组成每个函数实现各自的业务逻辑。事件驱动通过事件触发的形式去完成函数的调用处理请求和响应(如定时任务/http请求...)。BAASBackend as a Service 后端即服务后端能力封装成了服务并以接口的形式提供给FaaS如数据库的增删改查等。 Serverless降低了开发运营成本其良好的扩展能力使得按需弹性算力这些优势使得Serverless被认为是云计算未来十年的趋势。各家大厂也纷纷布局包括基于K8S的Serverless平台KnativeOpenWhisk等。 算力像水电一样成为老百姓平常生活的必须品这个时代已经肉眼可见了。云计算技术也必将改变人类的未来置身于时代洪流之中同流合污拥抱变革才能实现自身价值。 三、K8S的功能 我们再回到主角K8S容器的编排和调度是K8S基本功能除此之外K8S还包括应用部署维护服务注册负载均衡弹性扩缩容扩展机制等一系列的功能套件。现在我们来逐一了解下: 1、服务编排K8S通过YAML文件声明式描述服务间的关系(亲和或者互斥)使得应用程序部署变得更高效。 2、Pod的调度pod是K8S调度的最小单位也是容器依赖的执行环境根据调度策略将pod调度到合适的节点上运行。 3、服务发现服务运行在集群中不同的节点上Service对象对外提供统一的访问IP并转发到服务。 4、负载均衡访问的流量通过kube proxy负载均衡转发请求到后端容器。 5、应用健康检查容器内服务可能进程堵塞无法处理请求可以设置监控检查策略保证应用健壮性。 6、资源监控Node节点组件集成cAdvisor资源收集工具可通过Heapster汇总整个集群节点资源数据。 7、弹性伸缩根据资源的收集数据并通过指定的指标(CPU利用率指定副本数)自动缩放Pod副本数。 8、滚动更新更新服务不中断一次更新一个Pod而不是同时删除整个服务确保服务的不中断。 9、数据卷Pod中容器之间共享数据可以使用数据卷。 10、认证和授权支持属性访问控制ABAC、角色访问控制RBAC认证授权策略。 总体而言K8S统一了云数据中心基础设施层的API成为云操作系统。我们来和单机的linux操作系统做个比较。 对比项LinuxKubernetes隔离单元进程Pod硬件单机数据中心并发线程容器资源管理进程内存CPU内存、CPU Limit/Request存储文件ConfigMap、Secret、Volume网络端口绑定Service终端tty、pty、shellkubectl exec网络安全IPtablesNetworkPolicy权限用户、文件权限ServiceAccount、RBAC 四、K8S概念 下面我们认识K8S一些重要的概念,这里有个初步印象即可后续的章节将详细介绍。 1、Node(节点) Node(节点)是kubernetes集群中的工作负载节点提供物理网络存储算力等资源。每个node都会被master分配一些工作负载docker容器。当某个node节点宕机其上面的工作负载会被master自动转移到其他的节点上。 Node可以是物理机也可以是虚拟机。K8S集群就是有Master节点和Node节点组成的Master-Node架构后面详细介绍。 2、Pod Pod是最基础也是最重要的对象是在 Kubernetes 集群中运行部署应用或服务的最小单元。它与Node以及容器之间的关系如下: 那么Node为什么不直接部署容器而中间需要有个Pod对象这就涉及到Pod支持多容器的设计理念。同一个Pod的一组容器可以共享网络和文件系统通过进程间通信和文件共享这种简单高效的方式组合完成服务对于一些强依赖的应用可以编排到一个Pod中在部署的时候组合成一个微服务对外提供服务。 比如运行一个操作系统发行版的软件仓库一个 Nginx 容器用来发布软件另一个容器专门用来从源仓库做同步这两个容器的镜像由两个团队开发但是它们一块儿工作才能提供一个微服务这种就符合Pod的多容器理念。 Pod 是 Kubernetes 集群中所有业务类型的基础可以看作运行在 Kubernetes 集群中的小机器人不同类型的业务就需要不同类型的小机器人去执行。但需要注意的是Pod是虚拟的概念并不是实际的物理组件。 3、NameSpace(命名空间) 当两个Pod划分到不同的NameSpace下它们之间默认情况下是无法访问的形成逻辑上的隔离和分组。NameSpace主要作用是用来实现多套环境的资源隔离或者多租户的资源隔离。 Kubernetes 集群初始有两个命名空间分别是默认命名空间 default 和系统命名空间 kube-system除此以外管理员可以可以创建新的命名空间满足需要。 4、Replication Controller(RC,副本控制器)/Replication Set(RS,副本集) RC(副本控制器)是 Kubernetes 集群中最早的保证 Pod 高可用的 API 对象根据指定Pod的副本个数并监控运行过程中实际的副本数两者进行比较实现动态的扩缩容。 RC(副本集)可以认为是RC的升级版相比于RC能支持更多种类的Pod匹配模式。副本集对象一般不单独使用而是作为 Deployment 的理想状态参数使用。 5、Deployment(部署) 部署是K8S集群对于服务的更新操作可以是新建也可以是升级。K8S的部署采用滚动的模式即旧版本的RS逐渐减少到0新版本的RS逐渐增加到指定数的过程。 部署过程中还支持终止和回退到指定版本。 6、Service(服务) 服务部署并运行后对外提供访问服务由于Pod的IP和端口是不确定的(弹性扩缩容会导致pod对象的增删)就需要一个对象提供稳定的服务发现和负载均衡功能该对象就是Service。 在 K8 集群中客户端需要访问的服务就是 Service 对象每个 Service 会对应一个集群内部有效的虚拟 IP集群内部通过虚拟 IP 访问一个服务。 Service配合Kube proxy组件实现流量的负载均衡。 7、Job(任务) 根据服务运行的周期可以分为长服务和短服务长服务是需要一直在线的比如web服务短服务是有头有尾任务完成后可以结束的比如一次性的调用用完就可以销毁掉。Job 是 Kubernetes 用来控制批处型任务(短服务)的 API 对象任务完成后就自动退出。 8、DaemonSet(后台支撑服务集) 有些服务是和Node节点绑定的节点创建后就需要启动并运行某类pod和业务pod没有关系比如监控日志存储等。K8S为这类服务提供了DaemonSet控制器。 9、StatefulSet(有状态服务集) 服务可以分为有状态和无状态无状态是指没有上下文数据的新建的服务实例与其他的服务实例之间没有差异可以相互替代比如web服务有状态是指带有上下文数据的服务实例之间是有差异的典型的就是数据库实例比如Mysql服务分库1实例与分库2实例之间是有差异的无法相互替代。 StatefulSet是K8S为解决有状态服务而提供的管理对象。 10、Persistent Volume(PV,持久存储卷)/Persistent Volume Claim(PVC,持久存储卷声明) 如果服务需要存储支撑那么在声明该服务容器的时候需要申明所需要的存储资源这些资源的规格类型甚至位置都有不同的要求。对于开发者来说这些工作已经超过其认知范围也不会关心这些基础设施的信息这些显然是运维的工作范畴。 K8S通过PV和PVC分离了在存储配置过程中开发和运维的工作运维人员根据存储资源配置PV如存储规格的划分访问路径等开发人员根据服务申请所需的的存储资源即可(即PVC)比如需要50GB的存储空间而不需关系这些资源在哪。PV与PVC的适配就交由K8S实现了。 11、Secret(密钥对象) Secret 是用来保存和传递密码、密钥、认证凭证这些敏感信息的对象。使用 Secret 的好处是可以避免把敏感信息明文写在配置文件里。在 Kubernetes 集群中配置和使用服务不可避免的要用到各种敏感信息实现登录、认证等功能例如访问 AWS 存储的用户名密码。为了避免将类似的敏感信息明文写在所有需要使用的配置文件中可以将这些信息存入一个 Secret 对象而在配置文件中通过 Secret 对象引用这些敏感信息。 12、User Account(用户账户)/Service Account(服务帐户) 用户帐户为人提供账户标识而服务账户为计算机进程和 Kubernetes 集群中运行的 Pod 提供账户标识。用户帐户和服务帐户的一个区别是作用范围用户帐户对应的是人的身份人的身份与服务的 namespace 无关所以用户账户是跨 namespace 的而服务帐户对应的是一个运行中程序的身份与特定 namespace 是相关的。 后续的系列课程将围绕这些概念展示逐一进行详细介绍。 五、K8S架构 K8S的系统架构图如下 K8S整体上采用的是Master-Node架构Master是控制面整个集群的中枢Node为执行面负责应用的具体执行两者通过信息交互完成协作。 1、Master Mater是整个K8S集群的大脑负责管理所有的Node,调度Pod控制运行过程中的状态。 (1)API Server API Server组件可以认为是这个大脑的办事大厅,一方面对外提供统一的访问接口另一方面各个组件之间不相互通讯都是通过API Server实现信息交互。 这种设计的好处是可以收敛统一请求进行认证、授权以及访问控制。由于API server是一个集中点也可能出现网络风暴将其击穿的风险这一点其实不用担心API server在设计的时候就考虑到弹性伸缩的问题其无状态特性决定了可以快速的扩容避免上述情况的发生。 总体来说API Server具有以下特性 将Kubernetes系统中的所有资源对象都封装成RESTful风格的API接口进行管理。可进行集群状态管理和数据管理是唯一与Etcd集群交互的组件。拥有丰富的集群安全访问机制以及认证、授权及准入控制器。提供了集群各组件的通信和交互功能。 (2) Etcd Etcd可以认为是大脑的信息仓库。是兼具一致性和高可用性的键值数据库在K8S集群中它负责数据的存储包括所有Kubernetes资源对象信息、集群节点信息运行状态信息等。 (3)Control Manager Control Manager 是大脑的总管。弹性扩缩容是云计算的核心诉求control manager(控制器管理)负责监控NodePod等资源运行的状态与期望状态之间的差异当年状态发生偏差就会尝试修复到期望状态。这种偏差的原因有服务配置的变更(比如改配置 yaml 文件中的参数)也有可能是系统异常(节点宕机)。 K8S中内置了很多类型的控制器比如前面介绍的DeploymentReplicaSet 等后面我们详细介绍。 Control Manager组件本身也具备高可用和API Server无状态不同由于其控制器的决策特性无法让所有运行的实例同时参与实际工作必须要有个Leader的实例负责控制逻辑其他的实例称之为Candidate节点作为备份当Leader实用于处理单个主机子网划分并向外部世界公开服务。它跨集群中的各种隔离网络将请求转发到正确的 pod/容器。例出现异常后Candidate节点则通过领导者选举机制参与竞选成为Leader节点继续工作。 (4)Schedule Schedule是大脑的办事员control manager负责监控差异但是调整差异到到期望状态并不是它的责任而是由Schedule(调度器)完成它负责在Kubernetes集群中为一个Pod资源对象找到合适的节点并在该节点上运行。 Schedule的调度算法分为预选和优选两种预选选择符合Pod运行的节点列表而优选则是从列表中挑选出最优的节点。 Schedule的高可用方案与Control Manager是类似的。 2、Node Node是物理节点应用运行的实体载体其上组件包括: (1)Kubelet Kubelet是管理节点的组件是节点的运行的代理一方面接受API server下发的任务指令并完成执行当Master节点的Schedule完成节点选择后Pod在节点上的创建工作则是由Kubelet完成另一方面监控所在节点资源的使用状态并上报给API Server组件为调度策略提供数据支撑。 (2)Kube Proxy Kube Proxy是运行在每个节点的网络代理实现 Kubernetes 服务Service 概念的一部分。 Kube Proxy维护节点上的网络规则通过iptables/ipvs等配置负载均衡器为一组Pod提供统一的TCP/UDP流量转发和负载均衡功能。 (3) Container Runtime 容器运行时负责创建容器运行环境最著名的当属Docker(不过即将被K8S废弃),containerd,以及任何实现CRI接口的runtime。 六、总结 本章节我们首先回顾了云计算的发展史经历了物理机虚拟机以及云原生的时代。整个发展的过程就是能力不断下沉生产力不断得到解放的过程。 虚拟机时代产生了VMwareOpenstack等经典的产品容器技术(特别是Docker)揭开了云原生时代幕布K8S横空出世成为事实意义上的云操作系统是当今云原生的统治者。基于容器和K8S技术Serverless技术使的生产力进一步得到解放成为未来十年云计算的发展趋势。 K8S在开发部署运维上提供一系列的概念和功能套件比如PodRSService等通过Master-Node架构整个云计算基础设施(计算存储网络)等整合并run起来。 附: K8S初级入门系列之一-概述 K8S初级入门系列之二-集群搭建 K8S初级入门系列之三-Pod的基本概念和操作 K8S初级入门系列之四-Namespace/ConfigMap/Secret K8S初级入门系列之五-Pod的高级特性 K8S初级入门系列之六-控制器(RC/RS/Deployment) K8S初级入门系列之七-控制器(Job/CronJob/Daemonset) K8S初级入门系列之八-网络 K8S初级入门系列之九-共享存储 K8S初级入门系列之十-控制器(StatefulSet) K8S初级入门系列之十一-安全 K8S初级入门系列之十二-计算资源管理

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/86777.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

怎么做汽车网站php和什么语言做网站

最近富文本编辑器jodit终于更新发布到了4.0版本,加入了css变量、有更好的typescript支持,截止发文时的版本是:4.0.5,看到有了新版本于是便想着将本地项目中的jodit版本也进行升级,琢磨着再丰富和添加一些功能&#xff…

建设六马路小学 网站网站集约化建设的好处

1.概要 初步搭建了Layout界面的布局,其中包括左侧导航栏及其路由功能,和右侧头、体、脚部分的大致排版。最后在头部分中的昵称与头像替换成动态数据。 2.Layout主页布局 文件地址:src\views\Layout.vue 2.1 script行为模块 从elementUI中…

建站排行榜有哪些站内推广的方式

文章目录基本介绍入门步骤执行原理Servlet 生命周期线程安全问题解决方式Servlet 注解配置Servlet 继承与实现体系基本介绍 servlet,server applet,服务器端小程序 servlet 是一个接口,定义了 Java 类被浏览器访问(tomcat 识别&…

建立一个网站需要多少钱?网站网络营销外包

uni-app 微信小程序调试不更新问题解决指南 在使用 uni-app 开发微信小程序时,可能会遇到代码修改后无法更新或者不生效的问题。这种现象常见于调试阶段,通常与缓存、编译或代码错误有关。 本文将详细分析调试过程中常见的“不更新”问题,并…

dede能建立手机网站吗计算机做网站开题报告

目录: SpringMVC 的 “整合支持” ( 引入"Web依赖启动器",几乎可以在无任何额外的配置的情况下进行"Web开发")1.SpringMVC "自动配置" 介绍 ( 引入Web依赖启动器"后,SpringBoot会自动进行一些“自动配置”&#xff0…

专业做面膜的网站在线玩网页游戏h5网站大全

光猫就是“光modem”,是指将光以太信号转换成其它协议信号的收发设备,也是起着调制解调的作用。光猫也称为单端口光端机,该设备作为本地网的中继传输设备,适用于基站的光纤终端传输设备以及租用线路设备。而对于多口的光端机一般会…

长沙微网站开发公司网站域名注册流程

一、实验目的 (1)了解图像增强的目的及意义,加深对图像增强的感性认识,巩固所学的图像增强的理论知识和相关算法。 (2)熟练掌握低通、高通、带通、同态滤波器的使用方法,明确不同性质的滤波器…

怎样建设自已的网站英文网站收录提交

const 是 C 语言中的一个关键字,它表示一个对象或变量是常量,即在其生命周期内不可更改。在 C 语言中,const 有多种用法,可以提高代码的可读性和安全性。这里列举了一些关于 const 的常见用法: 声明常量变量&#xff…

ai特效字体网站设计方案步骤

我的 index.jsp 代码是这样 现在每次启动 访问的都是index.jsp 这也是它的默认配置 我这里写了一个 WebServlet 代码是这样 简单可以理解为 我们定义了WebServlet 访问路径为1cginServlet 其中在request作用域中 定义了一个userName值为 欢迎来到jsp世界 然后 跳转向 page.j…

网站建设教程开源代码下载手机网站建设ppt

文 | Mike Shou知乎(ID:Showthem)本文已获作者授权,禁止二次转载0. 写在前面「 开始写这边总结的时候是三月,纽约成了疫情震中,看着新闻报道里的中央公园,中国城,第五大道,往事浮现&…

网站建设纯免费官网太原seo推广优化

在手机侧与穿戴设备侧构建应用到应用的通信隧道,用于收发应用自定义的报文消息以及文件。实现手机应用和穿戴设备应用间的交互,为用户提供分布式场景和体验。比如手机应用发送音频文件到穿戴设备侧应用,实现在穿戴设备侧应用上播放音乐&#…

神奇网站基于php网站建设论文

基于java的SSM框架Vue实现大学生兼职信息网站演示 摘要 21世纪的今天,随着社会的不断发展与进步,人们对于信息科学化的认识,已由低层次向高层次发展,由原来的感性认识向理性认识提高,管理工作的重要性已逐渐被人们所认…

网站备案 修改新建网页的方法有哪些

var str "今天是星期" "日一二三四五六".charAt(new Date().getDay());alert(str); 转载于:https://www.cnblogs.com/lccnblog/p/5902525.html

钢筋网片理论重量表规格表南阳做网站优化价格

业务场景:APP列表页右上角有一个立即刷新按钮,点击立即刷新需要刷新当前页面。下面简单实现几个DEMO 效果图 目录 方法1:reload() 方法 方法2:replace() 方法

浏览器怎样屏蔽网站石家庄长安区网站建设公司

知不足而奋进 望远山而前行 目录 文章目录 前言 下载 安装 解压 安装 添加开发包 修改仓库路径 下载软件开发包(慢,不推荐) 解压已有软件开发包(快,推荐) 总结 前言 在嵌入式系统开发中&#x…

网站ueo福建建设执业中心网站

计算机技术在当今的社会,已经变得越来越热,充斥着我们生活的方方面面。人们的工作或是休闲,离不开互联网和电脑,这既受益于各类软件的诞生,也与时下的技术息息相关。Java作为编程界赫赫有名的语言,在最近几…

网站建设代码做网站什么是三网合一

目录 摘要 1. 介绍 2. 数据模型 行 列族 时间戳 3. API 4. 所需构件 5. 实现 5.1 Tablet的位置 5.2 Tablet分配 5.3 Tablet服务 5.4 压实(Compactions) 6. 优化 本地化分组 压缩(compression) 通过缓存提高读操作的性能 Bloom过滤器 C…

网站添加提醒网站怎么做有创意

drools。drools我们很自豪地宣布,从版本6.0.0.Beta1开始,将Drools Planner重命名为OptaPlanner。 我们也很高兴推出其新网站: www.optaplanner.org。 OptaPlanner优化了业务资源的使用。 每个组织都面临计划方面的问题:以有限的有…

如何建立公司网站多少钱线上seo关键词优化软件工具

栈 栈的概念 栈:一种特殊的线性表,其只允许在固定的一端进行插入和删除元素操作。进行数据插入和删除操作的一端称为栈顶,另一端称为栈底。栈中的数据元素遵守先进后出LIFO(Last In First Out)的原则。大家可以理解为…

广告设计模板网站东营网站建设优选案例

1.项目简介 动物分类教程分类释义界面展示 动物分类是生物学中的一个基础知识,它是对动物进行分类、命名和描述的科学方法。本教程将向您介绍动物分类的基本原则和方法,并提供一些常见的动物分类释义。 动物分类的基本原则 动物分类根据动物的形态、…