在运行时删除kubernetes pod

时间:2018-04-12 07:53:26

标签: kubernetes

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

我们需要删除一个pod或其副本集以强行重启pod。

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

2 个答案:

答案 0 :(得分:0)

是的,设置RBAC。

您需要关注:

  1. 在命名空间中的角色您的广告连播正在运行"删除"对您要删除的资源的权限。
  2. 一个服务帐户,用于识别您的Pod"服务"
  3. RoleBinding授予您的服务帐户(2)Role(1)以删除命名空间中的Pod
  4. 然后使用给定的Serivce Account令牌,您可以使用kubectl或对k8s apiserver的实际REST调用来删除。

答案 1 :(得分:0)

如果您没有获得访问kubectl命令或API的权限,您应该在容器上实现活动探测。

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

这可以完全用微软服务中的软件完成。如果您的申请不再“好”,则活动检查应该失败。您可以将活动检查与您可以手动创建的系统条件相结合(数据库中的“restart_request”字段设置为1,文件存在或者类似于此)

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