关于liveness服务依赖用法整理

一、生产环境中部分服务的使用场景有前置条件

  1. 使用initContainers,做一些前置服务的检测动作,以确定前置服务已正常运行且能对外提供服务(若检测未通过则本pod无法启动)
  2. 使用livenessProbe,进行前置服务的检查或端口探测(优点,若不存在则会反复重启直至前置服务正常)
  3. 对比使用:livenessProbe在前置服务恢复后能自动恢复,而initContainers模式只在启动时生效(不太适合此种使用场景)

二、前置服务在集群外

  1. 可以只用External类型的service将服务映射到集群中以完成检测(仅支持域名模式)
  2. 创建service,然后手动创建对应的endpoint(集群内)

示例

创建ExternalName(直接使用url方式访问)

kind: Service
apiVersion: v1
metadata:
  name: mongo
spec:
  type: ExternalName
  externalName: ds149763.mlab.com

创建一个service(需要明确指定端口)

kind: Service
apiVersion: v1
metadata:
  name: mongo
Spec:
  type: ClusterIP
  ports:
  – port: 27017
    targetPort: 27017

  

创建关联的endpoint

kind: Endpoints
apiVersion: v1
metadata:
  name: mongo
subsets:
  – addresses:
     – ip: 10.240.0.4
  ports:
  – port: 27017

参考地址:https://www.kubernetes.org.cn/4317.html

原文地址:https://www.cnblogs.com/jayce9102/p/12068960.html