我有一个init容器,它做一些需要主容器正确运行的事情,比如创建一些目录和如果删除其中一个目录可能会失败的活动探测。当吊舱由于活性探测失败而重新启动时,我预计init容器也会重新启动,但不会。
这就是kubernetes文档对此的看法:
If the Pod restarts, or is restarted, all init containers must execute again.
证明这种行为的最简单的方法是使用k8s文档中的pod示例,添加一个总是失败的活性探测,并期望init容器重新启动,但同样,它的行为并不像预期的那样。
下面是我正在使用的示例:
apiVersion: v1
当我尝试使用docker官方镜像来创建任何pod\deployment时,我总是看到Back-off restarting failed container。当我切换到像nginx这样的其他图像时,一切都运行良好。
如何调试和修复此问题?
以下是使用kubectl创建实例后的事件日志。
root@ip-10-229-68-221:~# kubectl get event --watch
LAST SEEN TYPE REASON OBJECT MESSAGE
24s Normal
我正在尝试理解k8s中的内存请求。我观察到,当我为pod设置内存请求(例如,nginx,等于1Gi )时,它实际上只消耗了1Mi (我用kubectl top pods检查了它)。我的问题。我在节点上有2GiRAM,并将pod1和pod2的内存请求设置为1.5Gi,但它们实际上只消耗了1Mi内存。我启动了pod1,应该启动它,因为节点有2Gi内存,pod1请求只有1.5Gi。但是,如果我尝试在那之后启动pod2,会发生什么呢?会开始吗?我不确定,因为pod1只消耗了1Mi内存,但是有1.5Gi的请求。pod1的内存请求对pod2的执行有影响吗?k8s将如何控制这种情况?
在Kubernetes水平吊舱自动标度中,它们的配置是否为在向上/向下扩展之前指定要运行或创建的吊舱的最小延迟?
例如,如下所示:
# I am looking for a flag like this
--horizontal-pod-autoscale-initial-upscale-delay=5m0s
# Similar to these existing flags
--horizontal-pod-autoscaler-downscale-delay=2m0s
--horizontal-pod-autoscaler-upscale-delay=2m0s
其结果是:
等5分钟后