我们在集群中有一个通过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将ssh放入同一个容器:(printenv \ grep KU)
dev-xxxxx:~$ printenv | grep KU
dev-xxxxx:~$发布于 2021-04-27 09:37:28
kubectl exec命令允许您在现有的pod容器中远程运行任意命令。kubectl exec与使用SSH在远程系统上执行命令没有太大区别。SSH和kubectl应该都能很好地处理99%的CLI应用程序。对于环境变量,我能找到的唯一不同之处是:
kubectl将始终在启动时设置提供给容器的环境变量。SSH主要依赖于系统登录shell配置(但也可以通过PermitUserEnvironment或SendEnv/AcceptEnv接受用户环境)回答你的问题:
有人能解释一下用kubectl exec命令还设置了什么吗?
它们应该具有相同的输出(假设您正确地输入了这两个命令并在同一个容器上执行它们)。
下面将找到有关kubectl exec命令的一些有用的资源:
编辑:
如果您想了解更多关于kubectl exec和SSH之间的区别的知识,我建议您使用这篇文章。它涵盖下列主题:
https://stackoverflow.com/questions/67277994
复制相似问题