Devoos核心要点及kubernetes架构概述

Ansible就是一个编排工具。
docker :我们应用程序被容器化了,面向容器化的应用程序。
docker compose 是一个docker编排工具,面向单台主机编排,
docker swarm 是面向集群化的编排工具,
docker machine

mesos,marathon(容器遍排框架) AWS的。
kubernetes

DevOps(应用模式的开发),MicroServices,Blockchain
CI: 持续集成
CD: 持续交付 Dlivery
CD: 持续部署 Deployment
谷歌:Borg系统(容器系统)
kubernetes特性
自动装箱,自我修复,自动水平扩展,自动服务发现和负载均衡,自动发布和回滚
密钥和配置管理,存储编排。批量处理执行。

集群:组合多台主机的资源整合成一台大的资源池,并统一对外提供计算存储等能力的集群。
我们用许多台主机,在每一台主机上安装上kubernetes相关应用程序,并通过这个应用程序协同工作,把多个主机当成一个主机来使用。前提是在每一台主机上装上相关应用程序,让大家在这个应用程序级别上进行通信从完成彼此间协调,
在k8s集群中主机是分角色的,所谓集群有两种模型一种是p2p的,没有中心节点,每一个节点都能直接接收用户请求,能路由请求,另一种是有中心节点的,如mysql主从复制。
K8S是一个有中心节点的,master/nodes。master做为主节点,一般不需要太多,一般有三个就够了,nodes相当于worker,nodes就是运行容器的节点的。

有一个或一组节点是主节点master,是整个集群的唯一入口,node每一个节点贡献一部分计算能力,存储能力相关资源节点,实际是运行容器的节点,

用户请求先发给master,master当中有一个调度器去分析各node现有的可用资源状态,找一个最佳适配运行所请求的容器节点,并把它调度上去,由这个本地的容器引擎(docker)负责把它运行起来,先检查本地是否有镜像,
如果没有镜像它会负责把镜像拖下来再启动。

提供服务能让客户端访问的一般使用套接字,套接一般提供的是API接口。要使用专门编好的客户端程序,kubernetes把master上的一个组件做为API-SERVER,API-SERVER接收请求,解析请求,处理请求的,如果用户这次的请求是要创建一个容器,这个容器会运行在node上,但是到底运行在
哪个node上了,这个是由调度器决定的,叫做scheduler,负责观察每个node上总共可用的计算和存储资源并根据用户所请求创建这个容器所需要的资源量。k8s不但可以设定容器的资源上限,还能设定的容器资源下限,
kubernetes设计了一个两级调度的方式完成方式,1,先做预选,评估一下在每一个节点到底有多少个是符合这个容器运行需求的,2、优选,从这些预选项出来的节点再做一次优选。
在某个node上把这个容器启动起来了,可以做容器内部应用程序的健康检测的,叫做可用性探测机制来探测服务的可用性,一旦这个容器挂了,node上有个应用程序用来负责这个应用程序始终是健康运行的。如果node死掉了,之前拖管在此node的上所有应用程序也就没用了。
此时需要在其他节点上创建出一个一模一样的节点来代替已经死掉的node节点。kubernetes还实现了一大堆的叫控制器的应用程序,负责去监控他所管理的每一个容器是否是健康运行的。一旦发现运行不正常了,控制器就负责向master-apiserver发请求,再由scheduler从其他节点找一个合适的再重新启动为容器。
如果用于监控容器的控制器不健康了,在master上有个控制器管理器,负责监控每一个控制器是健康的,如果控制不健康了,由控制管理器确保他是健康的。
控制器管理是冗余的。
master是一个非常重要的节点是整个集群的大脑,有三个核心组件,1、API-Server组件,负责接收并处理请求的。2、scheduler,调度容器创建的请求。3、控制器管理器,确保已经创建的容器处理健康状态。控制器管理器是确保控制器是健康的,而控制器才是用来确定容器健康的,
kubernetes支持众多控制器,控制容器自身健康的只是其中一种,他还有很多其他的控制器。
在k8s上运行的最小单元不是容器,而是pod,kubernetes并不直接调度容器,他调度的目标叫pod,pod可以理解为容器的外壳,给容器做了一层封装。pod成为kubernetes上最小的调度逻辑单元,pod内部主要就是用来放容器的,但是pod有一工作特点,

