docker - 如何通过 SSH 连接到 Kubernetes 集群中的 docker 容器?

标签 docker google-compute-engine kubernetes google-cloud-platform google-kubernetes-engine

我对 Google Cloud 平台和 Docker 还很陌生,我设置了一个节点集群,制作了一个 Dockerfile 来复制一个 repo 并在公共(public)端口上运行 Clojure REPL。我可以从我的 IDE 连接到它并使用我的代码,太棒了!

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

  • 暴露的 IP 只是暴露了 REPL 服务(正确的 kubernetes 术语?)并且不允许我通过 SSH 进入。
  • 集群主端点也没有,它给了我一个公钥错误,即使我已经按照 为项目中的所有实例添加或删除 SSH key 部分 here .

我想通过 SSH 编辑源文件,但我需要访问 docker 代码仓库。我不知道如何继续。

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

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

最佳答案

对于更新的 Kubernetes 版本,shell 命令应该用 -- 分隔:

kubectl exec -it <POD NAME> -c <CONTAINER NAME> -- bash

请注意 bash 需要可用于在容器内执行。对于不同的操作系统风格,您可能需要改用 /bin/sh/bin/bash(或其他)。

Kubernetes 1.5.0 的命令格式:

kubectl exec -it <POD NAME> -c <CONTAINER NAME> bash

关于docker - 如何通过 SSH 连接到 Kubernetes 集群中的 docker 容器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38485771/

相关文章:

python - 使用第三方电子邮件系统进行 Django 密码重置

mysql - 为什么 Google Cloud SDK (gcloud) 尝试访问本地 MySQL 实例?

kubernetes - kube-apiserver healthz 调用中检查了什么?

node.js - 在 NodeJs 中使用 Docker-compose 热重载

nginx - 在docker run命令中安装cron任务

mysql - 从 Docker .net core 连接 localhost Mysql

kubernetes - 将Pod指标拉到外部Prometheus

sql-server - Mac 上的 SQL Server 与 Docker : Login failed for user 'sa' .

amazon-web-services - 使用 Terraform 在新创建的虚拟机上创建 Docker 容器

kubernetes - kubernetes使用容器pause-amd64做什么?