kubernetes - 如果抛出任何异常,如何终止 janusgraph 容器

标签 kubernetes janusgraph docker-image

我正在使用 janusgraph docker 镜像 - https://hub.docker.com/r/janusgraph/janusgraph 在我的 kubernetes 部署中,使用挂载到 docker-entrypoint-initdb.d

的 groovy 脚本初始化远程图

这按预期工作,但如果远程主机未准备好,janusgraph 容器将抛出异常并仍处于运行模式。

因此 kubernetes 不会尝试再次重启容器。有什么办法可以让我配置这个 janusgraph 容器以在出现任何异常时终止

最佳答案

正如@Gavin 提到的,您可以使用探测器来检查容器是否正常工作。 Liveness Probes用于知道容器何时失败。如果容器没有响应 - 它可以重新启动容器。

就绪探测器通知容器何时可用于接受流量。就绪探针用于控制将哪些 pod 用作服务的后端。当所有容器都准备就绪时,一个 pod 就被认为准备就绪。如果 pod 未就绪,则会从服务端点中删除。

Kubernetes 支持三种机制来实现活跃性和就绪性探测:

1) 对容器发出 HTTP 请求 此探测具有可在 httpGet 上设置的附加字段:

  • host: Host name to connect to, defaults to the pod IP. You probably want to set "Host" in httpHeaders instead.
  • scheme: Scheme to use for connecting to the host (HTTP or HTTPS). Defaults to HTTP.
  • path: Path to access on the HTTP server. Defaults to /.
  • httpHeaders: Custom headers to set in the request. HTTP allows repeated headers.
  • port: Name or number of the port to access on the container. Number must be in the range 1 to 65535.

阅读更多:http-probes .

livenessProbe:
  httpGet:
    path: /healthz
    port: liveness-port

2) 针对容器打开 TCP 套接字

initialDelaySeconds: 15  
livenessProbe: ~  
periodSeconds: 20  
port: 8080  
tcpSocket: ~

3)在容器内运行命令

livenessProbe:  
  exec:  
    command:  
    - sh  
    - /tmp/status_check.sh  
  initialDelaySeconds: 10  

如果您将获得不同于 0 的状态代码,则表示探测失败。 您还可以向探测器添加额外的参数,例如 initialDelaySeconds:指示容器启动后在启动事件或就绪探测器之前的秒数。请参阅:configuring-probes .

在每种情况下还添加 restartPolicy: Never 到你的 pod 定义。默认情况下总是。

关于kubernetes - 如果抛出任何异常,如何终止 janusgraph 容器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65907261/

相关文章:

java - 如何更改在 Java FX 应用程序中运行的 JanusGraph/Cassandra 的日志记录级别?

javascript - 使用 Gremlin JavaScript 在 JanusGraph 中创建和查询地理点

tinkerpop - 如何远程连接到JanusGraph服务器?

mongodb - 从mongo服务器开始的Docker容器

kubernetes - 当静态 Assets 发生变化时,Kubernetes是否具有支持零停机部署的功能?

kubernetes - 创建时如何在Kubernetes节点上设置标签?

docker - Kubernetes 可以像 Docker Compose 一样使用吗?

kubernetes - 是否有任何现有的自动化工具来部署Kubernetes HA集群?

php - Dockerfile FROM vs Docker-compose IMAGE

docker - yum install 对 Docker 层大小的影响