k8s(kubernetes)基础

k8s 架构

image.png

master**提供集群管理的控制中心

通常master通常会在一台VM/机器上启动所有的matser组件,并且不会在matser上运行用户容器

kubernetes主要核心组件:

  • etcd: k8s默认提供的存储系统,保存了整个集群的状态。

  • apiserver:提供了资源操作的唯一入口,提供认证,授权,访问控制,api注册和发现等机制。

  • controller manager: k8s运行管理控制器,负责维护集群的状态,故障检测,自动扩展,滚动更新等,

          包括
    
  1. 节点(Node)控制器
  2. 副本(Replication)控制器 :负责维护系统中pod的副本
  3. 端点(Endpoints)控制器:连接service和pods
  4. Service Acount 和Token 控制器:为新的Namesapce创建默认账户访问和ApiToken
  • schedule: 负责资源调度,按照预定的策略将pod调度到对应的Node上

  • kubelet: 维护容器的生命周期,和Volume以及网络管理

      功能
    
  1. 安装pod所需的volume
  2. 下载pod的Secrets
  3. 管理pod中docker容器
  4. 定期执行健康检查
  5. 返回pod的状态给系统及创建pod
  6. 返回node的信息给系统
  • Container runtime: 负责镜像管理及pod的运行

  • kube-proxy: 负责为Service的集群内部的负载均衡及服务发现

  • supervisord:supervisord是一个轻量级的监控系统,用于保障kubelet和docker运行

  • fluentd:fluentd是一个守护进程,可提供cluster-level logging.。

    其他组件:
    其他组件:

  • kube-dns: 为集群提供DNS服务

  • ingress Controller:为服务提供外网服务

  • Heapster:提供资源监控

  • Dashboard:提供显示

  • Feaderation:跨可用区的集群

  • Fluentd-elasticseacher:提供日志采集,存储和查询

架构设计及名词解释

pod

pod是k8s集群中运行和部署的最小单元,可以支持多容器,支持多容器共享网络地址和文件系统。可以通过进程间通信和文件共享高效的组合方式来完成服务。k8s的业务主要分为:长期伺候型(long-running),批处理型(batch),节点后台支撑型(node-daemon)和有状态应用型(stateful application)。分别对应的控制为Deployment,Job,DaemonSet和PetSet

比如:你运行一个操作系统发行版的软件仓库,一个Nginx容器用来发布软件,另一个容器专门用来从源仓库做同步,这两个容器的镜像不太可能是一个团队开发的,但是他们一块儿工作才能提供一个微服务;这种情况下,不同的团队各自开发构建自己的容器镜像,在部署的时候组合成一个微服务对外提供服务

复制控制器(Replication Controller,RC)

RC是k8s中保证高可用的API对象,可以通过监控pod来保证集群中运行的指定书目的pod副本。少于或者多于指定数目RC会对应的启动新的或者杀死多于的副本。

RC是K8s较早期的技术概念,只适用于长期伺服型的业务类型,比如:控制集群提供高可用的Web服务

副本集:(Replica Set, RS)

RS是新一代的RC,可以匹配更多种类的匹配模式。一般不单独使用,而是作为Deployment的理想参数使用。

kubectl edid deployment -n namespace name --replica == 0 //指定副本数目为0 相当于删除

部署(Deployment)

deployment白叟是对k8s集群的一次更新操作。deployment可以创建一个新的服务,更新一个新的服务,也可以滚动升级一个服务(使用RS改变其副本数)。k8s未来对所有长期伺候型服务的管理都会通过Deployment来管理。

服务(service)

pod的节点上的服务随时可能停止,在另一个node启动以一个新的ip启动一个新的pod,因此难以确认服务ip和端口,客户需要访问的服务对应的就是service,每个service对应一个集群内部的有效的虚拟IP, 所以需要service 来稳定的提供服务的服务发现,来供用户找到对应的服务。k8s集群中集群内部通过虚拟IP访问服务,k8s通过kube-proxy(分布式代理服务器)实现负载均衡,每个节点上都有一个kube-proxy。需要访问的节点越多提供负载均衡的kube-proxy也就越多,解决了负载均衡的服务均衡和高可用的问题。

