Kubernetes Pod-什么时候准备为流量服务?

时间:2020-07-12 00:55:26

标签: kubernetes yaml distributed raft

我目前正在构建一个分布式共识系统,因此准确知道Kubernetes pod何时可以服务流量(接受http请求)非常重要。除了设置计时器以不断向自身发出请求外,关于如何做到这一点的任何想法?

1 个答案:

答案 0 :(得分:3)

您可以使用就绪探针和kubernetes service。来自文档here

readinessProbe :指示容器是否已准备好服务 要求。如果就绪探针失败,则端点控制器 从以下所有服务的端点中删除Pod的IP地址 搭配豆荚。初始延迟之前的默认准备状态 是失败。如果容器未提供就绪探测器,则 默认状态为成功

根据指南here

apiVersion: v1
kind: Pod
metadata:
  name: goproxy
  labels:
    app: goproxy
spec:
  containers:
  - name: goproxy
    image: k8s.gcr.io/goproxy:0.1
    ports:
    - containerPort: 8080
    readinessProbe:
      httpGet:
        path: /readiness
        port: 8888
      initialDelaySeconds: 300
      periodSeconds: 30

您的应用程序需要具有HTTP端点/readiness,该端点应返回200 OK响应。Kubelet将探测您在准备情况探针中定义的端点。一旦kubelet从端点返回了200 OK响应,那么pod将被标记为准备好接受流量,并且Kubernetes服务将开始将流量发送到后端pod。

最后通过Kubernetes服务公开pod。