2022. 6. 17. 10:38ㆍ프로그래밍 개발(Development)/k8s
k8s에 Kibana를 구축 하는 방법에 대해서 알아보겠습니다.
Kibana 구축 이전에 Elasticsearch와 Logstash 구축 방법이 필요하신 분은 아래를 참조 하세요.
k8s에 Elasticsearch 구축은 아래의 링크를 참조하세요.
2022.06.16 - [프로그래밍 개발(Development)/k8s] - Kubernetes에 ELK(Elasticsearch) 구축하기 #1
k8s에 Logstash 구축은 아래를 참조하세요.
2022.06.16 - [프로그래밍 개발(Development)/k8s] - Kubernetes에 ELK(Logstash) 구축하기 #2
Kibana
1. kibana-configmap.yaml
kibana.yaml 파일을 configmap을 통해서 관리한다.
apiVersion: v1
kind: ConfigMap
metadata:
namespace: elk
name: kibana-config
labels:
app: kibana
data:
kibana.yml: |-
server.host: 0.0.0.0
elasticsearch.hosts: ${ELASTICSEARCH_HOSTS}
#elasticsearch:
# hosts: ${ELASTICSEARCH_HOSTS}
# username: ${ELASTICSEARCH_USER}
# password: ${ELASTICSEARCH_PASSWORD}
2. kibana-deployment.yaml
elasticsearch url은 logstash에서 설명한 내용과 동일하게 {elasticsearch service name} : {elasticsearch service port} 이다
ex) http://elasticsearch-svc:9200
elasticsearch service name : elasticsearch-svc
elasticsearch service port : 9200
ex) http://esservice:9300
elasticsearch service name : esservice
elasticsearch service port : 9300
apiVersion: apps/v1
kind: Deployment
metadata:
namespace: elk
name: kibana
labels:
app: kibana
spec:
replicas: 1
selector:
matchLabels:
app: kibana
template:
metadata:
labels:
app: kibana
spec:
containers:
- name: kibana
#image: docker.elastic.co/kibana/kibana-oss:7.9.3
image: docker.elastic.co/kibana/kibana-oss:6.8.23
imagePullPolicy: IfNotPresent
ports:
- containerPort: 5601
name: view
env:
- name: ELASTICSEARCH_HOSTS
value: "http://elasticsearch:9200"
#- name: ELASTICSEARCH_USER
# value: "elastic"
#- name: ELASTICSEARCH_PASSWORD
# valueFrom:
# secretKeyRef:
# name: elasticsearch-pw-elastic
# key: password
volumeMounts:
- name: config
mountPath: /usr/share/kibana/config/kibana.yml
readOnly: true
subPath: kibana.yml
- name: tz-seoul
mountPath: /etc/localtime
volumes:
- name: config
configMap:
name: kibana-config
- name: tz-seoul
hostPath:
path: /usr/share/zoneinfo/Asia/Seoul
3. kibana-service.yaml
kibana는 view가 목적이기 때문에 외부망 연결은 대부분 허용한다.
상황에 따라 NodePort or LoadBalancer를 사용할 수 있다.
nodePort는 30000 ~ 32767 범위 내에서 사용자 입력이 가능하며 입력 하지 않을 경우 임의의 포트로 연결이 된다.
apiVersion: v1
kind: Service
metadata:
namespace: elk
name: kibana
labels:
app: kibana
spec:
ports:
- port: 33000
name: view
targetPort: 5601
#nodePort: 30930
#type: NodePort
#type: LoadBalancer
externalIPs:
- 192.168.1.10
selector:
app: kibana
4. Kibana 접속 확인
http://{externalip}:{port}
ex) http://192.168.1.10:33000
소스코드는 Github에서 다운로드 할 수 있다.
Github : https://github.com/Byeongin-Jeong/kubernetes
'프로그래밍 개발(Development) > k8s' 카테고리의 다른 글
Kubernetes에 RabbitMQ 구축하기 (0) | 2022.06.27 |
---|---|
쿠버네티스 컨테이너 타임존 설정하기(Setting the Kubernetes container timezone) (0) | 2022.06.17 |
Kubernetes에 ELK(Logstash) 구축하기 #2 (0) | 2022.06.16 |
Kubernetes에 ELK(Elasticsearch) 구축하기 #1 (0) | 2022.06.16 |
Kubernetes Dashboard 설치(Install k8s dashboard) (0) | 2022.05.23 |