目录
46.k8s中镜像的下载策略是什么?
47.image的状态有哪些?
48.如何控制滚动更新过程?
49.DaemonSet资源对象的特性?
50.说说你对Job这种资源对象的了解?
46.k8s中镜像的下载策略是什么?
可通过命令kubectl explain pod.spec.containers来查看imagePullPlicy这行的解释。
k8s的镜像下载策略有三种:Always,Never,IINotPresent;
Always:镜像标签为latest时,总是从指定的仓库中获取镜像;
Never:禁止从仓库中下载镜像,也就是说只能使用本地镜像;
ifNotPresent:仅当本地没有对应镜像时,才行目标仓库中下载。
默认的镜像下载策略是:当镜像标签是latest时,默认策略是Always;当镜像标签是自定义时(也就是标签不是latest,那么默认策略是ifNotPresent.
47.image的状态有哪些?
Running:Pod所需的容器已经被成功调度到某个节点,且已经成功运行
Pending:APIserver创建了pod资源对象,并且已经存入etcd中,但他尚未被调度完成或者仍然处于仓库中下载镜像的过程。
Unknown:APIserver无法正常获取到pod对象的状态,通常是其无法与所在工作节点的kubelet通信所致。
48.如何控制滚动更新过程?
可以通过下面的命令查看到更新时可以控制的参数:
maxSurge:此参数控制滚动更新过程,副本总数超过预期pod数量的上限。可以是百分比,也可以是具体的值。默认为1.(上述参数的作用就是在更新过程中,值若为3,那么不管三七二十一,先运行三个pod,用于替换旧的pod,以此类推)
maxUnavaliable:此参数控制滚动更新过程中,不可用的Pod的数量。(这个值和上面的值没有任何关系,举个例子:我有十个pod,但是在更新的过程中,我允许这十个pod中最多有三个不可用,那么就将这个参数的值设置为3,在更新的过程中,只要不可用的pod数量小于或者等于3,那么更新过程就不会停止)。
49.DaemonSet资源对象的特性?
DaemonSet这种资源对象会在每个k8s集群中的节点上运行,并且每个节点只能运行一个pod,这是他和deployment资源对象的最大也是唯一的区别。所以,在其yaml文件中,不支持定义replicas,除此之外,与Deployment,RS等资源对象的写法相同。
他的一般使用场景如下:
1.在去做每个节点的日志收集工作;
2.监控每个节点的运行状态;
50.说说你对Job这种资源对象的了解?
Job与其他服务类容器不同,Job是一种工作类容器(一般用于做一次性任务)。使用常见不多,可以忽略这个问题。