上一章节介绍的HostPath是一种持久化存储,但是HostPath的内容是存储在节点上,导致只适合读取。如果要求Pod重新调度后仍然能使用之前读写过的数据,就只能使用网络存储了,网络存储种类非常多且有不同的使用方法,通常一个云服务提供商至少有块存储、文件存储、对象存储三种,如华为云的EVS、SFS和OBS。Kubernetes解决这个问题的方式是抽象了PV(PersistentVolume)和P
分类:
其他好文 时间:
2020-11-27 11:49:11
阅读次数:
25
什么是PodPod是Kubernetes创建或部署的最小单位。一个Pod封装一个或多个容器(container)、存储资源(volume)、一个独立的网络IP以及管理控制容器运行方式的策略选项。Pod使用主要分为两种方式:Pod中运行一个容器。这是Kubernetes最常见的用法,您可以将Pod视为单个封装的容器,但是Kubernetes是直接管理Pod而不是容器。Pod中运行多个需要耦合在一起工
分类:
Web程序 时间:
2020-11-27 11:21:26
阅读次数:
10
存活探针Kubernetes提供了自愈的能力,具体就是能感知到容器崩溃,然后能够重启这个容器。但是有时候例如Java程序内存泄漏了,程序无法正常工作,但是JVM进程却是一直运行的,对于这种应用本身业务出了问题的情况,Kubernetes提供了LivenessProbe机制,通过检测容器响应是否正常来决定是否重启,这是一种很好的健康检查机制。毫无疑问,每个Pod最好都定义LivenessProbe,
分类:
其他好文 时间:
2020-11-27 11:21:10
阅读次数:
9
为什么需要Label当资源变得非常多的时候,如何分类管理就非常重要了,Kubernetes提供了一种机制来为资源分类,那就是Label(标签)。Label非常简单,但是却很强大,Kubernetes中几乎所有资源都可以用Label来组织。Label的具体形式是key-value的标记对,可以在创建资源的时候设置,也可以在后期添加和修改。以Pod为例,当Pod变得多起来后,就显得杂乱且难以管理,如下
分类:
其他好文 时间:
2020-11-27 11:20:55
阅读次数:
8
为什么需要StatefulSet在Deployment中讲到了Deployment,Deployment控制器下的Pod都有个共同特点,那就是每个Pod除了名称和IP地址不同,其余完全相同。需要的时候,Deployment可以通过Pod模板创建新的Pod;不需要的时候,Deployment就可以删除任意一个Pod。但是在某些场景下,这并不满足需求,比如有些分布式的场景,要求每个Pod都有自己单独的
分类:
其他好文 时间:
2020-11-27 11:20:16
阅读次数:
8
Job和CronJob是负责批量处理短暂的一次性任务(shortlivedone-offtasks),即仅执行一次的任务,它保证批处理任务的一个或多个Pod成功结束。Job:是Kubernetes用来控制批处理型任务的资源对象。批处理业务与长期伺服业务(Deployment、Statefulset)的主要区别是批处理业务的运行有头有尾,而长期伺服业务在用户不停止的情况下永远运行。Job管理的Pod
分类:
其他好文 时间:
2020-11-27 11:19:56
阅读次数:
8
DaemonSet是这样一种对象(守护进程),它在集群的每个节点上运行一个Pod,且保证只有一个Pod,这非常适合一些系统层面的应用,例如日志收集、资源监控等,这类应用需要每个节点都运行,且不需要太多实例,一个比较好的例子就是Kubernetes的kube-proxy。DaemonSet跟节点相关,如果节点异常,也不会在其他节点重新创建。图1DaemonSet下面是一个DaemonSet的示例。a
分类:
系统相关 时间:
2020-11-27 11:19:41
阅读次数:
15
在DaemonSet中讲到使用nodeSelector选择Pod要部署的节点,其实Kubernetes还支持更精细、更灵活的调度机制,那就是亲和(affinity)与反亲和(anti-affinity)调度。Kubernetes支持节点和Pod两个层级的亲和与反亲和。通过配置亲和与反亲和规则,可以允许您指定硬性限制或者偏好,例如将前台Pod和后台Pod部署在一起、某类应用部署到某些特定的节点、不同
分类:
其他好文 时间:
2020-11-27 11:19:21
阅读次数:
8
StorageClass&PV&PVC关系图Volumes是最基础的存储抽象,其支持多种类型,包括本地存储、NFS、FC以及众多的云存储,我们也可以编写自己的存储插件来支持特定的存储系统。Volume可以被Pod直接使用,也可以被PV使用。普通的Volume和Pod之间是一种静态的绑定关系,在定义Pod的同时,通过volume属性来定义存储的类型,通过volumeMount来定义容
分类:
Web程序 时间:
2020-11-23 12:30:15
阅读次数:
10
kube-system:是 namespace 名称 1、查看命名空间 kubectl get all -n kube-system 2、删除deployment(先删除deployment,删除后replicaset.apps 和 pod 自动就被删除了) kubectl delete deplo ...
分类:
其他好文 时间:
2020-11-21 11:45:05
阅读次数:
4