k8s部署elk+filebeat+logstash+kafka集群(一)ES集群+kibana部署

这篇具有很好参考价值的文章主要介绍了k8s部署elk+filebeat+logstash+kafka集群(一)ES集群+kibana部署。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

前言:

这次是在部署后很久才想起来整理了下文档,如有遗漏见谅,期间也遇到过很多坑有些目前还没头绪希望有大佬让我学习下
一、环境准备

k8s-master01 3.127.10.209
k8s-master02 3.127.10.95
k8s-master03 3.127.10.66
k8s-node01 3.127.10.233
k8s-node02 3.127.33.173
harbor 3.127.33.174

1、k8s各节点部署nfs

挂载目录为 /home/k8s/elasticsearch/storage

2、安装制备器Provisioner

镜像为quay.io/external_storage/nfs-client-provisioner:latest

# cat rbac.yaml

apiVersion: v1
kind: ServiceAccount
metadata:
  name: nfs-client-provisioner
  namespace: default
---
kind: ClusterRole
apiVersion: rbac.authorization.k8s.io/v1
metadata:
  name: nfs-client-provisioner-runner
rules:
  - apiGroups: [""]
    resources: ["persistentvolumes"]
    verbs: ["get", "list", "watch", "create", "delete"]
  - apiGroups: [""]
    resources: ["persistentvolumeclaims"]
    verbs: ["get", "list", "watch", "update"]
  - apiGroups: ["storage.k8s.io"]
    resources: ["storageclasses"]
    verbs: ["get", "list", "watch"]
  - apiGroups: [""]
    resources: ["events"]
    verbs: ["create", "update", "patch"]
---
kind: ClusterRoleBinding
apiVersion: rbac.authorization.k8s.io/v1
metadata:
  name: run-nfs-client-provisioner
subjects:
  - kind: ServiceAccount
    name: nfs-client-provisioner
    namespace: default
roleRef:
  kind: ClusterRole
  name: nfs-client-provisioner-runner
  apiGroup: rbac.authorization.k8s.io
---
kind: Role
apiVersion: rbac.authorization.k8s.io/v1
metadata:
  name: leader-locking-nfs-client-provisioner
  namespace: default
rules:
  - apiGroups: [""]
    resources: ["endpoints"]
    verbs: ["get", "list", "watch", "create", "update", "patch"]
---
kind: RoleBinding
apiVersion: rbac.authorization.k8s.io/v1
metadata:
  name: leader-locking-nfs-client-provisioner
  namespace: default
subjects:
  - kind: ServiceAccount
    name: nfs-client-provisioner
    namespace: default
roleRef:
  kind: Role
  name: leader-locking-nfs-client-provisioner
  apiGroup: rbac.authorization.k8s.io
# cat deployment.yaml

apiVersion: apps/v1
kind: Deployment
metadata:
  name: nfs-client-provisioner
  labels:
    app: nfs-client-provisioner
  namespace: default
spec:
  replicas: 1
  strategy:
    type: Recreate
  selector:
    matchLabels:
      app: nfs-client-provisioner
  template:
    metadata:
      labels:
        app: nfs-client-provisioner
    spec:
      serviceAccountName: nfs-client-provisioner
      containers:
        - name: nfs-client-provisioner
          image: 3.127.33.174:8443/kubernetes/nfs-client-provisioner:latest
          volumeMounts:
            - name: nfs-client-root
              mountPath: /persistentvolumes
          env:
            - name: PROVISIONER_NAME
              value: fuseim.pri/ifs
            - name: NFS_SERVER
              value: 3.127.10.95
            - name: NFS_PATH
              value: /home/k8s/elasticsearch/storage
      volumes:
        - name: nfs-client-root
          nfs:
            server: 3.127.10.95
            path: /home/k8s/elasticsearch/storage
# cat es-storageclass.yaml

apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
  name: managed-nfs-storage
provisioner: fuseim.pri/ifs # or choose another name, must match deployment's env PROVISIONER_NAME'
parameters:
  archiveOnDelete: "true"
reclaimPolicy: Retain

k8s部署elk+filebeat+logstash+kafka集群(一)ES集群+kibana部署

3、ES集群部署

# cat es-cluster-svc.yaml

apiVersion: v1
kind: Service
metadata:
  name: es-svc
  namespace: elk
  labels:
    app: es-cluster-svc
spec:
  selector:
    app: es
  type: ClusterIP
  clusterIP: None
  sessionAffinity: None
  ports:
  - name: outer-port
    port: 9200
    protocol: TCP
    targetPort: 9200
  - name: cluster-port
    port: 9300
    protocol: TCP
    targetPort: 9300
---
apiVersion: apps/v1
kind: StatefulSet
metadata:
  name: es-cluster
  namespace: elk
  labels:
    app: es-cluster
