Docker 容器中的 Nomad Secrets 文件夹为空

Docker 容器中的 Nomad Secrets 文件夹为空

NOMAD_SECRETS_DIR我遇到了 Nomad 的Docker 容器文件夹分配问题。

template我的职位描述中有以下一段:

template {
    destination = "/local/pki/certs/my_certificate.crt"
    perms = "440"
    data = <<EOF
[ CERTIFICATE CONTENT ]
EOF
}

template {
    destination = "/secrets/pki/private/my_key.key"
    perms = "400"
    data = <<EOF
[ KEY CONTENT ]
EOF
}

这样,从 UI 中,当我查看分配给任务的文件时,我可以看到密钥文件已创建。

游牧民族秘密档案

然而,secrets在正在运行的Docker容器中该文件夹完全是空的:

# nomad alloc exec -i -t -task lb0 52a13d48 /bin/sh
/ # ls -al /secrets
total 0
drwxr-xr-x. 2 root   root    6 Feb 11 11:31 .
drwxr-xr-x. 1 root   root   70 Feb 11 11:31 ..

如果我查看系统本身的分配文件夹,该文件夹也是空的:

# ls -al /srv/nomad/alloc/52a13d48-b073-39b4-4b79-10225aece50e/lb0/secrets/
total 0
drwxr-xr-x. 2 root   root    6 Feb 11 12:31 .
drwxrwxrwx. 5 nobody nobody 45 Feb 11 12:31 ..

Nomad 在哪里找到文件夹中的文件secrets?为什么容器中是空的?

答案1

奇怪的是,当我以只读方式挂载文件系统时,Nomad 并不喜欢。

我已将以下内容放入 systemd 单元文件中:

ProtectSystem=full
ProtectHome=read-only

在启动进程之前,会将一些系统文件夹重新挂载为只读。这在某种程度上干扰了 Nomad。

相关内容