如果它依赖于另一个服务端点,如何创建 Kubernetes 端点

How to create Kubernetes endpoints if it depends on another service endpoint

我正在 kubernetes 中创建一个有两个容器的 pod。一个容器试图找到 运行 服务的端点。如果没有找到,它将退出,导致它重新启动,导致 pod #1 容器没有配置端点 ip。

Pod #2 做同样的事情,但它正在寻找 pod #1 的端点,在 pod #1 找到 pod #2 的端点之前不会配置。

如何解决这个问题,其中 pods 的两个端点都已创建并且它们相互连接。

也许你可以通过发布 NotReady 地址来解决这个问题,就像这个例子:

apiVersion: v1
kind: Service
metadata:
  annotations:
    service.alpha.kubernetes.io/tolerate-unready-endpoints: "true"
  name: harbor-1-redis-announce-0
  namespace: registry
spec:
  ports:
  - name: server
    port: 6379
    protocol: TCP
    targetPort: redis
  publishNotReadyAddresses: true
  selector:
    release: harbor-1-redis

通过 Annotations 并将 publishNotReadyAddresses 设置为 true,您可以在 Pods 准备好之前获取端点。