| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 系统运维 -> (二)云原生&k8s的架构及基本组件原理 -> 正文阅读 |
|
[系统运维](二)云原生&k8s的架构及基本组件原理 |
1.iaas 基础设施即服务 ? 公司:服务器购买、建设机房、dns路由器、硬件、存储...--抽象成服务提供给公司(用户)使用 2.paas 平台即服务 在iaas层上进行了更高级层次抽象,iaas提供硬件服务,paas提供基础软件服务 3.saas 软件即服务 钉钉,企业微信 云原生: 架构:软件开发思想(软件架构思想) 应用:就是为了让应用程序(项目、mysql、elasticsearch...)都运行在云上容器中,这样的技术就叫做云原生 特点: 1.容器化:容器项目部署,起到了隔离的作用 2.微服务:实现原生最好采用微服务架构,微服务按照function拆分后,可以做到高内聚,低耦合,实现CI/CD 3.devops 开发+运维-开发运维的结合体。Devops是一种敏捷思维,开发一种组织形式 4.CI/CD 持续交付:不停机更新 云扩展思维: caas container as a service faas function as a service 函数即服务 service mesh 服务网格架构 服务治理-服务限流-服务降级-服务监控 istio serverless 无服务架构,是指程序员开发不需要关系服务器的事情,只需要开发业务代码即可 如何云原生? 本地部署应用可能需要停机更新,而云原生就不需要,始终是最新的状态,支持频繁的变更 本地部署应用无法进行动态扩展(动态伸缩容),云原生可以利用云资源的弹性进行自动伸缩容,从而为企业降本增效 本地部署应用对物理硬件ip,网络端口有强依赖,云原生就不需要了 本地部署需要人肉运维,云原生实现自动化运维 容器编排技术: 为什么要管理容器(虚拟机)? 怎么扩容?(自动) 容器宕机了,怎么恢复?(自动) 更新容器会不会影响业务?(不影响) 如何监控?(自动) 如何调度?(自动) 数据安全(自动) 2.容器编排技术 2.1 docker-compose docker-compose组件可以批量的创建容器,管理容器,粗颗粒度 2.2 swarm swarm容器编排工具是docker公司自己的开发,但是docker公司自己都不使用,docker使用的kubernetes:kubernetes采用pod和label这样的概念把容器组合成一个个互相存在依赖关系的逻辑单元,相关容器被组合成pod后被共同部署和调度,形成服务。 kubernetes基本结构: ? ? ? ? 1.master节点 :负责调度,存储集群状态(服务注册发现),提供统一api入口,一个master对应一群node节点 ? ? ? ? 2.node节点:node节点存储pod(pod内部封装容器),一个node节点理论上可以存储无数个pod,但是node节点存储pod的数量受限于硬件资源的限制,同时受限于内部服务器运行所占用的资源 3.kubernetes borg系统。kubernetes也是google公司开发的,架构设计思想是参考borg系统来架构设计的 发送请求:kubectl 客户端指令,浏览器(可视化方式 rancher,dashboard) master节点 :schedule调度器,负责计算该把pod调度到哪一个node节点 contollers: 控制器,负责维护node节点资源对象 apiServer:网关,所有请求都必须要经过网关 etcd 服务发现,注册。集群状态信息,调度信息 node节点 每一个node节点都运行一个kubelet进程,此进程负责本机服务的pod创建 pod是k8s管理的最小基本单元,pod内部可以运行一个或多个容器,一般情况下,pod内部只允许一个容器运行,便于管理 docker:docker引擎,pod内部运行的都是容器,这个容器是由docker引擎创建的,docker引擎是node节点基础服务 kubelet:node节点代理,kubelet代理master节点请求,在本地node节点执行 kube-proxy:网络代理,主要用来生成网络规则,创建访问路由,创建service网络访问规则,负责均衡规则 fluentd:日志,日志收集 master节点 apiserver:集群的统一入口,各组件协调者,以http api 提供接口服务,所有对象资源的增删改查和监听操作都交给apiserver处理后再提交给etcd存储 manager controller: ? ? ? ? replication controller:副本控制器 ? ? ? ? service cotroller:管理维护service(虚拟ip),提供负载以及服务代理 ? ? ? ? endpoints controller: 管理维护endpoints,关联service和pod ? ? ? ? persistent volumn controller: 持久化数据卷控制器 ? ? ? ? daemon set controller:让每一个node节点都运行相同的服务 ? ? ? ? deployment controller:无状态部署服务 4.scheduler 创建pod的流程: ? ? ? ? 1.kubctl发送创建pod的指令,此时这个指令被apiserver拦截,把创建的pod存储在etcd ? ? ? ? 2.scheduler发起调用请求,此时这个指令被spiserver拦截,获取etcd中的podQueue NodeList ? ? ? ? 调度算法:预选调度,优选策略 3.把选择合适的node、pod存储在etcd 4.node节点上有一个kubelet进程,发送请求获取pod,node对应创建资源 5.? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/16 6:28:31- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |