4월 26일 쿠버네티스 온라인 세미나 Q&A _ (3) Development, Monitoring, Logging, Registry

NAVER CLOUD PLATFORM
NAVER CLOUD PLATFORM
5 min readMay 8, 2019

‘네이버 클라우드 플랫폼의 개발자들은 컨테이너를 어떻게 사용할까?’

지난 4월 26일 진행하였던 쿠버네티스 웨비나에서 많은 분들이 궁금해하신 질문들과 그에 대한 답변입니다. 컨테이너와 도커, 쿠버네티스 활용에 도움이 되셨으면 합니다.

□ Development​

Q1.

Kubernetes Service는 rolling update만 제공하는 건가요? canary bluegreen과 같은 업데이트 방법도 제공하나요?

A1.

Kubernetes Service의 Deployment Manifest를 수정 시 기본적으로 Rolling Update가 적용됩니다.

Canary Bluegreen 배포를 원하시는 경우 다음 방법들을 검토해보시기 바랍니다.

1. Service에 Deployment 연결 시 Label(https://www.ianlewis.org/en/bluegreen-deployments-kubernetes) 로 지정하여 Blue/Green, Canary 배포를 사용하는 방법

2. istio(https://istio.io/) 와 같은 Service Mesh를 k8s 클러스터에서 운영하는 방법

3. k8s 외부 배포 도구인 spinnaker(https://www.spinnaker.io/) 를 사용하는 방법

Q2.

rolling update에서 old pod과 new pod 간의 동기화는 어떻게 이루어지나요? new pod를 띄우기 전에 old pod으로 가는 access가 막히나요? 그렇지 않으면 old pod에 가해진 update는 lost 되지 않나요?

A2.

Rolling Update로 Pod가 업데이트되는 경우 Old / New Pod가 공존하기 때문에 해당 이슈가 발생할 수 있습니다.

이 이슈를 해결하기 위해서는 Blue/Green 배포를 적용해보는 것을 권장 드립니다.

참고: https://www.ianlewis.org/en/bluegreen-deployments-kubernetes

□ Logging / Monitoring

Q1.

운영 중인 컨테이너의 백업은 어떤 식으로 하는지 궁금합니다. 각 컨테이너에서 발생하는 로그는 어떤 식으로 관리를 하는 것이 좋을지도 궁금하네요.

A1.

1. 컨테이너 백업: NCP NAS 상품과 연동을 통해 PV를 사용하면 컨테이너 내부의 데이터 백업을 할 수 있습니다.

2. 컨테이너 로그: 발생되는 로그는 fluent를 이용하여 수집하고, 수집된 정보를 elasticsearch에 저장 후 kibana에서 로그 정보를 확인할 수 있습니다.

Q2.

모니터링에 대해 prometeus가 사용되는 것으로 장표를 보았는데 pod를 만들면 자동으로 모니터링이 추가되고 정의한 임계치를 적용하고 이를 알람 받을 수 있을까요?

추가로 관리를 해야 할 모니터링 메트릭을 알려주시면 감사하겠습니다.

A2.

임계치에 대한 알람 기능은 prometheus의 alertmanager(https://prometheus.io/docs/alerting/alertmanager/) 을 이용할 수 있습니다.

Kubernetes Service에는 19개의 Object Types이 존재합니다. 각 타입에 대한 메트릭 정보는 kube-state-metrics이 트래킹 하는데요. 서비스 성격에 따라 주요 Object의 정보를 확인하시면 됩니다.

그리고 Grafana에 간단히 k8s용 대시보드를 적용할 수 있는 링크를 아래 추가하였습니다.

- kube-state-metrics:

https://blog.freshtracks.io/a-deep-dive-into-kubernetes-metrics-part-6-kube-state-metrics-14f4e7c8710b

-Grafana k8s dashboard:

https://grafana.com/dashboards/8588,

https://grafana.com/dashboards/1621,

https://grafana.com/dashboards/315

Q3.

k8s pod 가 중지되었을 때 새로운 IP로 서비스가 될 것 같은데 이 경우 프로메테우스에서는 어떻게 새로운 pod의 상태를 알 수 있나요?

A3.

모든 Pod는 다음과 같은 Name Convention을 가지고 있습니다.

Replica Sets Name + ‘-’ + identifier => apm-server-566bb86844–5c2pf

새로운 Pod인 경우 해당 Pod에 새로운 identifier가 부여되어서, 프로메테우스와 연동된 Grafana에서 확인할 수 있습니다.

https://grafana.com/api/dashboards/315/images/575/image

https://grafana.com/dashboards/315

□ Registry

Q1.

Container Registry 는 환경 제약사항이 없나요? 즉 네이버 클라우드 플랫폼에 Lockin 된다는 건 아닌지? 아니면 다른 Pulic Cloud 또는 사설 OpenStack에도 사용 가능한가요? 가능하다면 어떻게 지원 가능한지 설명 부탁합니다.

A1.

네이버 클라우드 플랫폼의 Container Registry는 Docker Registry v2 스펙을 기반으로 제공하며, 해당 스펙은 공개되어 있는 스펙으로 특별히 Vendor-lock in 요소가 존재하지 않습니다. 사용하기 위한 인증으로는 네이버 클라우드 플랫폼 콘솔에서 획득할 수 있는 인증키를 이용하며, 해당 인증키를 통해 레지스트리에 로그인 후 사용할 수 있습니다. 로그인 방법으로는 Docker CLI를 통해 터미널창에 docker login 명령을 이용한 방법 혹은 쿠버네티스에서 제공하는 방법을 이용하시면 되며, 이는 모두 표준 방식을 따르고 있습니다.

--

--

NAVER CLOUD PLATFORM
NAVER CLOUD PLATFORM

We provide cloud-based information technology services for industry leaders from startups to enterprises.