kubernetes
k8s docker cloud native;
图文并茂请移步:
https://github.com/Zeb-D/my-review/tree/master/kubernetes
Zeb-D
最新动态分享到公众号(架构师那些事儿)
展开
-
kubernetes--核心概念介绍
本文章来源于:https://github.com/Zeb-D/my-review ,请star 强力支持,你的支持,就是我的动力。[TOC]云计算、容器化以及容器编排是 DevOps 中最重要的发展趋势,无论你是数据科学家、软件开发者还是产品经理,了解 Docker 和 Kubernetes 的基本概念总是有好处的,二者可以帮助你与他人协作、部署应用并提升你对雇主的价值。本文将会覆盖到一...原创 2020-07-15 06:39:27 · 13532 阅读 · 0 评论 -
00-怎么实现容器技术的提问
本文章来源于:https://github.com/Zeb-D/my-review ,请star 强力支持,你的支持,就是我的动力。[TOC]我与容器打交道的这些年,一直在与关注容器生态的工程师们交流,并经常探讨容器在落地过程中遇到的问题。从这些交流中,我发现总有很多相似的问题被反复提及,比如:为什么容器里只能跑“一个进程”?为什么我原先一直在用的某个 JVM 参数,在容器里就不好使...原创 2020-06-14 15:42:15 · 13267 阅读 · 0 评论 -
01-容器兴起的缘由
就在对开源 PaaS 项目落地的不断尝试中,这个领域的从业者们发现了 PaaS 中最为棘手也最亟待解决的一个问题:究竟如何给应用打包?遗憾的是,无论是 Cloud Foundry、OpenShift,还是 Clodify,面对这个问题都没能给出一个完美的答案,反而在竞争中走向了碎片化的歧途。而就在这时,一个并不引人瞩目的 PaaS 创业公司 dotCloud,却选择了开源自家的一个容器项目 Do...原创 2020-06-14 15:42:15 · 13491 阅读 · 0 评论 -
02-容器的基础
[toc]容器本身没有价值,有价值的是“容器编排”。进程容器其实是一种沙盒技术。顾名思义,沙盒就是能够像一个集装箱一样,把你的应用“装”起来的技术。这样,应用与应用之间,就因为有了边界而不至于相互干扰;而被装进集装箱的应用,也可以被方便地搬来搬去,这不就是 PaaS 最理想的状态嘛。不过,这两个能力说起来简单,但要用技术手段去实现它们,可能大多数人就无从下手了。由于计算机只认识 0...原创 2020-06-14 15:42:15 · 13610 阅读 · 0 评论 -
03-kubernetes的本质
一个“容器”,实际上是一个由 Linux Namespace、Linux Cgroups 和 rootfs 三种技术构建出来的进程的隔离环境。从这个结构中我们不难看出,一个正在运行的 Linux 容器,其实可以被“一分为二”地看待:一组联合挂载在 /var/lib/docker/aufs/mnt 上的 rootfs,这一部分我们称为“容器镜像”(Container Image),是容器的静态视...原创 2020-06-14 15:42:15 · 13452 阅读 · 0 评论 -
04-kubernetes搭建
[toc]kubeadm 一键部署在理解了容器技术之后,为什么不用容器部署 Kubernetes 呢?这样,我只要给每个 Kubernetes 组件做一个容器镜像,然后在每台宿主机上用 docker run 指令启动这些组件容器,部署不就完成了吗?事实上,在 Kubernetes 早期的部署脚本里,确实有一个脚本就是用 Docker 部署 Kubernetes 项目的,这个脚本相比于 S...原创 2020-07-15 06:39:27 · 13537 阅读 · 0 评论 -
05-深入解析pod
[toc]Pod的由来在学习和使用 Kubernetes 项目的过程中,已经不止一次地想要问这样一个问题:为什么我们会需要 Pod?“Namespace 做隔离,Cgroups 做限制,rootfs 做文件系统”这样的“三句箴言”可以朗朗上口了,为什么 Kubernetes 项目又突然搞出一个 Pod 来呢?容器的本质到底是什么?容器的本质是进程。容器,就是未来云计算系统中的进程;容器...原创 2020-07-15 06:39:27 · 13546 阅读 · 0 评论 -
06-kuberneter控制器模式
[toc]编排概念Pod 这个看似复杂的 API 对象,实际上就是对容器的进一步抽象和封装而已。说得更形象些,“容器”镜像虽然好用,但是容器这样一个“沙盒”的概念,对于描述应用来说,还是太过简单了。这就好比,集装箱固然好用,但是如果它四面都光秃秃的,吊车还怎么把这个集装箱吊起来并摆放好呢?所以,Pod 对象,其实就是容器的升级版。它对容器进行了组合,添加了更多的属性和字段。这就好比给集装...原创 2020-07-15 06:39:27 · 13599 阅读 · 0 评论 -
07-深入理解StatefulSet
[toc]背景Deployment 实际上并不足以覆盖所有的应用编排问题。造成这个问题的根本原因,在于 Deployment 对应用做了一个简单化假设。它认为,一个应用的所有 Pod,是完全一样的。所以,它们互相之间没有顺序,也无所谓运行在哪台宿主机上。需要的时候,Deployment 就可以通过 Pod 模板创建新的 Pod;不需要的时候,Deployment 就可以“杀掉”任意一个 ...原创 2020-07-15 06:39:27 · 13650 阅读 · 0 评论 -
08-DaemonSet
[toc]StatefulSet 其实就是对现有典型运维业务的容器化抽象。也就是说,你一定有方法在不使用 Kubernetes、甚至不使用容器的情况下,自己 DIY 一个类似的方案出来。但是,一旦涉及到升级、版本管理等更工程化的能力,Kubernetes 的好处,才会更加凸现。比如,如何对 StatefulSet 进行“滚动更新”(rolling update)?很简单。你只要修改 Sta...原创 2020-07-15 06:39:27 · 13520 阅读 · 0 评论 -
09-Job与CronJob
[toc]Deployment、StatefulSet,以及 DaemonSet 这三个编排概念。你有没有发现它们的共同之处呢?实际上,它们主要编排的对象,都是“在线业务”,即:Long Running Task(长作业)。比如,我在前面举例时常用的 Nginx、Tomcat,以及 MySQL 等等。这些应用一旦运行起来,除非出错或者停止,它的容器进程会一直保持在 Running 状态。但...原创 2020-07-15 06:39:27 · 13515 阅读 · 0 评论 -
10-声明式API
[toc]命令式命令行操作很多 Kubernetes 的 API 对象,有的是用来描述应用,有的则是为应用提供各种各样的服务。但是,无一例外地,为了使用这些 API 对象提供的能力,你都需要编写一个对应的 YAML 文件交给 Kubernetes。这个 YAML 文件,正是 Kubernetes 声明式 API 所必须具备的一个要素。不过,是不是只要用 YAML 文件代替了命令行操作,就是...原创 2020-07-15 06:39:27 · 14704 阅读 · 2 评论 -
11-RBAC基于角色的权限控制
[toc]控制器模式看起来好像也不难嘛,我能不能自己写一个编排对象呢?答案当然是可以的。而且,这才是 Kubernetes 项目最具吸引力的地方。在互联网级别的大规模集群里,Kubernetes 内置的编排对象,很难做到完全满足所有需求。所以,很多实际的容器化工作,都会要求你设计一个自己的编排对象,实现自己的控制器模式。而在 Kubernetes 项目里,我们可以基于插件机制来完成这些工...原创 2020-07-15 06:39:27 · 13453 阅读 · 2 评论 -
12-Operator工作原理
[toc]Kubernetes 项目中的大部分编排对象(比如 Deployment、StatefulSet、DaemonSet,以及 Job),“有状态应用”的管理方法, Kubernetes 添加自定义 API 对象和编写自定义控制器。可能你已经感觉到,在 Kubernetes 中,管理“有状态应用”是一个比较复杂的过程,尤其是编写 Pod 模板的时候,总有一种“在 YAML 文件里编程序...原创 2020-07-15 06:39:27 · 13931 阅读 · 0 评论 -
13-PV与PVC
本文章来源于:https://github.com/Zeb-D/my-review ,请star 强力支持,你的支持,就是我的动力。[toc]容器化一个应用比较麻烦的地方,莫过于对其“状态”的管理。而最常见的“状态”,又莫过于存储状态了。Kubernetes 项目处理容器持久化存储的核心原理StatefulSet 管理存储状态的文章,里面有说到过的Persistent Volume(PV...原创 2020-07-15 06:39:27 · 13490 阅读 · 0 评论