spec:
  podManagementPolicy: OrderedReady
  replicas: 3
  serviceName: es-svc
  selector:
    matchLabels:
      app: es
  template:
    metadata:
      labels:
        app: es
      namespace: elk
    spec:
      containers:
      - name: es-cluster
        image: 3.127.33.174:8443/elk/elasticsearch:8.1.0
        imagePullPolicy: IfNotPresent
        resources:
          limits:
            memory: "16Gi"
            cpu: "200m"
        ports:
        - name: outer-port
          containerPort: 9200
          protocol: TCP
        - name: cluster-port
          containerPort: 9300
          protocol: TCP
				env:
        - name: cluster.name
          value: "es-cluster"
        - name: node.name
          valueFrom:
            fieldRef:
              fieldPath: metadata.name
#        - name: discovery.zen.ping.unicast.hosts
        - name: discovery.seed_hosts
          value: "es-cluster-0.es-svc,es-cluster-1.es-svc,es-cluster-2.es-svc"
#        - name: discovery.zen.minimum_master_nodes
#          value: "2"
        - name: cluster.initial_master_nodes
          value: "es-cluster-0"
        - name: ES_JAVA_OPTS
          value: "-Xms1024m -Xmx1024m"
        - name: xpack.security.enabled
          value: "false"
        volumeMounts:
        - name: es-volume
          mountPath: /usr/share/elasticsearch/data
      initContainers:
      - name: fix-permissions
        image: 3.127.33.174:8443/elk/busybox:latest
        imagePullPolicy: IfNotPresent
#       uid,gid为1000
				command: ["sh", "-c", "chown -R 1000:1000 /usr/share/elasticsearch/data"]
        securityContext:
          privileged: true
        volumeMounts:
        - name: es-volume
          mountPath: /usr/share/elasticsearch/data
      - name: increase-vm-max-map
        image: 3.127.33.174:8443/elk/busybox:latest
        imagePullPolicy: IfNotPresent
        command: ["sysctl","-w","vm.max_map_count=655360"]
        securityContext:
          privileged: true
      - name: increase-ulimit
        image: 3.127.33.174:8443/elk/busybox:latest
        imagePullPolicy: IfNotPresent
        command: ["sh","-c","ulimit -n 65536"]
        securityContext:
          privileged: true
  volumeClaimTemplates:
  - metadata:
      name: es-volume
      namespace: elk
    spec:
      accessModes:
      - ReadWriteMany
      resources:
        requests:
          storage: "150Gi"
      storageClassName: managed-nfs-storage

 kubectl get pods -n elk -o wide

至此es集群正常部署完毕

4、kibana部署

# cat kibana.yaml

apiVersion: v1
kind: Service
metadata:
  name: kibana-svc
  namespace: elk
  labels:
    app: kibana-svc
spec:
  selector:
    app: kibana-8.1.0
  ports:
  - name: kibana-port
    port: 5601
    protocol: TCP
---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: kibana-deployment
  namespace: elk
  labels:
    app: kibana-dep
spec:
  replicas: 1
  selector:
    matchLabels:
      app: kibana-8.1.0
  template:
    metadata:
      name: kibana
      labels:
        app: kibana-8.1.0
    spec:
      containers:
      - name: kibana
        image: 3.127.33.174:8443/elk/kibana:8.1.0
        imagePullPolicy: IfNotPresent
        resources:
          limits:
            cpu: "1000m"
          requests:
            cpu: "200m"
        ports:
        - name: kibana-web
          containerPort: 5601
          protocol: TCP
        env:
        - name: ELASTICSEARCH_HOSTS
          value: http://es-svc:9200
        readinessProbe:
          initialDelaySeconds: 10
          periodSeconds: 10
          httpGet:
            port: 5601
          timeoutSeconds: 100
---
# 部署ingress通过域名来访问kibana

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: kibana-ingress
  namespace: elk
  labels:
    app: kibana-ingress
spec:
  ingressClassName: nginx
  defaultBackend:
    service:
      name: kibana-svc
      port:
        name: kibana-port
  rules:
  - host: jszw.kibana.com
    http:
      paths:
      - path: /
        pathType: Prefix
        backend:
          service:
            name: kibana-svc
            port:
              name: kibana-port

kubectl get pods -n elk -o wide
k8s部署elk+filebeat+logstash+kafka集群(一)ES集群+kibana部署文章来源地址https://www.toymoban.com/news/detail-422984.html

到了这里,关于k8s部署elk+filebeat+logstash+kafka集群(一)ES集群+kibana部署的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 在k8s集群部署ELK

    使用kubeadm或者其他方式部署一套k8s集群。 在k8s集群创建一个namespace:halashow 3.1 准备资源配置清单  Deployment中存在一个es的业务容器,和一个init容器,init容器主要是配置vm.max_map_count=262144。 service暴露了9200端口,其他服务可通过service name加端口访问es。 3.1 准备资源配置清单

    2024年02月04日
    浏览(41)
  • 【k8s】【ELK】【zookeeper+kafka+efak】【一】日志环境部署

    如何收集日志 使用 EFK+Logstash+Kafka 收集K8S哪些日志? 2.1 ES集群的构建 demo: 2.2 交付ES-Service 01-es-svc.yaml 2.3 交付ES-Master节点 2.4交付ES-Data节点 2.5 验证ES集群 3.1 交付Kibana(dp、svc、ingress) 01-kibana-dp.yam 02-kibana-svc.yam 03-kibana-ingress.yam 3.2 访问kibana 01-zk-svc.yaml 02-zk-sts.yaml 验证zk集群

    2024年02月07日
    浏览(33)
  • Zookeeper、Kafka集群与Filebeat+Kafka+ELK架构、部署实例

    Zookeeper是一个开源的分布式的,为分布式框架提供协调服务的Apache项目。 Zookeeper:一个领导者(Leader),多个跟随者(Follower)组成的集群。 Zookeeper集群中只要有半数以上节点存活,Zookeeper集群就能正常服务。所以Zookeeper适合安装奇数台服务器。 全局数据一致:每个Server保

    2024年02月08日
    浏览(43)
  • 14.Kafka系列之K8S部署集群

    1. 部署方式选择 基于Kafka3.X后的集群搭建方式主要分为两种,一种是基于Zookeeper管理方式,一种是基于KRaft模式,本文主要介绍Kafka-KRaft集群模式搭建 纠正文章 1.Kafka系列之K8S部署单节点 中基于Zookeeper方式的部署方式错误,其实是基于KRaft启动的,所以不部署Zookeeper也可以,可

    2024年02月10日
    浏览(25)
  • 【ELK 使用指南 3】Zookeeper、Kafka集群与Filebeat+Kafka+ELK架构(附部署实例)

    分布式应用管理框架 。 Zookeeper是个开源的,分布式的,为分布式框架提供协调服务的Apach项目。 主要用于解决分布式应用集群中 应用系统的一致性问题 。 作为 文件系统 ,用于注册各种分布式应用, 储存管理分布式应用的元信息 ; 作为 通知机制 ,如果节点或者服务本身的

    2024年02月08日
    浏览(49)
  • 在k8s 1.26.6上部署ES集群

    一、k8s集群架构: IP    角色,左边是ip,右边是hostname master1 是192.168.1.3 的hostname 二、部署ES集群 1、配置storageclass,用于动态创建pvc,并自动绑定pv cat sc.yaml 执行一下: kubectl apply -f sc.yaml 2、创建名称空间 kubectl create ns elasticsearch 3、创建PV cat pv.yaml  一共是5个PV,每个都通

    2024年02月13日
    浏览(33)
  • 使用ELK(ES+Logstash+Filebeat+Kibana)收集nginx的日志

    书接上回:《ELK中Logstash的基本配置和用法》 默认情况下,Nginx的日志记录的是下面的格式: 在 nginx.conf 中也可以看到相关配置信息: 现在为了方便收集日志,我们把这里的格式改为 json格式,在 nginx.conf 中加入下面的内容: 以上配置是手动组装了一个json格式的配置信息。

    2024年02月11日
    浏览(34)
  • 【图文详解】Docker搭建 ELK Stack (elk) [使用es-logstash-filebeat-kibana]

            如果您对 elk 还不了解,那么可以先直戳下方官方链接,官方通过图形化界面很形象地介绍了elk stack(Elastic  Stack)。  ELK Stack:Elasticsearch 的开发者倾心打造 | Elastic 本文使用软件(centos7,moba) | 拉取es镜像 || 拉取kibana镜像  ||| 拉取logstash镜像 |||| 拉取filebeat镜

    2023年04月08日
    浏览(34)
  • filebeat采集日志数据到kafka(一)(filebeat->kafka->logstash->es)

    一、filebeat安装 filebeat-kafka版本适配 1、安装包下载 https://www.elastic.co/cn/downloads/past-releases#filebeat 解压 2、新建yml配置文件,如test.yml 3、Filebeat启动和停止 启动:./filebeat -c test.yml 停止:kill -9 PID

    2024年02月16日
    浏览(64)
  • 【分布式应用】Filebeat+ELK 部署、logstash filter四大过滤插件

    节点 IP 组件 Node1节点(2C/4G) node1/192.168.243.100 Elasticsearch Node2节点(2C/4G) node2/192.168.243.102 Elasticsearch Apache节点 apache/192.168.8243.103 Logstash Kibana Apache Filebeat节点 filebeat/192.168.243.104 Filebeat 1.1.1安装 Filebeat 1.1.2设置 filebeat 的主配置文件 1.1.3 在 Logstash 组件所在节点上新建一个 Lo

    2024年02月13日
    浏览(79)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包