Kubernetes 快速重启吊舱
我最近一直在试验kubernetes,我一直在尝试在pods中测试故障切换,方法是使用一个复制控制器,其中的容器在使用后立即崩溃(从而导致重新启动) 我已将bashttpd项目改编为: (在中,我将其设置为服务于容器的主机名,然后退出) 这很好,除了重启速度远远慢于我正在尝试做的事情,因为它适用于前几个请求,然后停止一段时间,然后在重启POD时再次开始工作。(理想情况下,我希望在访问服务时不出现任何中断) 我认为(但不确定)这里提到的备份延迟是罪魁祸首: 一些输出:Kubernetes 快速重启吊舱,kubernetes,Kubernetes,我最近一直在试验kubernetes,我一直在尝试在pods中测试故障切换,方法是使用一个复制控制器,其中的容器在使用后立即崩溃(从而导致重新启动) 我已将bashttpd项目改编为: (在中,我将其设置为服务于容器的主机名,然后退出) 这很好,除了重启速度远远慢于我正在尝试做的事情,因为它适用于前几个请求,然后停止一段时间,然后在重启POD时再次开始工作。(理想情况下,我希望在访问服务时不出现任何中断) 我认为(但不确定)这里提到的备份延迟是罪魁祸首: 一些输出: #] kubectl g
#] kubectl get pods
NAME READY STATUS RESTARTS AGE
chronojam-blog-a23ak 1/1 Running 0 6h
chronojam-blog-abhh7 1/1 Running 0 6h
chronojam-serve-once-1cwmb 1/1 Running 7 4h
chronojam-serve-once-46jck 1/1 Running 7 4h
chronojam-serve-once-j8uyc 1/1 Running 3 4h
chronojam-serve-once-r8pi4 1/1 Running 7 4h
chronojam-serve-once-xhbkd 1/1 Running 4 4h
chronojam-serve-once-yb9hc 1/1 Running 7 4h
chronojam-tactics-is1go 1/1 Running 0 5h
chronojam-tactics-tqm8c 1/1 Running 0 5h
#] curl http://serve-once.chronojam.co.uk
<h3> chronojam-serve-once-j8uyc </h3>
#] curl http://serve-once.chronojam.co.uk
<h3> chronojam-serve-once-r8pi4 </h3>
#] curl http://serve-once.chronojam.co.uk
<h3> chronojam-serve-once-yb9hc </h3>
#] curl http://serve-once.chronojam.co.uk
<h3> chronojam-serve-once-46jck </h3>
#] curl http://serve-once.chronojam.co.uk
#] curl http://serve-once.chronojam.co.uk
kubectl获得豆荚
名称就绪状态重新启动
chronojam-blog-a23ak 1/1运行0 6小时
chronojam-blog-abhh7 1/1运行0 6小时
chronojam-serve-once-1cwmb 1/1运行7小时4小时
chronojam-serve-once-46jck 1/1运行7小时
chronojam-serve-once-j8uyc 1/1运行3 4小时
chronojam-serve-once-r8pi4 1/1运行7小时
chronojam服务一次xhbkd 1/1运行4小时
chronojam-serve-once-yb9hc 1/1运行7小时
chronojam-tactics-is1go 1/1运行0.5小时
chronojam-tactics-tqm8c 1/1运行0.5小时
#]卷曲http://serve-once.chronojam.co.uk
chronojam-serve-once-j8uyc
#]卷曲http://serve-once.chronojam.co.uk
chronojam-serve-once-r8pi4
#]卷曲http://serve-once.chronojam.co.uk
chronojam-serve-once-yb9hc
#]卷曲http://serve-once.chronojam.co.uk
chronojam-serve-once-46jck
#]卷曲http://serve-once.chronojam.co.uk
#]卷曲http://serve-once.chronojam.co.uk
您还将注意到,尽管那里应该有2个仍然健康的豆荚,但它在第4个豆荚之后停止返回
所以我的问题有两个:
(一)
我可以调整退避延迟吗
(二)
为什么我的服务不将我的请求发送到健康容器
观察:
我认为可能是Web服务器本身无法如此快速地开始服务请求,因此kubernetes认为这些POD是健康的,并将请求发送到那里(但由于过程尚未启动而什么也没有返回?我提出了一个问题来记录推荐的做法。我在本期文章中简要介绍了该方法:
- 确保POD设置了非零终止时间
- 在POD的主服务容器上配置readinessProbe
- 在应用程序中处理SIGTERM:使readinessProbe失败,但继续*处理正常请求,不退出
- 将maxUnavailable和/或maxSurge设置得足够大,以确保部署API规范中有足够的服务实例(1.2中提供)
容器重启,特别是当它们拉取映像时,对于系统来说代价相当高。Kubelet拒绝重新启动崩溃的容器,以便在docker、注册表、apiserver等方面正常降级。嘿,这正是我想要的,谢谢:)在启动该列表之前,可以添加一个准备例程,以便在重新启动之前将使用中的最新图像拉到每个节点。我认为这样可以让容器像没有图像变化一样燃烧起来。