본문 바로가기

전체 글714

[k8s] kube-prometheus #1 - 설치 Amazon EKS를 사용하면서 초기에 Kubernetes 모니터링을 위해 Container Insights를 사용하였으나 500개 이상의 Custom Metric이 CloudWatch에 추가되면서 많은 비용이 발생하게 되었다. 비용 절감을 위해 Container Insights에서 현재는 Prometheus로 변경을 진행하였고, Prometheus를 간단하게 설치 할 수 있는 CoreOS의 kube-prometheus를 사용하였다. CoreOS에서 제공하는 kube-prometheus를 사용하면 Prometheus를 간단하게 설치할 수 있고, 설치 절차는 다음과 같다. 1. Git clone git clone https://github.com/coreos/kube-prometheus.git 2. 의존성.. 2020. 11. 18.
[k8s] DaemonSet 실행 시 Pending 문제 DaemonSet으로 Pod를 실행하면 각 워커노드에 Pod가 하나씩 실행이 되는데 특정 노드에서만 Pending이 발생하는 현상이 있었다. example-9sz7d 1/1 Running 0 3d16h 10.0.62.16 ip-10-0-38-38.ap-northeast-2.compute.internal example-d7jf6 1/1 Running 0 3d16h 10.0.110.150 ip-10-0-96-136.ap-northeast-2.compute.internal example-gdkpk 1/1 Running 0 3d16h 10.0.113.194 ip-10-0-126-203.ap-northeast-2.compute.internal example-jt2lv 1/1 Running 0 3d16h 10.. 2020. 11. 17.
[Go언어] for 루프에서 포인터 사용 시 동일 객체 참조 문제 문제 아래와 같이 for 루프를 사용했다. for _, data := range sampleDataSlice { GetStore().storeOne(&data) } 위 코드를 실행하면 저장된 모든 데이터가 동일한 값을 가지게 된다. 원인 위 코드에서 sampleDataSlice는 slice 이기 때문에 for 루프의 변수로 인덱스와 현 루프의 객체를 변수에 할당한다. 이 때, 인덱스를 사용하지 않고 그 뒤의 변수를 사용하게 될 경우 변수에는 슬라이스에 포함된 현재 요소가 지역 변수에 할당된다. 그러므로 변수에 할당되는 값은 계속 변경되지만 storeOne 함수로 전달되는 변수의 주소는 동일하기 때문에 storeOne 함수 안에서 사용한 변수는 결과적으로 제일 마지막에 지역변수에 할당했던 객체를 동일하게 .. 2020. 11. 17.
[k8s] ALB Ingress 사용 시 다수의 리스너 등록하기 목표 Amazon EKS ALB Ingress controller를 사용하여 ALB를 생성하였고, 하고자하는 목표는 아래와 같았다. Ingress 설정으로 Listen Port를 HTTPS(443) 포트로 지정하였고, Ingress의 rules에 정의되어 있는 대로 URL Path 에 따라 각각 정해진 서비스로 traffic routing 한다. (URL 기반 Routing) → 이 경우에는 정상동작 함을 확인하였다. ... alb.ingress.kubernetes.io/listen-ports: '[{"HTTP": 80}, {"HTTPS": 443}, {"HTTP": 9090}]' ... spec: rules: - http: paths: - path: /grafana* backend: serviceNam.. 2020. 10. 15.