【问题标题】:Delete kubernetes pod at run time在运行时删除 kubernetes pod
【发布时间】:2018-04-12 07:53:26
【问题描述】:

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

我们需要删除一个 pod 或其副本集来强制重启该 pod。

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

【问题讨论】:

    标签: kubernetes


    【解决方案1】:

    通过设置 RBAC 可以。

    您需要以下内容:

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

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

    【讨论】:

    • 你能详细说明一下答案吗,对不起,作为一个新手,对kubernetes没有足够的了解
    【解决方案2】:

    如果您无法获得访问 kubectl 命令或生产环境 API 的权限,您应该在容器上实现一个 liveness probe。

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

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

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

    【讨论】:

      猜你喜欢
      • 2019-12-27
      • 2019-03-16
      • 2017-04-02
      • 2019-04-23
      • 1970-01-01
      • 2021-09-21
      • 2021-09-01
      • 1970-01-01
      • 2021-04-26
      相关资源
      最近更新 更多