[英]How to ping DaemonSet in kubernetes
我已经设置了 Kubernetes DaemonSet Manifest 来处理我的项目中的指标,并且在 ping 这个 DaemonSet 时遇到了一点问题,所以我的最终问题是,(如果我的项目的每个 pod 中都有一个 daemonset,我如何 ping 特定的或只是为了确保一切正常?)(最有可能使用curl
,但如果可能的话,也会考虑其他一些方法:)
我拥有的 DaemonSet 示例
apiVersion: v1
kind: DaemonSet
metadata:
name: metrics-api-service
spec:
selector:
matchLabels:
app: api-metrics-app
template:
metadata:
labels:
app: api-metrics-app
spec:
terminationGracePeriodSeconds: 60
containers:
- name: api-metrics-service
image: image
livenessProbe:
exec:
< what I need to put here In order to ping the DaemonSet ? >
initialDelaySeconds: 60
resources:
limits:
cpu: "0.5"
memory: "500Mi"
requests:
cpu: "0.4"
memory: "200Mi"
谢谢
Healthcheck 应该足以确保它是否正常工作,但如果您仍想从外部确认,请确保您的守护程序集公开端口并且安全组允许内部流量,您可以 ping/curl 相同的节点守护程序集正在运行,每个守护程序集都会获取节点 IP 作为环境变量。
在 daemonset 环境变量中传递HOST_IP
env:
- name: HOST_IP
valueFrom:
fieldRef:
fieldPath: status.hostIP
然后相应地更新 liveness probe
livenessProbe:
exec:
command:
- sh
- -c
- curl -s $HOST_IP:PORT/healthcheck
我会推荐HTTP
检查 bash
healthcheck:
initialDelaySeconds: 100
periodSeconds: 10
timeoutSeconds: 5
httpGet:
path: /metrics
port: 3000
如果/metrics
似乎工作,只需返回200
状态代码。
一种方法是查找您的 Pod IP 地址,然后查询每个地址。
for i in $(kubectl get pods -n logging get pods \
-l app=api-metrics-app \
-o jsonpath='{.items[*].status.podIP}')
do
curl http://$i:4242/metrics
done
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.