Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/kubernetes/5.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.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
Kubernetes 实例属性在元数据中不可用_Kubernetes_Google Kubernetes Engine_Google Cloud Logging - Fatal编程技术网

Kubernetes 实例属性在元数据中不可用

Kubernetes 实例属性在元数据中不可用,kubernetes,google-kubernetes-engine,google-cloud-logging,Kubernetes,Google Kubernetes Engine,Google Cloud Logging,我正在gke上建立一个新的K8S集群(1.13.7-gke.8),我希望Google cloud logging API正确地报告名称空间和实例名称 这在启用了工作负载标识的新GKE集群中执行 我启动workload container来测试对元数据服务的访问,结果如下: kubectl run -it --generator=run-pod/v1 --image google/cloud-sdk --namespace prod --rm workload-identity-test 并在执

我正在gke上建立一个新的K8S集群(1.13.7-gke.8),我希望Google cloud logging API正确地报告名称空间和实例名称

这在启用了工作负载标识的新GKE集群中执行

我启动workload container来测试对元数据服务的访问,结果如下:

kubectl run -it --generator=run-pod/v1 --image google/cloud-sdk --namespace prod --rm workload-identity-test
并在执行以下操作后从容器中删除:

curl "http://metadata.google.internal/computeMetadata/v1/instance/attributes/" -H "Metadata-Flavor: Google"

我需要集群名称、容器名称和命名空间id的输出,但实际输出只是集群名称。

我得到了相同的结果,但当我运行以下命令时,元数据显示出来:

gcloud beta container node-pools create [NODEPOOL_NAME] \
  --cluster=[CLUSTER_NAME] \
  --workload-metadata-from-node=EXPOSED
但是,您只能从元数据中获得
集群名称
。比如说,

root@workload-identity-test:/# curl "http://metadata.google.internal/computeMetadata/v1/instance/attributes/" -H "Metadata-Flavor: Google"
cluster-location
cluster-name
cluster-uid
configure-sh
created-by
disable-legacy-endpoints
enable-oslogin
gci-ensure-gke-docker
gci-update-strategy
google-compute-enable-pcid
instance-template
kube-env
kube-labels
kubelet-config
user-data

如果您正在考虑获取名称空间和容器,我建议您直接与GKE上的“Workloads”选项卡进行对话,这实际上是GKE上的“Workloads”选项卡所做的事情。我不太确定您想用“Google cloud logging API”做什么,但也许您可以详细说明另一个问题。

Google cloud logging API需要元数据属性群集名称,容器名称和命名空间id,以便能够在控制台中正确构造日志,据我所知,应该由使用Kubernetes API的stackdriver代理自动填充。我怀疑它与此问题有关,但我找不到任何日志。--workload metadata from node=EXPOSED已弃用似乎是正确的参数GCE_metadata