2 Feb 2022

ELK 구성및 APM 도입

APM 구성

service

apiVersion: v1
kind: Service
metadata:
  name: apmserver
spec:
  ports:
  - name: apmserver-nodeport
    nodePort: 30082
    port: 8200
    protocol: TCP
    targetPort: 8200
  selector:
    app.kubernetes.io/name: apmserver
  type: NodePort

deployment

apiVersion: apps/v1
kind: Deployment
metadata:
  labels:
    app.kubernetes.io/name: apmserver
  name: apm-server
spec:
  replicas: 1
  selector:
    matchLabels:
      app.kubernetes.io/name: apmserver
  template:
    metadata:
      labels:
        app.kubernetes.io/name: apmserver
    spec:
      containers:
      - name: apmserver
        image: docker.elastic.co/apm/apm-server:7.3.2
        ports:
        - containerPort: 8200
          name: http
          protocol: TCP
        resources: {}
        volumeMounts:
        - mountPath: /usr/share/apm-server/apm-server.yml
          name: apmserver-config
          readOnly: true
          subPath: apm-server.yml
      volumes:
      - configMap:
          defaultMode: 420
          name: apmserver-config
        name: apmserver-config

configMap

apiVersion: v1
kind: ConfigMap
metadata:
  labels:
    app.kubernetes.io/name: apmserver
  name: apmserver-config
data:
  apm-server.yml: |-
    apm-server:
      host: "0.0.0.0:8200"
    output.elasticsearch:
      hosts: [ "http://elasticsearch-svc.elastic.svc.cluster.local:9200" ]


elasticSearch 구성

elasticSearch service

apiVersion: v1
kind: Service
metadata:
  labels:
    app: elasticsearch
  name: elasticsearch-svc
  namespace: elastic
spec:
  ports:
  - name: elasticsearch-rest
    nodePort: 30920
    port: 9200
    protocol: TCP
    targetPort: 9200
  - name: elasticsearch-nodecom
    nodePort: 30930
    port: 9300
    protocol: TCP
    targetPort: 9300
  selector:
    app: elasticsearch
  type: NodePort

elasticSearch deployment

apiVersion: apps/v1
kind: Deployment
metadata:
  name: elasticsearch
  namespace: elastic
  labels:
    app: elasticsearch
spec:
  replicas: 1
  selector:
    matchLabels:
      app: elasticsearch
  template:
    metadata:
      labels:
        app: elasticsearch
    spec:
      containers:
      - name: elasticsearch
        image: elastic/elasticsearch:7.15.0
        env:
        - name: discovery.type
          value: single-node
        ports:
        - containerPort: 9200
        - containerPort: 9300


kibana 구성

kibana service

apiVersion: v1
kind: Service
metadata:
  labels:
    app: kibana
  name: kibana-svc
  namespace: elastic
spec:
  ports:
  - nodePort: 30561
    port: 5601
    protocol: TCP
    targetPort: 5601
  selector:
    app: kibana
  type: NodePort

kibana deployment

apiVersion: apps/v1
kind: Deployment
metadata:
  name: kibana
  namespace: elastic
  labels:
    app: kibana
spec:
  replicas: 1
  selector:
    matchLabels:
      app: kibana
  template:
    metadata:
      labels:
        app: kibana
    spec:
      containers:
      - name: kibana
        image: elastic/kibana:7.15.0
        env:
        - name: SERVER_NAME
          value: "kibana.kubenetes.example.com"
        - name: SERVER_HOST
          value: "0.0.0.0"
        - name: ELASTICSEARCH_HOSTS
          value: "http://elasticsearch-svc.elastic.svc.cluster.local:9200"
        ports:
        - containerPort: 5601

Tags:
0 comments