Kubernetes
文章平均质量分 93
Kubernetes核心知识点,抓住细节,知其所以然,一步步深入学习。
df007df
帮助大家从容面对面试,弥补平时工作中因没有时间而遗忘的八股文。
提供面经突击内容,作为面试突击或补齐多年Java基本功必备。
展开
-
【Kubernets系列-13】容器运行时
而Sentry接下来,则会扮演操作系统的角色,在用户态执行用户程序,然后仅在需要的时候,才向宿主机发起Sentry自己所需要执行的系统调用。屏蔽下层容器运行时的差异。这样,容器进程能够看到的攻击面,就从整个宿主机内核变成了一个极小的、独立的、以容器为单位的内核,从而有效解决了容器进程发生。的编排概念,而不是容器运行时的概念。进程的主要职责,就是提供一个传统的操作系统内核的能力,即运行用户程序,执行系统调用。的东风,这两个相似的容器运行时项目在中立基金会的撮合下最终合并,就成了现在大家耳熟能详的。...原创 2022-07-24 21:46:11 · 215 阅读 · 0 评论 -
【Kubernets系列-12】资源模型和资源管理
Kubernetes为用户提供的基础设施能力,不仅包括了前面介绍的应用定义和描述的部分,还包括了对应用的资源管理和调度的处理。原创 2022-07-21 22:42:20 · 313 阅读 · 0 评论 -
【Kubernets系列-11】Service 与 DNS、Ingress
但是,当你访问这条A记录的时候,它返回的是所有被代理的Pod的IP地址的集合。这时候,你可以指定一个。机制的工作原理之后,很多与Service相关的问题,其实都可以通过分析Service在宿主机上对应的。,一方面是因为Pod的IP不是固定的,另一方面则是因为一组Pod实例之间总会有负载均衡的需求。并且,这个Service的80端口,代理的是Pod的9376端口。规则的匹配是从上到下逐条进行的,所以为了保证上述三条规则每条被选中的概率都相同,我们应该将它们的。...原创 2022-07-17 23:12:19 · 717 阅读 · 0 评论 -
【Kubernets系列-10】容器网络基础
网桥的工作方式,你就可以理解,在默认情况下,被限制在NetworkNamespace里的容器进程,实际上是通过VethPair设备+宿主机网桥的方式,实现了跟同其他容器的数据交换。可以看到,构建这种容器网络的核心在于我们需要在已有的宿主机网络上,再通过软件构建一个覆盖在已有宿主机网络之上的、可以把所有容器连通在一起的虚拟网络。)是0.0.0.0,这就意味着这是一条直连规则,即凡是匹配到这条规则的IP包,应该经过本机的eth0网卡,通过二层网络直接发往目的主机。......原创 2022-07-14 01:28:13 · 210 阅读 · 0 评论 -
【Kubernets系列-9】持久化存储原理 - PV,PVC,StorageClass
描述的,是持久化存储数据卷。这个 API 对象主要定义的是一个持久化存储在宿主机上的目录,比如一个 NFS 的挂载目录。通常情况下,PV 对象是由运维人员事先创建在 Kubernetes 集群里待用的。比如,运维人员可以定义这样一个 NFS 类型的 PV,如下所示:PVC而 描述的,则是 所希望使用的持久化存储的属性。比如, 存储的大小、可读写权限等等。 对象通常由开发人员创建;或者以 PVC 模板的方式成为 的一部分,然后由 StatefulSet 控制器负责创建带编号的 PVC。比如,开发人员原创 2022-07-10 21:17:47 · 413 阅读 · 0 评论 -
【Kubernets系列-8】声明式API
我们来探讨下,当我把一个 YAML 文件提交给 Kubernetes 之后,它究竟是如何创建出一个 API 对象的呢。通过这样的结构,整个 Kubernetes 里的所有 API 对象,实际上就可以用如下的树形结构表示出来:比如,现在我要声明要创建一个 CronJob 对象,那么我的 YAML 文件的开始部分会这么写:在这个 YAML 文件中,“CronJob”就是这个 API 对象的资源类型(Resource),“batch”就是它的组(Group),v2alpha1 就是它的版本(Version)。当原创 2022-07-10 16:54:02 · 256 阅读 · 0 评论 -
【Kubernets系列-7】离线任务 - Job与CronJob
在前面的几篇文章中,我和你详细分享了 Deployment、StatefulSet,以及 DaemonSet 这三个编排概念。实际上,它们主要编排的对象,都是“在线业务”,即:Long Running Task(长作业)。比如,我在前面举例时常用的 Nginx、Tomcat,以及 MySQL 等等。这些应用一旦运行起来,除非出错或者停止,它的容器进程会一直保持在 Running 状态。有一类作业显然不满足这样的条件,这就是“离线业务”,或者叫作 Batch Job(计算业务)。这种业务在计算完成后就直接退出原创 2022-07-10 00:33:20 · 396 阅读 · 0 评论 -
【Kubernets系列-6】容器化守护进程 - DaemonSet
顾名思义,DaemonSet 的主要作用,是让你在 Kubernetes 集群里,运行一个 Daemon Pod。 所以,这个 Pod 有如下三个特征:1,这个 Pod 运行在 Kubernetes 集群里的每一个节点(Node)上;2,每个节点上只有一个这样的 Pod 实例;3,当有新的节点加入 Kubernetes 集群后,该 Pod 会自动地在新节点上被创建出来;而当旧节点被删除后,它上面的 Pod 也相应地会被回收掉。这个机制听起来很简单,但 Daemon Pod 的意义确实是非常重要的。我随便给你原创 2022-07-09 23:20:11 · 209 阅读 · 0 评论 -
【Kubernets系列-5】容器控制器 - Deployment
Pod 这个看似复杂的 API 对象,实际上就是对容器的进一步抽象和封装而已。所以,Pod 对象,其实就是容器的升级版。它对容器进行了组合,添加了更多的属性和字段。这使得 Kubernetes ,可以更轻松地操作它们。现在,我们一起来回顾一下这个名叫 nginx-deployment 的例子:这个 Deployment 定义的编排动作非常简单,即:确保携带了 app=nginx 标签的 Pod 的个数,永远等于 spec.replicas 指定的个数,即 2 个。这就意味着,如果在这个集群中,携带 app原创 2022-07-03 19:58:01 · 189 阅读 · 0 评论 -
【Kubernets系列-4】Pod对象使用
Pod 是 Kubernetes 项目中的最小编排单位。将这个设计落实到 API 对象上,容器(Container)就成了 Pod 属性里的一个普通的字段。那么,到底哪些属性属于 Pod 对象,而又有哪些属性属于 Container 呢?我们分别来看。比如,凡是调度、网络、存储,以及安全相关的属性,基本上是 Pod 级别的。这些属性的共同特征是,它们描述的是“机器”这个整体,而不是里面运行的“程序”。比如,配置这个“机器”的网卡(即:Pod 的网络定义),配置这个“机器”的磁盘(即:Pod 的存储定义),配原创 2022-07-03 15:36:51 · 469 阅读 · 0 评论 -
【Kubernets系列-3】Pod的思考与设计
我们知道在 Kubernetes 里部署一个应用的过程中,,是 Kubernetes 项目中最小的 API 对象。如果换一个更专业的说法,我们可以这样描述:,是 Kubernetes 项目的原子调度单位。在K8S出来之后 为什么会出现POD这个概念;而如果事先没有“组”的概念,像这样的运维关系就会非常难以处理。这里我们举个例子:我们登录到一台 Linux 机器里,执行一条如下所示的命令:这条命令的作用,是展示当前系统中正在运行的进程的树状结构。它的返回结果如下所示:不难发现,在一个真正的操作系统里,进程原创 2022-07-03 13:41:34 · 136 阅读 · 0 评论 -
【Kubernets系列-2】Kubernetes的本质
通过之前的文章我们可以看出,一个正在运行的 Linux 容器,其实可以看成两部分:作为一名开发者,我并不关心容器运行时的差异。因为,在整个“开发 - 测试 - 发布”的流程中,真正承载着容器信息进行传递的,是容器镜像,而不是容器运行时。所以“容器运行”或“容器编排”这个“上层建筑”必然是日后容器生态中举足轻重的位置。从一个开发者和单一的容器镜像,到无数开发者和庞大的容器集群,容器技术实现了从“容器”到“容器云”的飞跃,标志着它真正得到了市场和生态的认可。这其中,最具代表性的容器编排工具,当属 Docker原创 2022-07-03 01:00:12 · 97 阅读 · 0 评论 -
【Kubernets系列-1】”容器“的实现技术
容器其实是一种沙盒技术。顾名思义,沙盒就是能够像一个集装箱一样,把你的应用“装”起来的技术。这样,应用与应用之间,就因为有了;而被装进集装箱的应用,也可以被方便地搬来搬去,这就是 PaaS 最理想的状态。所以技术上如何实现“边界”就是关键的原因对于 Docker 等大多数 Linux 容器来说, 技术是用来制造约束的主要手段,而 技术则是用来修改进程视图的主要方法。进入容器执行ps 可以看到可以看到,我们在 Docker 里最开始执行的 /bin/sh,就是这个容器内部的第 1 号进程(PID=1)原创 2022-07-02 19:23:19 · 260 阅读 · 0 评论 -
【Kubernets系列-0】Docker与Kubernetes介绍
##介绍本文从 Docker 公司的发展阶段进行简单总结。2013 年的后端技术领域,已 CLoud Foundry 为代表的 Paas 项目正在大力发展。当时名字还叫 dotCloud 的Docker公司,开源了自己的容器项目 Docker。当时的Pass只是做到的底层机器资源的分配能力,但是上层的实际可运行的各种类型的应用部署发布的功能(打包和分发)并不是他们的主要发展点。虽然当时 Cloud Foundry 定义了一种打包方式,并通过 和 技术为单个应用创建一个叫作 “沙盒”的隔离环境,也就是所谓原创 2022-07-02 13:42:37 · 264 阅读 · 0 评论