繁体   English   中英

在运行时删除kubernetes pod

[英]Delete kubernetes pod at run time

我们正在使用kubernetes部署我们的微服务,在生产模式下,我们将无法直接访问kubernetes,因此,有什么方法可以执行操作,例如使用rest api调用删除pod或通过http请求执行任何操作。

我们需要删除Pod或其副本集以强制重新启动Pod。

就像我们访问远程kubernetes并在运行时删除特定的pod

是的,通过设置RBAC。

您需要遵循以下条件:

  1. 您的吊舱中正在运行的命名空间中的角色,对要删除的资源具有“删除”权限。
  2. 一个服务帐户,它将识别您的Pod“服务”
  3. RoleBinding授予您的服务帐户(2)角色(1)删除命名空间中的Pod

然后,使用给定的Serivce Account令牌,您可以使用kubectl或对k8s apiserver的实际REST调用来删除。

如果您没有获得访问生产的kubectl命令或API的权利,则应在容器上实现活动性探针。

https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-probes/

您可以完全在微服务的软件中完成此操作。 如果您的应用程序不再“良好”,则活动检查将失败。 您可以将活动性检查与可以手动创建的系统条件结合起来(数据库中的字段“ restart_request”设置为1,文件存在或类似的东西)

这样,您可以手动重新启动容器,如果k8s停止正常运行,它们将为您重新启动它们。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM