* AWS EKS(Amazon Elastic Kubernetes Service) 에 설치한 기록입니다.
- 기본 설정 적용
kubectl create -f https://download.elastic.co/downloads/eck/2.0.0/crds.yaml
kubectl apply -f https://download.elastic.co/downloads/eck/2.0.0/operator.yaml
- 먼저 PV(PersistentVolume)를 설정해 줍니다. 저렴하게 저장하기위해 st1을 위해 셋팅했습니다.
kind: StorageClass
apiVersion: storage.k8s.io/v1
metadata:
name: hdd
annotations:
storageclass.kubernetes.io/is-default-class: "false"
provisioner: kubernetes.io/aws-ebs
parameters:
type: st1
fsType: ext4
---
apiVersion: v1
kind: PersistentVolume
metadata:
name: pv-elastic
namespace: default
spec:
accessModes:
- ReadWriteOnce
awsElasticBlockStore:
fsType: ext4
volumeID: aws://ap-northeast-2c(리젼)/볼륨ID
capacity:
storage: 500Gi
persistentVolumeReclaimPolicy: Delete
storageClassName: hdd
- ElasticSearch를 생성합니다. 미리 생성한 PV에 자동으로 PVC(PersistentVolumeClaim)가 연결됩니다.
apiVersion: elasticsearch.k8s.elastic.co/v1
kind: Elasticsearch
metadata:
name: es
spec:
version: 8.0.1
nodeSets:
- name: default
count: 1
podTemplate:
spec:
containers:
- name: elasticsearch
env:
- name: ES_JAVA_OPTS
value: -Xms1g -Xmx1g
resources:
requests:
memory: 2Gi
cpu: 2
limits:
memory: 4Gi
volumeClaimTemplates:
- metadata:
name: elasticsearch-data
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 500Gi
storageClassName: hdd
- Kibana를 셋팅합니다.
Ingress는 nginx-ingress기준으로 설정했습니다.
apiVersion: kibana.k8s.elastic.co/v1
kind: Kibana
metadata:
name: es
spec:
version: 8.0.1
count: 1
elasticsearchRef:
name: es
# Please upgrade your browser 메세지 방지
config:
csp.strict: false
http:
tls:
selfSignedCertificate:
disabled: true
podTemplate:
spec:
containers:
- name: kibana
env:
- name: NODE_OPTIONS
value: "--max-old-space-size=1024"
resources:
requests:
memory: 0.5Gi
cpu: 0.5
limits:
memory: 1Gi
cpu: 1
---
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: "kibana-ing"
annotations:
cert-manager.io/cluster-issuer: "letsencrypt-production"
nginx.ingress.kubernetes.io/ssl-redirect: "true"
nginx.ingress.kubernetes.io/ssl-passthrough: "true"
spec:
ingressClassName: nginx
tls:
- hosts:
- kibana.hwani.net
secretName: kibana-tls
rules:
- host: kibana.hwani.net
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: es-kb-http
port:
number: 5601
- 리눅스
kubectl get secret es-es-elastic-user -o=jsonpath='{.data.elastic}' | base64 --decode; echo
- 파워쉘
$s=kubectl get secret es-es-elastic-user -o=jsonpath='{.data.elastic}'
[System.Text.Encoding]::UTF8.GetString([System.Convert]::FromBase64String($s))
https://kibana.hwani.net(설정 도메인) 으로 로 접속하여
아이디 : elastic
암호 : 쉘내용
으로 접속합니다.
기본 설정이 끝났습니다.
반응형
'IT > Kubernetes' 카테고리의 다른 글
WAS에서 Static 파일 전송하기 (0) | 2022.03.12 |
---|---|
CrashLoopBackOff 로 Pod이 시작되지 않을 때 처리 (0) | 2022.03.11 |
AWS 에서 서브 도메인만 연결하기(SSL) (0) | 2022.02.26 |