본문 바로가기

개발47

Kubernetes Statefulset / 쿠버네티스, 워크로드, 스테이트풀셋, 서비스 Kubernetes Statefulset Statefulset은 application의 상태를 관리해주는 API 오브젝트 Deployment와 비슷하게 container spec에 기반을 두지만, Pod간 독자성을 제공 즉, persistent한 식별자를 제공해주며 네트워크, 스토리지, 순서등의 기능이 있다는 뜻 말 그대로 stateless한 서비스에는 지금까지 공부한 다른 것들을 이용해도 되지만, stateful한 서비스 (ex. DB, network)등에 대해서는 Statefulset을 사용하여 서비스해야함 Deployment에서 Replicas를 1로 고정하여 사용해도 되긴 하지만, 기능과 의미를 완벽히 보장하지 않기에 권장하지 않음 간단하게 정리하자면 - Deployment(Replicaset) .. 2023. 1. 27.
Kubernetes Deployment / 쿠버네티스, 패턴, pattern, 선언적 배포, 디플로이먼트 Kubernetes Deployment Deployment는 container그룹(Pod, ReplicaSet)들의 업그레이드, 롤백 등 배포관련 프로세스를 캡슐화하고 반복, 자동화에 도움을 줌 Self-service방식으로 서비스를 배포하다보면 서비스의 수가 증가할수록 업데이트, 배포에 부담이 커짐 새로운 버전 시작, 기존 파드 안전하게 중지, 새로운 파드 상태 확인, 실패시 롤백 등의 동작이 필요 많은 서비스에 대해 앞선 동작들을 수동으로 하면 문제가 생길 포인트가 많아짐 이런 동작들을 자동화 해주는 것이 Deployment 개념 업데이트 관리, 개별 적용, 배포 프로세스 조정 등 다양한 기능을 사용가능 개발공부를 하다보면 다양한 배포전략이 존재하는 걸 알 수 있는데, Deployment에서도 Rol.. 2023. 1. 26.
Kubernetes ConfigMap / 쿠버네티스, 패턴, pattern, 환경변수, 설정, 컨피그맵, CM Kubernetes ConfigMap 설정 정보를 key-value 값으로 저장 key-value외에도 conf파일 자체를 저장할 수 있음 최대 1MB의 사이즈 저장 가능 kubectl을 통해 파일 참조하여 생성, 직접 값 전달하여 생성할 수 있음 추가로 manifest로도 생성 가능 #파일 참조 $ kubectl create configmap sample-configmap --from-file=./nginx.conf #직접 전달 $ kubectl create configmap sample-configmap --from-literal=NODE_ENV=production #manifest 생성 apiVersion: v1 kind: ConfigMap metadata: name: ~~ data: NODE_EN.. 2023. 1. 25.
Kubernetes EnvVar / 쿠버네티스, 패턴, pattern, 환경변수, dockerfile, env Kubernetes EnvVar Application은 서비스 접근, 분리 등등 다양한 케이스에서 설정이 필요 Application 내부에 환경변수를 설정하는것은 옳지 않음 Container영역에서 사용할 수 있도록 해주는 것이 EnvVar 👎bad case, 하드코딩된 기본 설정값을 사용하는 방식 예전에 Dockerfile에 대해 공부할 때 사용했던 ENV 명령어로 직접 정의 가능 https://dev-chicken.tistory.com/22 Container Image / 컨테이너 이미지, Kubernetes, Docker, Dockerfile Container Image 컨테이너 이미지는 root filesystem과 이미지 설정 정보로 저장 즉 이미지는 root filesystem에 복사되어 사용.. 2023. 1. 25.
Kubernetes Sidecar Container / 쿠버네티스, 사이드카, 컨테이너, 패턴, pattern Kubernetes Sidecar Container 기존에 사용중인 container의 변경 없이 기능을 확장하기 위해 활용되는 것이 Sidecar container Layer을 나눠서 기능별로 구분하여 사용하면 확장성과 재사용 측면에서 유리 이미 만들어진 container를 활용하여 추가 서비스를 붙이는 것으로, 시간 절약 / 리소스 효율화 등이 목적 독립적으로 구성 -> 확장성, 재사용에 유리한 이유 하나의 pod 에 배치되는 container는 pod의 정보를 공유함 즉, pod에서 내부의 container들이 volume을 공유하고, local network, host IPC를 통해 서로 통신이 가능하다는 뜻 주기적으로 외부에서 GIT정보를 동기화 해야하는 경우 Sidecar container를 .. 2023. 1. 23.
Kubernetes Pod Lifecycle / container, pod, 수명주기, 관리 Kubernetes Pod Lifecycle Cloud native한 container app은 스스로 lifecycle을 제어하기보단 Kubernetes와 같은 ochestration tool에 의해 lifecycle이 관리됨 관리플랫폼에 의해 이벤트를 받고, 응답하며 조절 Liveness probe, Readiness probe 와 연계되어 container의 상태를 Kubernetes가 알 수 있고, 정책이나 외부요인에 따라 시작이나 중지가 될 수 있음 어떻게 처리가 되는지는 각 container에 따라 미리 정의해둔 명세에 의해 동작을 함 추가로 probe 상태에 관계없이 따로 동작할 수도 있음 대표적으로 Kubernetes에서 제공하는 관리기능은 대표적으로 PreStop Hook, PostSta.. 2023. 1. 22.
반응형