是否可以使用 bash 脚本在 pod 中进行活性测试?

yat*_*ino 5 kubernetes

我目前正在设置一个 kubernetes 集群,在 3 个不同的虚拟机上有 3 个节点,每个节点由 1 个 pod 组成,运行以下 docker 镜像:ethereum/client-go:stable

问题是我想使用 bash 脚本进行运行状况检查测试(因为我必须测试很多东西),但我不明白如何将此文件导出到使用我的 yaml 部署文件部署的每个容器。

我尝试wget在 yaml 文件中添加命令以从我的 github 存储库下载健康检查脚本,但从我的角度来看它不是很干净,也许还有其他方法?

我当前的部署文件:

apiVersion: apps/v1
kind: Deployment
metadata:
  labels:
    app: goerli
  name: goerli-deploy
spec:
  replicas: 3
  selector:
    matchLabels:
      app: goerli
  template:
    metadata:
      labels:
        app: goerli
    spec:
      containers:
        - image: ethereum/client-go:stable
          name: goerli-geth
          args: ["--goerli", "--datadir", "/test2"]
          env:
          - name: LASTBLOCK
            value: "0"
          - name: FAILCOUNTER
            value: "0"
          ports:
          - containerPort: 30303
            name: geth
          livenessProbe:
            exec:
              command:
              - /bin/sh
              - /test/health.sh
            initialDelaySeconds: 60
            periodSeconds: 100
          volumeMounts:
          - name: test
            mountPath: /test
      restartPolicy: Always
      volumes:
      - name: test
        hostPath:
          path: /test
Run Code Online (Sandbox Code Playgroud)

我希望将健康检查脚本放在 /test/health.sh 中

有任何想法吗 ?

Sur*_*noi 4

这可能是 init 容器的完美用例,因为 init 容器和应用程序容器可能有不同的映像,因此它们在 pod 内有不同的文件系统,因此我们需要使用Emptydir来共享状态。

有关更多详细信息,请点击链接init-container