繁体   English   中英

如何 ping kubernetes 中的 DaemonSet

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM