Kubernetes 确定哪个GKE节点正在为客户端请求提供服务
我已经在Google Kubernetes引擎上部署了一个应用程序。我想确定哪个客户端请求由GKE中的哪个节点/pod提供服务。是否有办法将客户端请求映射到它所服务的pod/节点 您的问题的答案在很大程度上取决于您可以使用的监控和仪器的数量。Kubernetes 确定哪个GKE节点正在为客户端请求提供服务,kubernetes,google-cloud-platform,google-kubernetes-engine,Kubernetes,Google Cloud Platform,Google Kubernetes Engine,我已经在Google Kubernetes引擎上部署了一个应用程序。我想确定哪个客户端请求由GKE中的哪个节点/pod提供服务。是否有办法将客户端请求映射到它所服务的pod/节点 您的问题的答案在很大程度上取决于您可以使用的监控和仪器的数量。 最常见的方法是将prometheus客户端添加到POD上运行的代码中,并使用它编写包含标签的度量,这些标签可以识别您感兴趣的客户端请求 一旦普罗米修斯删除了你的指标,它们将被发出它们的节点/吊舱充实,你可以得到你想要的数据。我认为这就是你需要的。它允许您向
最常见的方法是将prometheus客户端添加到POD上运行的代码中,并使用它编写包含标签的度量,这些标签可以识别您感兴趣的客户端请求 一旦普罗米修斯删除了你的指标,它们将被发出它们的节点/吊舱充实,你可以得到你想要的数据。我认为这就是你需要的。它允许您向正在运行的
容器
公开Pod
和节点
信息。您的应用程序可以简单地echo
包含所需信息的特定env变量的内容通过这种方式,您可以看到哪个Pod
和计划在哪个节点上处理特定请求。
关于kubernetes文档内容的几句话:
有两种方法可以将Pod和Container字段公开给正在运行的
容器:
- 卷文件
这两种暴露Pod和Container字段的方法合在一起是
调用向下API
我建议你仔细研究一下。下面的示例Pod
公开了容器的名称以及节点名称:
apiVersion: v1
kind: Pod
metadata:
name: dapi-envars-fieldref
spec:
containers:
- name: test-container
image: k8s.gcr.io/busybox
command: [ "sh", "-c"]
args:
- while true; do
echo -en '\n';
printenv MY_NODE_NAME MY_POD_NAME;
sleep 10;
done;
env:
- name: MY_NODE_NAME
valueFrom:
fieldRef:
fieldPath: spec.nodeName
- name: MY_POD_NAME
valueFrom:
fieldRef:
fieldPath: metadata.name
restartPolicy: Never
这只是一个例子,我希望它能满足您的特定需求,但请记住,您可能会通过这种方式公开更多相关信息。请快速查看以下列表: