
인프런 워밍업 클럽 - DevOps 발자국 (2주차)
학습내용
섹션8
쿠버네티스 probe에 대해 공부했습니다.
probe는 pod App의 초기화, 어플리케이션의 기동여부, 장애 발생여부 등을 확인하고, 결과에 따라 쿠버네티스가 어떤 동작을 취해야하는지 알려주는 기술로 이해했습니다.
강사님 말씀에 따르면 쿠버네티스에 정말 다양한 오픈소스들이 많으나, pod의 probe만큼은 정말 깊게 파야할 정도로 중요한 기능이라고 했는데, 확실히 쿠버네티스의 핵심적인 장점들과 밀접한 관련이 있는 것 같습니다.
섹션9
쿠버네티스에서 제공하는 기능인 configmap과 secret을 학습했습니다.
configmap과 secret은 앱이 초기화되거나 실행될 때 필요한 설정값을 작성해둘 수 있는 기능입니다.
configmap은 환경변수 형태와 volume 마운트형태로 사용할 수 있는데, 앱실행 이후 configmap을 변경했을 때 그 차이가 있습니다. (환경변수 형태는 앱을 재시작하지 않는 이상 반영되지 않고, volume은 반영됨. 다만 강의 내에선 5초간격으로 app이 volume 값을 확인하였는데, 이 세팅이 강의 내 쿠버네티스에서만 적용된 것인지는 아직 잘 모르겠습니다)
secret은 configmap과 유사한데, 값들을 base64로 인코딩하여 저장한다는 점이 특징입니다.
base64는 구글링만 해봐도 디코딩사이트가 나오기 때문에 사실상 보안강화 효과는 거의 없고, 제대로 된 보안을 적용하려면 자체적으로 암호화를 하거나, 서드파티를 사용해 따로 암호화 하거나, 아예 secret을 쓰지 말고 쿠버네티스 내부에 값을 적용시켜야 합니다.
그 외에도 secret은 type속성을 사용하여 도커허브나 tls 등 다른 기능을 사용할 때 필요한 값을 적용하는 템플릿의 역할도 수행할 수 있습니다.
섹션10
이번 섹션에선 pv/pvc와 Deployment, Service, HPA 등의 역할에 대해 배웠습니다.
pv/pvc는 쿠버네티스의 스토리지 기능으로, pod가 죽어도 데이터가 유지되는 볼륨입니다.
pod는 자주 죽기 때문에 pv pvc는 매우 유요한 기능입니다.
Deployment는 쿠버네티스 pod 업데이트와 관련된 기능입니다.
Recreate와 RollingUpdate 방식이 있는데, 파드를 어떻게 업데이트 하는지 알 수 있습니다.
Recreate의 경우 기존 pod를 완전 삭제하고 업데이트된 pod를 새로 만드는 방식입니다. 이 과정에서 pod가 전부 내려가고 생성완료되기 직전의 시점 동안 앱서비스가 중지됩니다.
RollingUpdate는 업데이트된 pod를 미리 생성하고, 정상적으로 완료되면 기존 pod를 삭제하는 방식입니다. 덕분에 앱서비스가 중지되는 일은 없으나 리소스 사용량이 배가 됩니다.
Service는 pod를 지정하고, 연결하는데 사용되며, 쿠버네티스의 로드밸런싱 기능도 담당합니다.
pod는 삭제되면 ip가 변경되기 때문에 Service를 활용해 통신합니다.
HPA는 부하상태를 확인하여 스케일 i n/out 하는 역할입니다.
제대로 감시할 수 있는 리소스가 CPU 뿐이라 기본 기능만으론 살짝 애매하며, 예상치 못한 부하에는 장사가 없다는 강사님 말씀처럼 오토스케일링 기능이 있어도 scale out 전에 기존 pod가 모두 죽어버려 앱서비스가 중단되는 경우가 많다고 합니다.
섹션11
VM생성 부터 쿠버네티스 클러스터 설치까지 전체적인 흐름을 살펴보고 주요 컴포넌트 로그 확인하는 법에 대해 알아보았습니다.
인프라엔 네트워크,볼륨,환경변수 라는 요소들이 있는데, 이러한 요소들을 쿠버네티스는 오브젝트로 정의하였습니다.
또한 이러한 오브젝트를 자동화하기 위해 쿠버네티스는 컨트롤러라는 개념을 만들었습니다.
여기서 오브젝트와 컨트롤러가 쿠버네티스 리소스입니다.
etcd는 쿠버네티스의 데이터를 저장하는 key-value형태의 데이터베이스입니다. 클러스터 상태를 추적하는데 필수입니다.
회고
섹션10까지는 각각의 기능이 왜 필요하고 어떤 역할을 하는지 공부하는데 뭔가 완벽하게 이해가 되기보단 답답한 느낌이 있었다. 그러다 섹션11에서 VM생성부터 쿠버네티스 리소스까지 그려진 전체적인 구성도와 함께 강사님의 설명을 다시 들으니 뭔가 막혔던게 뚫리는 느낌이 들었다(100% 이해가 됐다는 뜻은 아니다).
강사님께서 가성비있게 흥미 위주로 공부하고 싶다면, 하나하나 너무 깊게 파고드는 것보단(어차피 안하고 시간지나면 잊어버리니) 전체적인 구성을 파악하는게 좋다고 하셨는데, 확실히 흐름을 이해하면서 공부를 해야 효율이 높겠다는 생각이 드는 2주차였다.
댓글을 작성해보세요.