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

如何SSH到kubernetes集群中的docker容器?

公羊兴文
2023-03-14
问题内容

我对Google
Cloud平台和Docker相当陌生,并设置了一个节点集群,制作了一个Dockerfile,该文件可复制存储库并在公共端口上运行Clojure
REPL。我可以从IDE连接到它,然后播放我的代码,太棒了!

但是该REPL应该应该通过SSH进行隧道传输,但这是我的问题开始的地方。 我找不到合适的SSH位置来 更改Docker在其上运行REPL的存储库:

  • 公开的IP仅公开了REPL服务(正确的kubernetes术语?),并且不允许我进行SSH输入。
  • 无论做集群主端点,它给了我,即使我跟随一个公共密钥错误Adding or removing SSH keys for all of the instances in your project部分在这里。

我想通过SSH编辑源文件,但是我需要访问docker代码库。我不知道该如何进行。

我知道这并不是部署应用程序的典型方法,因此我什至不确定是否有可能使多个节点与修改后的docker代码库一起工作(这些节点是否以某种方式共享JVM?)。

具体来说,我的问题是如何通过SSH进入docker容器来访问代码库?


问题答案:

我找不到合适的SSH位置来更改Docker在其上运行REPL的存储库

创建集群时,您需要在Google云项目中配置许多节点VM。如果您查看https://console.cloud.google.com/compute/instances,您应该会看到它们,并且每个都有一个外部IP地址,您可以将其用作SSH地址。然后创建到节点VM的ssh隧道,该节点将本地端口转发到Pod
IP地址。

请注意,如果您正在运行Clojure应用程序的多个副本,则必须分别连接到每个副本以更新该应用程序。



 类似资料:
  • 我正在使用一个安装了docker的docker映像,为了运行任务来清理我的kubernetes集群中每个节点上的docker映像数据。我尝试使用Daemonset,因为它将在除master之外的每个节点上运行,但是在docker容器中运行cron被证明是徒劳的。 因此,我尝试使用K8s Cronjob,它定期运行,具有以下属性: 和 我正在运行一个 shell 脚本,该脚本从上述 CronJob

  • 问题内容: 我正在运行容器 hypriot / rpi-busybox-httpd 我正在尝试SSH到docker容器:但它给出了错误: 我马上就做吗? 问题答案: 可能是您的映像未安装二进制/ bin / bash(如之前所建议),我遇到了同样的问题,因此我可以使用/ bin / sh进入容器 另一个解决方法是直接执行命令,而无需访问任何shell。

  • 在docker机器上运行的docker容器而不是k8s吊舱如何操作k8s群集。例如,如果我需要在容器内执行类似操作: kubectl得到豆荚 在我的dockerfile中,我安装了kubectl 当我运行时,结果如下: 因此,我在命令中将装入docker容器 结果如下: 这似乎是因为k8s配置文件中的 然后再次装载身份验证文件,它将成功运行。 现在,我可以调用命令,或者

  • 我构建了一个docker映像,如下所示: 我有这样的目录结构: 但现在我想看到它在kubernetes(本地集群)中运行。 我有 D:\temp\windows-deployment.yaml 因此,即使docker引擎运行的是Windows容器,本地的Kubernetes集群(控制平面)运行的是Linux。 我将非常感谢任何关于如何修复上述错误的想法,即拉访问被拒绝,以便我可以在Windows

  • 目前情况: 我通过执行以下命令创建了一个新的Cassandra映像“Cassandra”和一个名为“container-node”的容器: Docker pull Cassandra Docker images grep Cassandra Docker run-d--name cassandra-node--publish 9042:9042 cassandra 连接到容器:docker exe

  • 我将Drupal作为Docker容器运行在Vagrant box boot2docker(在Windows 8.1上)中: Vagrantfile(我的Docker容器) 主机/VagrantFile(主机) 我只需在Docker容器的目录中调用来运行它(和主机): 现在我喜欢从同一个目录连接到容器: 如果我将添加到Vagrantfile(我不知道是否需要它,因为我可以在没有它的情况下调用): 那