一个pod中可以包含多个容器,多个容器共享同一个底层网络名称空间,pod是模拟传统的虚拟机的,一个pod内的所有容器还会共享存储卷。存储卷属于pod,一般情况下一个pod只放一个容器,如果一个pod内放几个容器,有一个主容器,其他容器是辅助这个主容器完成更多功能来实现的,比如在一个pod里运行了一个Nginx,那么这个容
器就不能再运行别的应用程序了,那么我们还想运行一个日志收集应用程序,那就只能把这个日志收集应用软件运行在和Nginx同一个pod的不同的容器中就可以。

node是kubernetes的工作节点,负责运行由master指定的各种任务,最核心的任务就是以pod的形式去运行容器的。理论上讲node可以是任何形式的计算设备,只要能够有传统意义上的CPU,内存,存储空间并且能装上kubernetes集群代理程序,都可以做为整个kubernetes整个集群的一份子,
因此kubernetes集群实现的效果就是整合所有的node节点,整合起来当一个很大的计算池来使用,终端用户就无需关心我们资源到底是运行在哪个节点上的,所以就实现了云的物理计算,调度和编排脱离的用户的视线,用户就无需关注究竟你的pod或容运行于哪一个对应的node之上,
这么多pod运行在某一个集群当中,如果想分类管理怎么办,如要删除某一个pod,该怎么删除了,我想一个控制器只管理一部分pod,能挑选出这一类pod吗。不能靠pod名称来区分的,我们想把一类pod归组,来用一个控制器来管理这一类pod,他怎么会认为目录符合我们要求的pod的有几个了。
为了能够实现pod的识别,我们需要在pod的基础上付加一些源数据,在创建完pod时可以给pod直接打上标签,让控制器或让人能够直接基于这个标签的值来识别出pod来,例如我们创建出了4个Nginx的pod来,我们可以给每个pod上加一个标签叫app,他的值都等于Nginx,那么我们找拥有key叫app并且他的值是Nginx,这样就可以把他挑选出来了,
这个去筛选的机制要靠一个组件来实现,叫标签选择器,selector组件,标签选择器就是一种根据标签来过滤符合条件资源对象机制,标签不关pod能用很多其他资源也都能用。

master/nodes
master: API Server,Scheduler,Controller-Manager
node: kubelet,docker(容器引擎) kube-proxy

Pod, Lable,Lable Selector

原文地址:https://www.cnblogs.com/liujunjun/p/12191842.html

时间: 2024-11-05 23:09:14

Devoos核心要点及kubernetes架构概述的相关文章

一,Devops核心要点及kubernetes的架构概述

目录 1,devops的简述及要点 2,kubernetes的简单介绍与组成 1,devops的简述及要点 DevOps,分层架构 ---> 微服务 把一个程序,拆分成几个成百个微服务,使其相互独立运行 当下把微服务和容器融合起来,使其能够快速的落地. DevOps 在交互和部署环节的易购程度,在部署环节异常困难,而容器的出现,完全弥补了. CI: 持续集成 Continues Integration 作为运维的角度,得到一个应程序,需要发布到生产,蓝绿部署,金丝雀,灰度发布 CD: 持续交付

JavaEE体系架构概述、MyBatis总结

JavaEE体系架构概述 java EE是sum公司发布的标准企业级应用规范集合,它提供了一个多层结构的分布式应程序模型,是开发基于网络的企业级应用首选平台.Java EE技术平台的核心思想是“容器”加组件 事务:有明确边界的一组序列,在应用程序中一个请求对应一个事务,当请求发送时,事务开始,当请求结束,事务也就结束.总的来说,事务有四个特性:1.原子性,一个请求要么成功,要么失败,不会再有其他情况:2.一致性,事务处理需要的和得到的时相同的:3.持久性,事务处理的结果时确认的.持久的,如果需要

大型互联网架构概述

