AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 1164769
Accepted
Bender Rodriguez
Bender Rodriguez
Asked: 2024-08-07 07:55:05 +0800 CST2024-08-07 07:55:05 +0800 CST 2024-08-07 07:55:05 +0800 CST

每日重启 Google Cloud COS 容器

  • 772
该问题已从 Stack Overflow迁移,因为它可以在 Server Fault 上得到解答。37 分钟前迁移 。

我正在 COS(容器操作系统)实例上部署容器。非常简单。

我希望它每天重启。最好的方法是什么?我可以在虚拟机上设置一个简单的 CRON 选项卡吗?问题是每次重新部署虚拟机时都需要重新执行此操作。

google-cloud-platform
  • 2 2 个回答
  • 5 Views

2 个回答

  • Voted
  1. Imran Premnawaz
    2024-08-07T17:24:40+08:002024-08-07T17:24:40+08:00

    不建议将虚拟机上的 Cron 作业用于容器,因为在虚拟机上运行 Cron 作业本身会在作业和虚拟机之间建立直接依赖关系。这意味着如果虚拟机重新启动,我们就会失去 Cron 作业。容器可以重新启动或销毁而不会影响整体应用程序状态,而虚拟机上的 Cron 作业不尊重这种行为。因此,虚拟机上的 Cron 作业本身并不适用于容器部署,因为它与虚拟机绑定,而不是与容器本身绑定。

    您可以在 Kubernetes 中设置 Cron Job,这是一项内置功能,因此它将有助于重新启动 Pod。有关更多详细信息,请参阅使用 CronJob 运行自动化任务。

    使用 Cron Job,但不是运行你的 Pod,而是安排一个 Kubernetes API 命令,该命令将每天重新启动部署(kubectl rollout restart)。这样,如果出现问题,旧的 Pod 就不会被关闭或删除。

    还要确保您指定了正确的命名空间,并且 pod 具有与 k8s API 交互的正确权限。因为 k8s API 对 pod 的授权通常是通过服务帐户完成的。此外,您还需要授予它访问 API 的权限,这意味着创建一个 ServiceAccount 和一些 RBAC 策略对象(Role、RoleBinding),然后在您的 pod 规范中设置serviceAccountName。

    要每天重启 pod,请执行以下操作,

    LivenessProbe:
      exec:
        command:
        - exit $(test $(date +%H) -eq 3 && echo 1 || echo 0)
      failureThreshold: 1
      initialDelaySeconds: 3600
      periodSeconds: 60
    

    其中 86400 是所需的秒数(本例中为每天重启 1 次)。

    与上述类似,您也可以使用其他解决方法,例如:

    Stackdriver Monitoring:根据自定义指标提供灵活的重启调度。Google Cloud Run:对于无状态、可扩展的应用程序来说,简单而高效。

    • 1
  2. Best Answer
    DazWilkin
    2024-08-08T02:23:08+08:002024-08-08T02:23:08+08:00

    评估安排虚拟机实例的启动和停止。

    重新启动 COS VM 将重新启动容器。只要容器被定义为实例配置的一部分(即--container-image等),并且在镜像运行时不作为临时容器运行。

    • 1

相关问题

  • 网络定价如何在云平台中准确运作?我应该如何避免专门的定价攻击?

  • 云有多大?[关闭]

  • 无需短信即可注册 Google AppEngine?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve