【问题标题】:How to deploy logstash with persistent volume on kubernetes?如何在 Kubernetes 上部署具有持久卷的 logstash?
【发布时间】:2020-12-13 13:12:26
【问题描述】:

使用 GKE 按 statefulset 类型和 pvc 部署 logstash。还需要安装一个输出插件。

在容器的命令args中不使用while true; do sleep 1000; done;时,无法使用pvc成功部署。

pod 会导致CrashLoopBackOff 错误。

  Normal   Created                 13s (x2 over 14s)  kubelet                  Created container logstash
  Normal   Started                 13s (x2 over 13s)  kubelet                  Started container logstash
  Warning  BackOff                 11s (x2 over 12s)  kubelet                  Back-off restarting failed container

来自here我发现它可以尝试添加睡眠。这样带pvc的statefulset就可以部署成功了。

但是当检查它的日志时会发现:

/bin/sh: bin/logstash-plugin: No such file or directory
/bin/sh: bin/logstash: No such file or directory

如何启动容器来安装logstash输出插件?

整个清单文件:

---
apiVersion: apps/v1
kind: StatefulSet
metadata:
  name: logstash-to-gcs
  namespace: logging
spec:
  serviceName: "logstash"
  selector:
    matchLabels:
      app: logstash
  updateStrategy:
    type: RollingUpdate
  replicas: 3
  template:
    metadata:
      labels:
        app: logstash
    spec:
      containers:
      - name: logstash
        image: docker.elastic.co/logstash/logstash:7.10.0
        resources:
          limits:
            memory: 2Gi
        ports:
          - containerPort: 5044
        volumeMounts:
          - name: config-volume
            mountPath: /usr/share/logstash/config
          - name: logstash-pipeline-volume
            mountPath: /usr/share/logstash/pipeline
          - name: logstash-data
            mountPath: /usr/share/logstash
        command: ["/bin/sh","-c"]
        args:
          - bin/logstash-plugin install logstash-output-google_cloud_storage;
            bin/logstash -f /usr/share/logstash/pipeline/logstash.conf;
            while true; do sleep 1000; done;
      volumes:
        - name: config-volume
          configMap:
            name: logstash-configmap
            items:
              - key: logstash.yml
                path: logstash.yml
        - name: logstash-pipeline-volume
          configMap:
            name: logstash-configmap
            items:
              - key: logstash.conf
                path: logstash.conf
  volumeClaimTemplates:
  - metadata:
      name: logstash-data
    spec:
      accessModes: [ "ReadWriteOnce" ]
      resources:
        requests:
          storage: 1Gi

【问题讨论】:

    标签: kubernetes plugins logstash kubernetes-statefulset kubernetes-pvc


    【解决方案1】:

    对于我的容器,我有一个在 Container Deployments 上运行的脚本,它可以安装插件然后运行 ​​logstash。 Post Arg> sh /usr/share/logstash/config/plugins.sh

    #!binbash
    
    echo running post install scripts for plugins..;
    logstash-plugin install logstash-filter-sentimentalizer
    logstash-plugin install logstash-input-mysql
    echo finished post install scripts for plugins..;
    sleep 1
    exec logstash 
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-10-01
      • 1970-01-01
      • 2019-03-29
      • 2020-08-18
      • 1970-01-01
      相关资源
      最近更新 更多