我正在GKE上设置一个新的K8S集群(1.13.7-gke.8),我希望Google cloud logging API能够正确地报告名称空间和实例名称。
这是在启用了workload-identity的新GKE集群中执行的。
我启动工作负载容器来测试对元数据服务的访问,结果如下:
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"我期望cluster-name、container-name和namespace-id的输出,但实际输出仅为cluster-name。
发布于 2019-09-05 08:21:04
我得到了相同的结果,但当我运行以下命令时,元数据出现了:
gcloud beta container node-pools create [NODEPOOL_NAME] \
--cluster=[CLUSTER_NAME] \
--workload-metadata-from-node=EXPOSED但是,您只能从元数据中获取cluster-name。例如,
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如果你正在考虑获取命名空间和容器,我建议你考虑直接与Kubernetes API对话,这本质上就是GKE上的“工作负载”选项卡所做的。我真的不知道你想用'Google cloud logging API‘做什么,但也许你可以详细说明一个不同的问题。
https://stackoverflow.com/questions/57795011
复制相似问题