当前位置: 首页 > 面试题库 >

如何从破碎的码头工人群中获取秘密

丌官向荣
2023-03-14
问题内容

我的集群服务器坏了(Linux系统错误),可惜它只是一个节点。

我阅读了https://docs.docker.com/v17.09/engine/swarm/admin_guide/#back-up-the-
swarm

所以我尝试/var/lib/docker/swarm在新设置的docker服务器上备份和还原它,如下所示:

新的docker守护程序可以在没有任何群集功能的情况下正常运行,但是群集功能不能像以下那样工作:

$ docker service ls
Error response from daemon: This node is not a swarm manager. Use "docker swarm init" or "docker swarm join" to connect this node to swarm and try again.

我认为我需要强制重新初始化群组管理器:

docker swarm init --force-new-cluster

在那之后,每个命令都像

docker service ls

没有响应, 那些使docker daemon挂起

然后,我尝试从后面的文件中提取数据,发现这个https://medium.com/lucjuggery/raft-logs-on-swarm-
mode-1351eff1e690
似乎很有用。但是我仍然无法恢复秘密。

只得到类似的东西:

 secrets: <
        secret_id: "6vtndjswxr4fe9kxjtmmtk6af"
        secret_name: "DATABASE_ADMIN_URL"
        file: <
          name: "_DATABASE_ADMIN_URL"
          uid: "0"
          gid: "0"
          mode: -r--r--r--
        >
      >

其中不包含有用的数据。

顺便说一句:我不是在黑客服务器,我希望恢复数据,而不是去调查捆绑服务的所有配置。


问题答案:

今天花了我几个小时才弄清为什么docker daemon在挂起后挂起

docker swarm init --force-new-cluster

我相信官方文档https://docs.docker.com/v17.09/engine/swarm/admin_guide/#restore-from-
a-backup
缺少一步

因为在我移走docker-state.json之后跑了

docker swarm init --force-new-cluster --advertise-addr <the-server-ip>:2377

事情按预期进行。



 类似资料:
  • 我有一个mongodb服务和一个使用docker compose运行的测试服务: 在我试图运行的start.sh脚本中: 但我得到了以下错误: 我的问题是:为什么会发生错误?Dependes_on属性不应该自动包含服务依赖项吗?正如这里提到的: depends_on 表示服务之间的依赖关系,这有两个效果: docker compose up将按依赖顺序启动服务。在下面的示例中,db和redis将在

  • 问题内容: 当docker-demon启动时,它会向iptables添加一些规则。当通过我删除所有规则时,必须停止并重新启动docker demon以重新创建dockers规则。 有没有办法让docker重新添加其他规则? 问题答案: 最好的方法是重启docker服务,然后将docker规则重新添加到iptables中。(上DEB基:) 但是,如果您只想恢复这些规则而无需重新启动服务,我保存了我的

  • 我经常遇到问题,因为我在具有多个节点的docker swell上部署的服务无法启动,并且没有生成的日志可以使用查看 服务无法启动有许多可能的原因,例如 无法从注册表下载图像 无法满足的约束 我很难弄清楚为什么集装箱不能启动。我找到了命令,它列出了一个或多个服务的任务和一条简短的错误消息(如果有错误)。但是,当我尝试使用(它应该显示任务的日志)检查任务时,我从守护进程得到。 有人能帮我得到为什么服务

  • 我正在尝试将https://docs.microsoft.com/en-us/Azure/key-vault/tutorial-net-create-vault-azure-web-app中的示例代码转换为VB.net,并使用它访问我存储在Azure密钥库中的秘密。我在http://converter.telerik.com/使用了转换器。 转换后的代码出现一个错误:“委托'KeyVaultCli

  • 问题内容: 我有3个简单的微服务(mysql,apirest,gui),我开始使用docker-compose: 在 MySQL的 和 apirest 微服务没有问题可以进行通信(我可以连接到我的数据库 apirest 使用 的MySQL 作为主机名。 但是,当我尝试使用 apirest* 作为主机名执行http请求(角度)时,我在 gui 微服务中收到以下错误: * 无法加载资源:net ::

  • 我想从天蓝色密钥库获取秘密。当我独立于主方法运行类时,它返回秘密,但当我在代码行future.get()处集成了这个相同的代码在servlet应用程序中;在这里它得到块,它不会像死锁一样继续前进,它一直在等待,有时会得到java.util.concurrent.执行异常:java.lang.ClassCastExctive:java.lang.字符串不能被强制转换为java.util.列表和com