n00*_*dle 5 linux containers kubernetes
我们的集群中有一个通过 ssh(测试环境等)调用的服务。在这个容器中,当我们使用 ssh 连接或使用 kubectl 连接时,我们有不同的环境变量。
有人可以解释一下 kubectl exec 命令在这里还设置了什么吗?
作为一个例子,来自两个环境的一小段摘录。
kubectl exec:(printenv | grep KU)
KUBERNETES_SERVICE_PORT_HTTPS=443
KUBERNETES_SERVICE_PORT=443
KUBERNETES_PORT_443_TCP=tcp://10.4.0.1:443
KUBERNETES_PORT_443_TCP_PROTO=tcp
KUBERNETES_PORT_443_TCP_ADDR=10.4.0.1
KUBERNETES_SERVICE_HOST=10.4.0.1
KUBERNETES_PORT=tcp://10.4.0.1:443
KUBERNETES_PORT_443_TCP_PORT=443
Run Code Online (Sandbox Code Playgroud)
ssh 进入同一个容器:(printenv | grep KU)
dev-xxxxx:~$ printenv | grep KU
dev-xxxxx:~$
Run Code Online (Sandbox Code Playgroud)
该kubectl exec命令允许您在 pod 的现有容器内远程运行任意命令。kubectl exec\xe2\x80\x99 与用于SSH在远程系统上执行命令没有太大区别。SSH并且kubectl应该可以很好地与 99% 的 CLI 应用程序配合使用。在环境变量方面我能发现的唯一区别是:
kubectl将始终设置启动时提供给容器的环境变量
SSH主要依赖于系统登录 shell 配置(但也可以通过PermitUserEnvironment 或 SendEnv/AcceptEnv接受 user\xe2\x80\x99s 环境)
回答你的问题:
\n\n\n有人可以解释一下 kubectl exec\n 命令在这里还设置了什么吗?
\n
它们应该产生相同的输出(假设您已正确键入这两个命令并在同一个容器上执行它们)。
\n您将在下面找到一些有关该kubectl exec命令的有用资源:
编辑:
\n如果您想了解更多关于kubectl exec和之间的差异SSH之间的差异,我推荐这篇文章。它涵盖以下主题:
授权号/z
\n壳牌用户体验
\n非外壳功能,以及
\n表现
\n