深入剖析Kubernetes 学习笔记

本文详细解析了Kubernetes(K8s)的关键组件,包括Namespace的隔离作用、Cgroups的资源限制机制、chroot命令及rootfs的概念,阐述了K8s的架构设计,如Deployment、Service、Secret、Job、DaemonSet和CronJob等功能,以及其声明式API的核心理念。

深入理解K8s

 

  • Namespace的作用是”隔离“

 

  • Mount Namespace:用于让被隔离进程只看到当前Namespace里的挂载点信息。

 

  • Network Namespace:用于让被隔离进程看到当前Namespace里的网络设备和配置。

 

  • Cgroups的作用是“限制”(围墙)

 

  • Cgroups的子系统:
  1. blkio:为块设备设定I/O限制,一般用于磁盘等设备;
  2. cpuset:为进程分配单独的CPU核和对应的内存节点;
  3. memory:为进程设定内存使用的限制。

 

  • chroot命令(“change root file system”)改变进程的根目录到指定位置。

 

  • rootfs:根文件系统,挂载在容器根目录上、用来为容器进程提供隔离后执行环境的文件系统,就是所谓的“容器镜像”(包括操作系统所包含的文件、配置和目录,并不包括操作系统内核)

 

  • rootf由三部分组成:只读层(ro+wh)、Init层(ro+wh)、可读写层(rw)
  1. 第一部分,只读层:这个容器rootfs最下面的五层,对应ubuntu:latest镜像的五层,只读(ro+wh:readonly+whiteout)
  2. 第二部分,可读写层:容器最上面的一层,rw(read write)。在没有写入文件之前,这个目录是空的,一旦在容器里做了写操作,修改产生的内容就会以增量方式出现在这个层中。

删除只读层里的文件:AuFS会在可读写层创建一个whiteout文件,把只读层里的文件“遮挡”起来。

whiteout:“白障”

可读写层的作用,就是存放修改后rootfs后产生的增量。

  1. 第三部分,Init层:一个以"-init"结尾的层,夹在只读层和读写层之间。Init层是Docker项目单独生成的一个内部层,专门用来存放/etc/hosts、/etc/resolv.conf等信息。

这些文件本来属于只读的Ubuntu镜像的一部分,但是启动容器时需要写入一些指定值比如hostname,需要在可读写层对它们进行修改。这些修改只对当前容器有效,不希望执行docker commit时一起同可读写层提交掉。

Docker做法是,修改这些文件后,以一个单独的层挂载出来(Init层),提交的时候不包含这些内容。

K8s架构

 

 

 

 

  • Deployment:Pod的多实例管理器
  • Service服务:作为Pod的代理入口,从而代替Pod对外暴露一个固定的网络地址(因为Pod的地址等信息不是固定的,Web应用通过代理入口找到Pod)
  • Secret:是一个保存在Etcd里的键值对数据。把Credential(数据库的用户名和密码)信息以Secret方式存在Etcd里,K8s就会在你指定的Pod(如:Web应用的Pod)启动时,自动把Secret里的数据一Volume的方式挂载到容器里。这样Web应用就可以访问数据库了。
  • Job:用来描述一次性运行的Pod(如:大数据任务)
  • DaemonSet:用来描述每个宿主机上必须且只能运行一个副本的守护进程服务。
  • CronJob:用于描述定时任务。

K8s核心设计理念:

  • 首先,通过一个“编排对象”,比如 Pod、Job、CronJob 等,来描述你试图管理的应用;
  • 然后,再为它定义一些“服务对象”,比如 Service、Secret、Horizontal Pod Autoscaler(自

动水平扩展器)等。这些对象,会负责具体的平台级功能。

这种使用方法,就是所谓的“声明式 API”。这种 API 对应的“编排对象”和“服务对象”,都是

Kubernetes 项目中的 API 对象(API Object)。

 

Kubernetes指南-倪朋飞.pptx 1-唐继元Kubernetes Master High Availability 高级实践.pdf 2、刘淼-基于 DevOps、微服务及k8s的高可用架构探索与实现.pdf ArchSummit北京2016-《网易蜂巢基于万节点Kubernets支撑大规模云应用实践》-刘超.pdf Azure Service Broker_cn - Rita Zhang.pdf google/ HPE李志霄 Kubernetes企业级容器云:加速数字创新-20170407.pdf IBM马达:Kubernetes 中基于策略的资源分配.pdf k8s资料.rar Kubernetes Cookbook-Packt Publishing(2016).pdf Kubernetes Microservices with Docker-Apress2016.pdf Kubernetes on Azure - Gabe Monroy.pdf Kubernetes1.6集群部署完全指南——二进制文件部署开启TLS基于CentOS7.pdf Kubernetes1-4版本新增加功能介绍.pdf Kubernetes监控与日志.pdf kubernetes容器云平台实践-李志伟v1.0.pdf Kubernetes生态系统现状报告.pdf Kubernetes下API网关的微服务实践 长虹集团-李玮演讲PPT.pdf Kubernetes与EcOS的碰撞结合 成都精灵云-张行才演讲PPT.pdf Kubernetes与OpenStack融合支撑企业级微服务架构.pdf Kubernetes在华为全球IT系统中的实践.pdf Kubernetes在企业中的场景运用及管理实践.pdf Kubernetes指南-倪朋飞.pdf Kubernetes指南-倪朋飞.pptx l.txt Lessons+learned+and+challenges+faced+while+running+Kubernetes+at+scale.pdf rkt与Kubernetes的深度融合.pdf rkt与Kubernetes的深度融合.pptx SACC2017FabricOnKubernetesChinese.pdf ThoughtWorks林帆-白话Kubernetes网络.pdf 百度云PaddlePaddle on kubernetes-周倜.pdf 从Borg到Kubernetes-PaaS产品设计-华为-钟成.pdf 改造Kuberntetes打造SAE容器云.pdf 跟谁学-基于容器的持续集成平台建设.pdf 谷歌深度学习在Kubernetes上的实践.pptx 惠普基于Kubernetes的容器私有云平台实践.pdf 基于Kubernetes的模板化应用编排.pdf 基于kubernetes的容器云平台设计与实践-邓德源.pdf 基于Kubernetes的私有容器云建设实践-易宝支付.pdf 基于Kubernetes构建AI业务生态.pdf 李波:小米生态云应用引擎实践.pdf 魅族容器云平台基于 k8s 的自动化运维实践-曾彬.pdf 欧昌华-基于 Nginx 的负载均衡器在 K8S 中的实践.pdf 彭超:瓜子云的落地.pdf 如何落地TensorFlow on Kubernetes.pdf 如何用OpenStack和Kubernetes快速搭建一个容器和虚拟机组合服务的云平台.pptx 孙杰:大型企业云平台架构演进的实践之路.pdf 微服务道与术-敖小剑.pdf 微软Azure云助力微服务-赵文婧.pdf 颜卫-腾讯云容器服务基于kubernetes的应用编排实践-final-v1.0.pptx 有容云邓绍军-Kubernetes落地实践.pptx 折800如何用Docker&Kubernetes;构建自动化测环境.pdf
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值