本文旨在简单介绍大型互联网的架构和核心组件实现原理. 理论上讲,从安装配置,最佳实践以及源码来剖析各个组件,这个自然是极好的.由于笔者时间以及知识有限,有很多知识没有在工作中亲自实践的机会.所以有些地方语焉不详,还请大家多多指教. 大型互联网架构 解决问题的通用思路是将分而治之(divide-and-conquer),将大问题分为若干个小问题,各个击破.在大型互联网的架构实践中,无一不体现这种思想. 架构目标 低成本:任何公司存在的价值都是为了获取商业利益.在可能的情况下,希望一切都是低成本的.

微信牛牛平台制作服务器端架构概述

微信牛牛平台制作服务器端架构概述,平台制作教程联系QQ:212303635,官方网站(aqiulian.com) 架构的分析模型 一. 讨论的背景 现代电子游戏,基本上都会使用一定的网络功能.从验证正版,到多人交互等等,都需要架设一些专用的服务器,以及编写在服务器上的程序.因此,游戏服务器端软件的架构,本质上也是游戏服务器这个特定领域的软件架构. 软件架构的分析,可以通过不同的层面入手.比较经典的软件架构描述,包含了以下几种架构: 运行时架构--这种架构关心如何解决运行效率问题,通常以程序进程图

Kubernetes 架构原理

架构原理 本文来自:https://kubernetes.feisky.xyz/he-xin-yuan-li/architecture Kubernetes 最初源于谷歌内部的 Borg,提供了面向应用的容器集群部署和管理系统.Kubernetes 的目标旨在消除编排物理 / 虚拟计算,网络和存储基础设施的负担,并使应用程序运营商和开发人员完全将重点放在以容器为中心的原语上进行自助运营.Kubernetes 也提供稳定.兼容的基础(平台),用于构建定制化的 workflows 和更高级的自动化任

如何编写更棒的代码:11个核心要点

作为一个合格的程序员,有太多的理由促使你去编写干净利落且可读性强的代码.最重要的是因为你编写的代码,将来会有很多人一次次地阅读.当你有一天回过头来看自己的代码时,你就会明白编写优雅的代码是多么的重要.另外,如果别人来阅读你编写的代码,你是否想知道别人看到那些烂代码无比抓狂的感受.因此,花多一点的时间去编写优雅的代码,将来说不定会给你节省更多的时间. 那么,如何编写更棒的代码,下面是11条基本规则: 1.保持方法简短扼要 2.永远永远不要将同一个变量用于不同的目的 3.尽可能让变量和方法的名称能够

Scrapy架构概述

Scrapy架构概述 1, 从最初自己编写的spiders,获取到start_url,并且封装成Request对象. 2,通过engine(引擎)调度给SCHEDULER(Requests管理调度器). 3,SCHEDULER管理ENGINE传递过来的所有Requests,通过优先级,传递给ENGINE. 4,ENGINE 将传递过来的Request对象传递给Downloader(下载器),但是在传递之间会通过MiddleWare(中间件)对Requests进行包装,添加头部,代理IP之类的.

基于ONOS的SDN-IP架构概述篇

编者按:SDN-IP是ONOS上的一个应用程序,允许软件定义网络使用标准的边界网关协议(BGP)连接到外部网络.从BGP角度看,SDN网络表现为单一的自治系统(AS),其行为与任何传统的AS一样.基于AS的SDN-IP应用提供BGP和ONOS之间的集成整合机制,在协议层SDN-IP的行为作为一个有规则的BGP发言人.从ONOS的角度来看,它只是使用其服务,在SDN数据平面安装和更新相应的转发状态的应用程序. 1 架构目标  1.1 SDN-IP设计目标 (1)兼容性Compatibility:S

高效CSS开发核心要点摘录

做网站的,我们都知道尽量减少请求数,压缩CSS代码量,使用高效CSS选择符等方式可以来提高网站的载入速度和访问速度,也就是优化网站的性能. 下面分析了一些CSS的书写方式,很多都是我们知道并且正在使用的,这里记录一下,提醒自己以后写CSS的时候尽量从这些方面出发来使用,对于CSS的性能提升有很大的帮助,对于你自己写出来的代码也更加的靠谱了. 本文摘录之“高效CSS开发核心”,一些我认为是已经不需要用规则来约束的就不再啰嗦了,感兴趣的读者可以去看全文. 1.把CSS文件放在<head>中,避免使