任务(Job)

Job是k8s用来控制批处理任务的API对象。批处理业务和长期伺候业务

后台支撑服务(DaemonSet)

后台支撑服务就是长期伺候型服务批处理服务的核心业务。

点型的后台服务包括,存储,日志和监控在每个节点上支持k8s集群运行的服务。

有状态服务(PetSet)

无状态服务体系:无状态(stateless ),牲畜(cattle),无名(nameless),可丢弃(disposable)

有状态服务体系:有状态(stateful),宠物(pet),有名(having name),不可丢弃(non-disposable)

RC和RS主要提供无状态服务,其所控制的名字是随机设置的,一个pod出故障了就被丢弃,在另一个地方重启重新设置一个新的pod,主要注意的是pod的总数。一般不挂载存储或者共享存储,每个Pod挂载自己独立的存储。

PetSet中的pod名字是事先确认的,不能更改,PetSet的名字与pod进行绑定,一般用于管理mysql,etcd,zookeeper等有状态服务。使用petset,pod任然可以通过移动到不同节点提供高可用的服务,通过外挂存储来提高可靠性,

集群联邦(Federation)

联合集群服务就是为跨Region跨服务商k8s集群服务而设计的。每个k8s Federation都有自己的分布式存储,API server 和Controller Manager,用户可以通过Federation的API Server注册该Feaderation的成员k8s Cluster。当用户通过Federation的API Server创建,更改API对象时,k8s Federatio会先在自己所有注册的子k8s Cluster都创建一份对应的API对象。在提供服务时,k8s fedaration会先在自己的子Cluster之前做负载均衡然后发送到具体的k8s cluster集群上。

存储卷(Volume)

Docker的存储卷生命周期作用范围是一个容器,k8s的生命周期作用周期和范围是一个pod,被pod中的所有容器共享。

支持类型

公有云平台存储:AWS,Google和Azure云

分布式存储:GlusterFS 和Ceph

主机本地目录:hostPath和NFS

逻辑存储:PVC

持久存储卷(Persistent Volumen,PV)和持久存储卷声明(Persistent Volume Claim,PVC)

PV和PVC使得在配置pod的逻辑里面可以忽略后台存储技术的配置。pv相当于Node的资源提供者,由管理员配置,PVC和pod是资源的使用者,由k8s集群使用者服务管理员配置

节点(Node)

所有pod运行所在的工作主机,使用运行在node节点上的容器。

密钥对象(Secret)

secret 用来保存和传递密码,密钥,认证凭证等敏感信息对象。k8s的集群配置和使用服务都不可避免的使用到了这些敏感信息实现登录,认证等功能。

例如:访问AWS存储的用户名密码。为了避免将类似的敏感信息明文写在所有需要使用的配置文件中,可以将这些信息存入一个Secret对象,而在配置文件中通过Secret对象引用这些敏感信息。这种方式的好处包括:意图明确,避免重复,减少暴漏机会。

用户账户(User Account)和服务账户(Service Account)

用户账户:提供个人账户标识(是人的身份,与namespace无关)

服务账户:为计算机进程提供k8s集群中的pod提供 账户标识(与特定的namespace相关)

名称空间(Namespace)

namespace为k8s集群提供虚拟的隔离作用,初始的时候提供了俩个default和kube-system,初次除此之外还可以创建其他的名称空间满足需要

RBAC访问控制(Role-based Access Control)

基于角色的访问控制的授权模式.

参考链接

https://www.kubernetes.org.cn/

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,470评论 6 501
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,393评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 162,577评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,176评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,189评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,155评论 1 299
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,041评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,903评论 0 274
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,319评论 1 310
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,539评论 2 332
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,703评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,417评论 5 343
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,013评论 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,664评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,818评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,711评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,601评论 2 353

推荐阅读更多精彩内容