Kubernetes
Kubernetes
木棉上的光
公众号:不止于Java
Github:https://github.com/cyxpdc?tab=repositories
邮箱:1142439493@qq.com
展开
-
《深入剖析Kubernetes》总结十一:容器启动
Kubeletkubelet负责将调度成功的 Pod在宿主机上创建出来,并把它所定义的各个容器启动起来kubelet 本身也是按照“控制器”模式来工作的,其工作原理如下:kubelet 的工作核心是一个控制循环,即:SyncLoop,还负责维护着很多很多其他的子控制循环(图中的小圆圈),这些控制循环一般被称作某某 Manager,比如 Volume Manager、Image Manager、Node Status Manager 等等;驱动SyncLoop控制循环运行的事件包括四种:Pod原创 2020-07-09 18:28:32 · 506 阅读 · 0 评论 -
《深入剖析Kubernetes》总结十:资源管理和调度
资源模型与资源管理资源模型设计CPU 和内存资源的限额要配置在每个 Container 的定义上,Pod 整体的资源配置,就由这些 Container 的配置值累加得到Kubernetes 里为 CPU 设置的单位是“CPU 的个数”,,具体“1 个 CPU”在宿主机上如何解释,是 1 个 CPU 核心,还是 1 个 vCPU,还是 1 个 CPU 的超线程(Hyperthread),完全取决于宿主机的 CPU 实现方式对于内存资源来说,它的单位就是 bytesKubernetes 里 Pod 的原创 2020-07-09 18:26:39 · 576 阅读 · 0 评论 -
《深入剖析Kubernetes》总结九:容器网络
容器网络总览Linux 容器“网络栈”实际上是被隔离 在它自己的 Network Namespace 当中的,其包括了:网卡(Network Interface)、回环设备(Loopback Device)、路由表(Routing Table)和 iptables 规则;对于一个进程来说,这些要素构成了它发起和响应网络请求的基本环境容器可以声明直接使用宿主机的网络栈,但是会引入共享网络资源的问题,比如端口冲突,所以一般希望容器进程能使用自己 Network Namespace 里的网络栈,即拥有属于自原创 2020-07-09 18:25:06 · 505 阅读 · 0 评论 -
《深入剖析Kubernetes》总结八:容器持久化存储
容器化一个应用中,对其“状态”的管理是比较麻烦的,而最常见的“状态”,则为存储状态。 所以剖析下 Kubernetes 项目处理容器持久化存 储的核心原理PV/PVC/StorageClassPV和PVC的关系PV 描述的是持久化存储数据卷;这个 API 对象主要定义的是一个持久化存储在宿主机上的目录,比如一个 NFS 的挂载目录;通常情况下,PV 对象是由运维人员事先创建在 Kubernetes 集群里待用的。PVC 描述的是 Pod 所希望使用的持久化存储的属性,比如,Volume 存储的大原创 2020-07-09 18:22:00 · 452 阅读 · 0 评论 -
《深入剖析Kubernetes》总结七:Operator
权限控制Kubernetes 中所有的 API 对象,都保存在 Etcd 里;对这些 API 对象的操作,一定都是通过访问 kube-apiserver 实现的,其中一个非常重要的原因,就是需要 APIServer 来帮助你做授权工作;在 Kubernetes 项目中,负责完成授权(Authorization)工作的机制,就是 RBAC:基于角 色的访问控制(Role-Based Access Control)。RBAC:Role:角色,它其实是一组规则,定义了一组对 Kubernetes A原创 2020-07-07 17:32:03 · 1023 阅读 · 0 评论 -
《深入剖析Kubernetes》总结六:声明式API
声明式API与编程范式想要使用Kubernetes 的 API 对象,需要编写一个对应的 YAML 文件交给 Kubernetes,而声明式API,则为kubectl apply 命令,先 kubectl create,再 replace 的操作,称为命令式配置文件操作,并不是声明式APIkubectl replace 的执行过程,是使用新的 YAML 文件中的 API 对象,替换原有的 API 对象;kubectl apply执行了一个对原有 API 对象的 PATCH 操作,类似地,kubectl原创 2020-07-07 15:31:53 · 1140 阅读 · 0 评论 -
《深入剖析Kubernetes》总结五:控制器与编排
在线任务编排控制器(Controller):操作容器,比如Deployment,是k8s第一个重要的设计思想,叫作控制器模式kube-controller-manager:一系列控制器的集合$ ls -d kubernetes/pkg/controller/deployment/ job/ podautoscaler/cloud/ disruption/ namespace/replicaset/ serviceaccount/ volume/cronjob/ garbagecollector原创 2020-07-07 10:42:55 · 695 阅读 · 0 评论 -
《深入剖析Kubernetes》总结四:Pod解析
Pod相当于Linux操作系统的进程组Pod只是一个逻辑概念,是一组共享了某些资源的容器,它的所有容器共享的是同一个 Network Namespace,并且可以声明共享同一个 Volume;为了让Pod里的多个容器是对等关系而不是拓扑关系,Pod 的实现需要使用一个中间容器,叫作 Infra 容器,在这个 Pod 中,Infra 容器永远都是第一个被创建的容器,而其他用户定义的容器,则通过 Join Network Namespace 的方式,与 Infra 容器关联在一起(否则容器之间互相join原创 2020-07-06 14:35:08 · 427 阅读 · 0 评论 -
《深入剖析Kubernetes》总结三:Kubernetes架构
Kubernetes架构一个正在运行的 Linux 容器可以被“一分为二”地看待:一组联合挂载在 /var/lib/docker/aufs/mnt 上的 rootfs,这一部分可以称为“容器镜像”(Container Image),是容器的静态视图;一个由 Namespace+Cgroups 构成的隔离环境,这一部分可以称为“容器运行时”(Container Runtime),是容器的动态视图Kubernetes关心的是“容器镜像”架构由 Master 和 Node 两种节点组成原创 2020-07-06 14:34:02 · 1728 阅读 · 0 评论 -
《深入剖析Kubernetes》总结二:学学容器基础
Linux容器实现手段:Linux Namespace 、Linux Cgroups ,基于 rootfs 的文件系统Mac容器,Windows容器实现手段:基于虚拟化技术Linux容器的实现手段容器其实是一种沙盒技术,能够像一个集装箱一样,把你的应用“装”起来,使应用与应用之间因为有了边界而不至于相互干扰;而被装进集装箱的应用,也可以被方便地搬来搬去;容器的本质:进程容器技术的核心功能,就是通过约束和修改进程的动态表现,从而为其创造出一个“边界”,Cgroups技术是用来制造约束的主要手段,N原创 2020-07-05 13:03:33 · 349 阅读 · 0 评论 -
《深入剖析Kubernetes》总结一:Docker的历史
Docker的盛行一开始流行的是PaaS平台,能够帮助用户大规模部署应用到集群里;用户把应用的可执行文件和启动脚本打进一个压缩包内,上传到云上的存储中,接着,云会通过调度器选择一个可以运行这个应用的虚拟 机,然后通知这个机器上的 Agent 把应用压缩包下载下来启动。内部调用操作系统的 Cgroups 和 Namespace 机制为每一个应用单独创建一个称作“沙盒”的隔离环境,然后在“沙盒”中启动这些应用进程,这样,就实现了把多个用户的应用互不干涉地在 虚拟机里批量地、自动地运行起来的目的。PaaS原创 2020-07-03 18:28:21 · 379 阅读 · 0 评论