Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/azure/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Amazon web services 如何从kubernetes吊舱中识别主机云提供商?_Amazon Web Services_Azure_Kubernetes_Google Cloud Platform - Fatal编程技术网

Amazon web services 如何从kubernetes吊舱中识别主机云提供商?

Amazon web services 如何从kubernetes吊舱中识别主机云提供商?,amazon-web-services,azure,kubernetes,google-cloud-platform,Amazon Web Services,Azure,Kubernetes,Google Cloud Platform,能否从kubernetes吊舱中识别主机云提供商/平台?如果是,怎么做 现在,我只在寻找googlecloud,aws和azure。 他们是否在pod上挂载了任何特定的文件,或者是否设置了任何特定的环境变量,从中我可以识别云提供商/平台 我不是在寻找一种通用的方法,现在用不同的方法找到不同的云提供商也不错。我知道没有环境变量或挂载,但linux内核版本字符串可以给你一个提示。uname或cat/proc/version提供的版本信息实际上是节点的版本信息,而不是pod的版本信息 例如,在Azur

能否从kubernetes吊舱中识别主机云提供商/平台?如果是,怎么做

现在,我只在寻找
googlecloud
aws
azure
。 他们是否在pod上挂载了任何特定的文件,或者是否设置了任何特定的环境变量,从中我可以识别云提供商/平台


我不是在寻找一种通用的方法,现在用不同的方法找到不同的云提供商也不错。

我知道没有环境变量或挂载,但linux内核版本字符串可以给你一个提示。
uname
cat/proc/version
提供的版本信息实际上是节点的版本信息,而不是pod的版本信息

例如,在Azure
kubectl exec上,我的pod名称--uname-r
生成:

4.15.0-1018-azure

在GKE上,您应该看到如下内容

4.15.0-1018-gke

我得到了

4.15.0-1018-aws

然后使用
awk
可以过滤掉云提供商。当在吊舱内运行时,将生成azure、gke或aws:

uname -r|awk -F"-" '{print $3}'

这个集群托管在哪里?我认为最简单的方法是只使用环境变量,您将映射到podI。我已经更新了这个问题,以消除关于这个问题的一些混淆。实际上,我不清楚这个问题。云提供商取决于我们承载k8s集群的云平台,不是吗?是的。要找出pod运行在哪个云平台上,可以使用上面的命令。哦,你的意思是,这是针对通过ssh连接到pod但不知道安装的其他用户。或者是一些通用容器,根据平台的不同,其行为应该有所不同。@Aravind,是的。我正在为库伯内特斯设计一个图书馆。这就是这个场景出现的地方。