kubernetes 权威指南学习第一天 简单了解k8s

1.kubernetes介绍

k8s是一个完备的分布式系统支持平台,k8s具有完备的集群管理能力,包括多层次的安全防护和准入机制、多租户应用支撑能力、透明的服务注册和服务发现机制、内建智能负载均衡器、强大的故障发现和自我修复能力、服务滚动升级能力和在线扩容能力、可扩展的资源自我调度机制,以及粒度度的资源配额管理能力。同时k8s提供了完善的管理工具。这些工具包含开发,部署测试,运维监控在内的各个环节,因此,k8s是一个全新的基于容器技术的分布式架构解决方案,并且是一个一站式完备的分布式系统开发和支撑平台。

2.简单了解k8s的基础知识

1)service服务是分布式集群架构的核心,一个service对象拥有如下关键特征:

a.拥有一个唯一的制定的名字(比如mysql-server)

b.拥有一个虚拟的IP(Cluster IP,Service IP或者是VIP)和端口号

c.能够提供某种远程服务能力

d.被映射到了提供这总服务能力的一组容器应用上

一个service通常是由多个相关服务进程来提供服务的,每个进程都有独立的(IP+port)访问点,但k8s能够通过service(虚拟Cluster+Service Port)连接指定的service上,更重要的是k8s中的service本身一旦被创建就不再变化了。我们不必为了服务IP地址的变化而头疼。

2)pod对象,为service提供的这组进程放到容器中进行隔离。是k8s最重要也是最基本的概念。

Pod组成示意图

备注:

1)每一个pod里运行着一个特殊的容器---Pause容器,其他容器都是业务容器,这些业务容器共享pause容器的网络栈和Volume(逻辑卷)挂载卷。因此他们之间的通信和数据交换更为高效。

2)k8s设计了pod对象,将每个服务进程包装到相应的pod中,使其成为pod中运行的一个容器(container),k8s为每一个pod提供一个唯一的Ip地址。一个Pod中的多个容器共享此ip地址。

3)pod运行在一个节点(node)的环境中,通常一个节点上可以运行几百个pod

4)并不是每一个pod和它里面运行的容器都能够映射到一个service上,只有那些提供服务的一组pod才会被映射到一个service上

5)Pod有两中类型:

普通的Pod:一经创建,存放在etcd中,随后被k8s master调度到某个Node并进行绑定,随后pod被对应的node上的kubelet进程实例化一组相关的Docker容器并启动。

静态的Pod:不存放在etcd存储中,存放在某个具体的Node上的具体文件中,并且只在此node中启动运行

默认情况下,当pod里的某个容器停止了,k8s会自动检测到这个问题并且重新启动这个Pod(重启Pod里的所有容器),如果Pod所在的Node宕机了,则会将这个Node上的所有Pod重新调度少其他节点上。

6)Pod可以对器能使用的服务器上的计算资源进行配额,在1.5.2版本中只能对cpu和内存进行限额,其中cpu和内存的配额都是一个绝对值。

cpu配额的单位是m,通常一个容器的cpu配额定义为100~300m,即占用0.1~0.3个cpu。

内存的单位是内存字节数。

在k8s中,一个计算资源进行配额限定需要设定一下两个参数

Requests:该资源最小申请量,系统必须满足要求

Limits:该资源最大允许使用的量,不能被突破,当试图超过这个量时,会被k8s干掉并重启。

yaml文件中配额的实例:

资源配置在yaml文件中的写法

3.label标签:建立service和pod之间的关联关系

1)k8s为mysql的pod贴上了name=mysql标签,然后给相应的service定义标签选择器(label selector)

2)mysql service 的标签选择器的选择条件是name=mysql 意为该service要作用于所有包含name=mysql标签的pod上。这样就解决了service与pod的关联关系,或者是基于集合的判断(in 和 notin)

3)label Selector在k8s中重要的使用场景:

a.kube-controller进程通过资源对象RC上定义的label Selector来筛选要监控的Pod副本的数量,从而实现Pod副本的数量始终符合预期设定的全自动控制流程

b.kube-proxy进程通过Service的label Selector来选择对应的Pod,自动建立起每个Service到对应的Pod的请求转发路由表,从而实现Servcice的智能负载均衡机制。

c.通过对某些Node定义特定的label,并且在Pod定义文件中使用NodeSelector这种标签调度策略,kube-scheduler进程可以实现Pod定向调度的特性

4.集群管理方面

a.组成:master节点和一群node节点

master节点:

1.master指的是集群控制节点,每一个k8s集群都有一个master节点来负责集群中管理和控制,所有执行命令都是master节点上运行的。通常master会占用一台服务器或者虚拟机。

2.运行着集群管理相关的一组进程:

kube-apiserver:提供HTTP Reset借口的关键服务进程,是k8s里所有资源增删改查操作的唯一入口,也是集群控制的入口进程

kube-controller-manager:所有资源对象的自动化控制中心,-------资源的大管家

kube-scheduler: 负责资源调度(pod调度)的进程,----------公司调度室

作用:

实现整个集群的资源调度,pod调度,弹性伸展,安全控制,系统监控,和纠错等管理功能,并且都是全自动完成

补充:master节点上还启动一个etcd Server进程,因为k8s里的所有的资源对象的数据全部是保存在etcd(非关系数据库)中的。

node节点:

1.node节点可以是物理机也可以是虚拟机,node节点是k8s集群中的工作负载节点,每一个node都会被master分配一些工作负载(docker 容器),当某个node宕机时,其上的工作负载会被master自动转移到其他节点上去。在node上k8s管理的最小运行单元是pod

node上运行关键进程:

kubelet:负责pod对应的容器的创建,启停等任务,同时与master节点密切协作,实现集群管理的基本功能

kube-proxy:实现kubernetes Service(kube-apiserver)的通信与负载均衡机制的重要组件

docker: docker 引擎,负责本机的容器创建和管理工作

作用:

负责pod的建立,启动,监控,重启,销毁,以及实现软件模式的负载均衡器

补充:

node节点可以在运行期间动态添加到k8s的集群中。默认情况下,kubelet会向master注册自己,一旦node被纳入集群管理范畴,kubelet会定时向master汇报自己的相关操作系统信息和有哪些pod在运行,这样master才能知道每个node的资源使用情况和实现高效均衡的资源调度策略。一旦master没有收到node上报信息,会判定该node已经不在了,会自动创建node。

5.扩容的处理

k8s集群中只需要为扩容service关联的pod创建一个Replication Controller(RC)文件

在一个RC文件中包含3个关键的信息:目标pod的定义,目标pod需要运行的副本数量(Replicas)和要监控的目标pod的标签(label)

可以动态缩放实现RC的副本数量:

kubectl  scale   rc   pod_name  --replicas=num  

RC set 的一些特征和作用:

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

推荐阅读更多精彩内容