在K8S部署中,有时候容器启动顺序因为我们业务需要是有要求的,比如业务服务可能需要在 配置中心、注册的中心 启动后才启动,那么该如何呢?

我们通过 initContainer 来阻塞启动,如下以业务服务需要在apollo配置中心启动后才启动需求为例:

initContainers:
  - command:
      - sh
      - -c
      - until curl -m5 -s apollo-configservice-fat.my-namespace.svc.cluster.local:6166/info; do echo waiting for config; sleep 5; done;
    image: harbor.shanhy.com:443/dockerhub_proxy/yauritux/busybox-curl:latest
    name: wait-for-config
  • apollo-configservice-fat 为我配置中心的 container-name
  • my-namespace 为配置中心所在命名空间的名称
  • svc.cluster.local 为固定写法
  • 6166 为我的配置中心的端口号
  • /info 为配置中心启动后可以正常访问的一个URL地址,这个根据你自己实际需求填写,比如 /actuator/metrics 等等
  • 如果你在互相依赖的服务同一个命名空间,直接使用 apollo-configservice-fat:6166/info 即可,如上写法是同集群不同命名空间之间的写法

(END)

Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