Docker Swarm-创建新容器时的秘密问题



我正在运行Production Docker Swarm Cluster,它有3个管理器节点和许多工人。

每个节点(管理者、工作人员(运行相同的Docker和BTRFS版本:

Server Version: 17.12.1-ce
Storage Driver: btrfs
Build Version: Btrfs v4.9.1
Library Version: 102

我部署了1个复制的服务。此服务使用机密。

"Secrets": [
{
"File": {
"Name": "/var/secret",
"UID": "0",
"GID": "0",
"Mode": 400
},
"SecretID": "vb8485hcixfhnqrp29m8lrfm2",
"SecretName": "supersecret"
}

这个秘密存在于Docker Swarm管理者Leader:

{
"ID": "vb8485hcixfhnqrp29m8lrfm2",
"Version": {
"Index": 124153
},
"CreatedAt": "2020-08-17T12:22:29.656205519Z",
"UpdatedAt": "2020-08-17T12:22:29.656205519Z",
"Spec": {
"Name": "supersecret",
"Labels": {}
}
}

但无法从此服务启动容器。当我试图用";docker服务更新-强制${service_name}"总是退出容器,错误为:

Error response from daemon: unable to get secret from secret store: secret vb8485hcixfhnqrp29m8lrfm2 not found.

Container is creater without"秘密";/var/lib/docker/container_ID/中的文件夹

drwx------. 1 root root    0 Aug 19 11:06 checkpoints
-rw-------. 1 root root 9305 Aug 19 11:41 config.v2.json
-rw-r--r--. 1 root root 1599 Aug 19 11:41 hostconfig.json
-rw-r--r--. 1 root root   13 Aug 19 11:41 hostname
-rw-r--r--. 1 root root  150 Aug 19 11:41 hosts
-rw-r--r--. 1 root root   48 Aug 19 11:41 resolv.conf
-rw-r--r--. 1 root root   71 Aug 19 11:41 resolv.conf.hash
drwx------. 1 root root    0 Aug 19 11:06 shm

我不知道该做什么,也不知道出了什么问题。我们将非常感谢你的帮助。

作为对的响应

您是否尝试通过名称而不是id引用机密?老实说,当有一个稳定的自我声明的名字时,我甚至从未想过通过其随机生成的id来引用秘密Metin

根据Docker API文档:

SecretName是此引用的秘密的名称,但它是只是为了查找/显示目的而提供的。引用中的秘密将通过其ID进行识别。

这意味着以其名称处理秘密可能无法解决问题。我开始怀疑,这个错误消息并没有描述实际发生的事情(或者至少没有完全描述(。

最新更新