【问题标题】:Restart a pod on different node from a pod in Kubernetes从 Kubernetes 中的 pod 重新启动不同节点上的 pod
【发布时间】:2019-08-27 10:19:26
【问题描述】:

我已经在节点(node1)上的 pod(pod1)上部署了一个 spring boot 应用程序。我还在另一个节点(node2)上的另一个 pod(pod2)上部署了 JMeter。我正在尝试从 pod2 执行自动负载测试。要执行负载测试,我需要为每个测试用例重新启动 pod1。如何从 pod2 重启 pod1?

【问题讨论】:

    标签: kubernetes jmeter performance-testing load-testing gcloud


    【解决方案1】:

    通过 kubectl:

    在 pod2 中安装 kubectl 并配置,然后在每次负载测试后通过 shell 执行kubectl delete pod1

    通过 Springboot:

    添加执行器依赖

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-actuator</artifactId>
    </dependency>
    

    启用关机

    management.endpoint.shutdown.enabled=true

    请求关闭

    curl -X POST IP:port/actuator/shutdown

    【讨论】:

    • 我已经在 pod 中安装了 kubectl。如何配置?
    • 与您在本地完成的方式相同!通过使用 .kube/config
    • 我用的是谷歌云,云壳。在 cloud shell 中,已经安装并配置了 kubectl。你能分享一些参考链接来配置吗?
    • 安装sdk cloud.google.com/sdk/docs/quickstarts 然后gcloud components install kubectl 认证:cloud.google.com/sdk/gcloud/reference/auth/login
    • 我尝试了上述步骤。但这似乎不起作用。当我执行kubectl get pods 时,它会引发以下错误。 Error from server (Forbidden): pods is forbidden: User "system:serviceaccount:default:default" cannot list resource "pods" in API group "" in the namespace "default"
    【解决方案2】:

    要重新启动或从另一个 pod 中删除一个 pod,您必须访问 APIServer。 有很多方法可以检查这个link

    您还必须授权 pod 用户执行此操作,构建角色和角色绑定实体。

    【讨论】:

    • 你能详细说明一下吗?我是 Kubernetes 的初学者,我真的不明白你分享的链接是什么
    • 授权说明:Apiserver 有一种方法可以保护自己免受未经授权的用户的侵害。要从 Apiserver 请求任何内容,您必须定义一个服务帐户来识别您的 pod 并将权限分配给您的 pod 服务帐户。创建角色是为了定义一组权限以列出和删除 pod 等。RoleBinding 是一种将该组权限分配给您的 serviceAccount 的方法,它将服务帐户与角色连接起来。
    【解决方案3】:

    如果您有部署类型的工作负载,您可以通过 Workloads > [Deployment name] > Managed Pods [Pod name] 进入并删除该 pod。

    您也可以使用 kubectl delete pod [pod name] 进行此操作

    如果该部署集的 pod 数量达到最低限度,那么 GKE 将自动启动另一个 pod,从而有效地重新启动它。

    https://cloud.google.com/kubernetes-engine/docs/concepts/deployment

    【讨论】:

      猜你喜欢
      • 2019-04-08
      • 2020-07-05
      • 1970-01-01
      • 1970-01-01
      • 2018-05-28
      • 2018-03-04
      • 2019-06-29
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多