是否可以找到运行容器的节点的区域和区域

我想找到我的节点的区域和节点,我需要这个来记录监控数据。kubernetes 规范和元数据不提供此信息。我检查了 https://github.com/kubernetes/client-go 看起来很有希望,但我找不到我正在寻找的信息。

有什么建议吗?谢谢


摇曳的蔷薇
浏览 137回答 3
3回答

守着星空守着你

如果您使用的是 GKE,则节点区域和区域应位于节点的标签中:failure-domain.beta.kubernetes.io/regionfailure-domain.beta.kubernetes.io/zonetopology.kubernetes.io/regiontopology.kubernetes.io/zone您可以使用kubectl get nodes --show-labels

BIG阳

这就是我最终所做的。已启用工作负载标识gcloud container clusters update <CLUSTER_NAME> \&nbsp; --workload-pool=<PROJECT_ID>.svc.id.goog更新了节点池以使用工作负载标识gcloud container node-pools update <NODEPOOL_NAME> \&nbsp; --cluster=<CLUSTER_NAME> \&nbsp; --workload-metadata=<GKE_METADATA>为我的应用创建了服务帐户将我的 KSA 绑定到 GSAgcloud iam service-accounts add-iam-policy-binding \&nbsp; --role roles/iam.workloadIdentityUser \&nbsp; --member "serviceAccount:<PROJECT_ID>.svc.id.goog[<K8S_NAMESPACE>/<KSA_NAME]" \&nbsp; <GSA_NAME>@<PROJECT_ID>.iam.gserviceaccount.com使用GSA电子邮件地址的带注释的服务帐户apiVersion: v1kind: ServiceAccountmetadata:&nbsp; annotations:&nbsp; &nbsp; iam.gke.io/gcp-service-account: <GSA_NAME>@<PROJECT_ID>.iam.gserviceaccount.com&nbsp; name: KSA_NAME&nbsp; namespace: <K8S_NAMESPACE>这由GSA的容器进行身份验证,我能够使用 https://cloud.google.com/compute/docs/storing-retrieving-metadata

森林海

不是以任何直接的方式。您可以使用向下 API 向 Pod 公开节点名称,然后获取该节点的注释/标签。但这需要相当广泛的读取权限(所有节点),因此可能存在安全风险。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go