【问题标题】:Preinstall Hook Helm - User friendly error message预安装 Hook Helm - 用户友好的错误消息
【发布时间】:2018-01-22 05:34:24
【问题描述】:

我正在尝试为应用程序开发 Helm 图表,以简化发布管理和将应用程序部署到 Kubernetes。为此,我在 Helm 图表中编写了一个预安装挂钩。

    apiVersion: batch/v1
kind: Job
metadata:
  name: px-etcd-preinstall-hook
  labels:
    heritage: {{.Release.Service | quote }}
    release: {{.Release.Name | quote }}
    chart: "{{.Chart.Name}}-{{.Chart.Version}}"
  annotations:
    "helm.sh/hook": pre-install
    "helm.sh/hook-weight": "-5"
    "helm.sh/hook-delete-policy": hook-succeeded, hook-failed
spec:
  backoffLimit: 2
  template:
    spec:
      restartPolicy: Never
      containers:
      - name: pre-install-job
        imagePullPolicy: Always
        image: "hrishi/px-etcd-preinstall-hook:v1"
        command: ['/bin/sh']
        args: ['/usr/bin/etcdStatus.sh',"{{ .Values.etcdEndPoint }}"]

此 docker 容器仅检查 ETCD 端点是否可访问。想法是等待几秒钟并尝试几次然后退出。
这是作为该容器的一部分运行的初始 shell 脚本。

set -x
echo "Initializing..."
svcname=$1
echo $svcname
etcdURL=$(echo "$svcname" | awk -F: '{ st = index($0,":");print substr($0,st+1)}')
echo $etcdURL

response=$(curl --write-out %{http_code} --silent --output /dev/null "$etcdURL/version")
echo $response

if [[ "$response" != 200 ]]
then
    echo "Provided etcd url is not reachable. Exiting.."
    exit 1
fi 

如果可以访问 ETCD url,一切都很好,但是如果无法访问 etcd url,那么我会收到一条错误消息,指出 Error: Job failed: BackoffLimitExceeded”

我想检查是否有一种方法可以设置用户友好的错误消息,说明 url 不可访问或类似的东西。 似乎现在没有办法做到这一点,我不知道。我尝试将其设置为Pod 而不是Job,但这也不起作用。

查看了 Helm 的文档,但似乎找不到任何有关此的信息。

【问题讨论】:

    标签: kubernetes kubernetes-helm


    【解决方案1】:

    我认为不可能。但我会采取不同的方法。

    如果您的应用程序需要 ETCD,为什么不检查 ETCD 是否可以作为您的 Pod probes 之一访问,例如活跃度或准备情况?这样,如果您的应用程序和 ETCD 之间没有连接,您的应用程序将无法启动,并且您会知道在描述您的 Pod 时探测失败,这是一种更 kubernetes 的方式

    此外,您甚至可以设置helm install to wait until all the Pod's are Ready,这意味着如果您的应用程序没有连接到ETCD,命令helm install 将会失败。

    【讨论】:

    • 没错。我确实想过。也许初始化容器也可以。一种预初始化步骤。我还想检查通过 Helm 执行此操作的可能性,因为 etcd url 可以为每个客户配置。另外,明天我可以通过 Helm 参数提供一个开关,说,擦除已经存在的 ETCD,因为我想使用它,所以我可以编写另一个预安装钩子。类似的东西。我同意,还有其他方法可以解决当前的障碍。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-10-14
    • 1970-01-01
    • 1970-01-01
    • 2020-11-25
    • 2016-12-15
    • 1970-01-01
    相关资源
    最近更新 更多