当前位置:首页 > Web开发 > 正文

我们需要在pod的基础上付加一些源数据

2024-03-31 Web开发

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

Devoos核心要点及kubernetes架构概述

标签:

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

温馨提示: 本文由Jm博客推荐,转载请保留链接: https://www.jmwww.net/file/web/31571.html