gpt4 book ai didi

logging - 如何将 kubernetes 中所有 pod 的日志存储在 Node 上的一处?

转载 作者:行者123 更新时间:2023-12-02 12:15:48 24 4
gpt4 key购买 nike

我想将 pod 的日志存储在 kubernetes 中的一个地方。即 的输出kubectl 记录 podname

我提到了这个问题Kubernetes basic pod logging这给了我成功的计数器日志...如何在规范中修改此 args 属性以获取 的输出kubectl 记录 podname 存储在一个地方的文件?

这是我创建的 pod.yaml,但在 位置看不到任何文件/tmp/logs/

apiVersion: v1
kind: Service
metadata:
name: spring-boot-demo-pricing
spec:
ports:
- name: spring-boot-pricing
port: 8084
targetPort: 8084
selector:
app: spring-boot-demo-pricing

---
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: spring-boot-demo-pricing
spec:
replicas: 1
template:
metadata:
labels:
app: spring-boot-demo-pricing
spec:
containers:
- name: spring-boot-demo-pricing
image: djtijare/a2ipricing12062019:v1
imagePullPolicy: IfNotPresent
# envFrom:
#- configMapRef:
# name: spring-boot-demo-config-map
resources:
requests:
cpu: 100m
memory: 1Gi
ports:
- containerPort: 8084
args: [/bin/sh, -c,
'i=0; while true; do echo "$i: $(date)" >> /u01/kubernetes_prac/logs/log_output.txt; i=$((i+1)); sleep 1; done']
volumeMounts:
- name: varlog
mountPath: /u01/kubernetes_prac/logs
volumes:
- name: varlog
hostPath:
path: /tmp/logs

最佳答案

正确的方法是将日志存储在集群之外,例如,如果您使用 AWS,则有一些规定,例如将日志存储到 cloudwatch、s3 等。示例可能是 fluentd ,写入许多来源。原因是 Kubernetes 集群在 VPC(虚拟私有(private)云)上运行并提供对集群中节点的访问可能并不总是正确的。所以这是遵循的一种方法。

这个link提供将所有容器的日志公开给 EFK(Elasticsearch、Fluentd 和 Kibana)的指南。

关于logging - 如何将 kubernetes 中所有 pod 的日志存储在 Node 上的一处?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56594791/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com