[Kubernetes] Pod - LifeCycle
·
Infra/Kubernetes
오랜만에 `K8s` 공부를 다시 시작했다. 인프런의 일프로님의 강의를 보며 학습을 이어간다. 거두절미하고 `Pod`의 라이프사이클에 관해 정리한 내용을 포스팅하려 한다. Pod - LifeCycle`Pod`에는 라이프사이클이 존재하고 어떤 `Pod`든 생성되고 사라지기까지 일정한 단계를 거치게 된다. 그리고 `Pod` 라이프사이클의 특징은 각 단계에 따라 행해지는 행동이 다르기에 라이프사이클에 대해 잘 알아야 한다. `Pod` 라이프사이클 핵심 간단 정리PendingReadinessProbePolicyRunningLivenessProbeQosSucceededPolicyFailedUnknown 아래 사진은 `Pod`의 라이프사이클과 관련 요약이라고 생각하면 편할 것이다.  Pending -> Running..
[Kubernetes] ConfigMap, Secret - Env, Mount
·
Infra/Kubernetes
Kubernetes  이번 포스팅에서는 `ConfigMap`과 `Secret`에 관한 설명이다. 설명하기에 앞서 해당 오브젝트를 사용해야 하는 상황은 어떤 경우일까? 개발 환경과 상용 환경이 있다고 하자.또한, A라는 서비스가 있다고 가정하자. 이때, A 서비스에는 일반 접근과 보안 접근이 가능하다. A 서비스(개발 환경)SSH: FalseUser: DevKey: LS0tLs... 따라서, 개발 환경에서는 해당 보안 접근을 해제할 수 있는 옵션이 있다.(`SSH : False`)만약, 보안 접근을 한다면 접근 유저와 키를 세팅할 수도 있다.(`User: Dev`, `Key: LS0tLs`)  개발 환경에서는 위처럼 사용한다고 하고, 상용 환경에서 배포를 해야 한다면 해당 값은 변경되어야 할 것이다. A ..
[Kubernetes] Volume - emptyDir, hostPath, PV/PVC
·
Infra/Kubernetes
Kubernetes  이번 포스팅에서는 `emptyDir`과 `hostPath` 그리고 `pvc`와 `pv`라고 하는퍼시스턴트 볼륨 클라임과 퍼시스턴트 볼륨에 관해 알아보도록 하자.   emptyDir 먼저 `emptyDir`은 컨테이너들끼리 데이터를 공유하기 위해 `Volume`을 사용하는 것이다.최초로 해당 `Volume` 이 생성될 때는 항상 해당 `Volume`안의 내용이 비어있기 때문에 `emptyDir`이라는 명칭이 붙어졌다. 만약, 컨테이너1이 웹 역할을 하는 서버이고 컨테이너2가 백엔드단을 처리해주는 서버라고 했을 때, 해당 웹서버로 받은 어떤 특정 파일을 마운트가 된 `Volume`에 저장을 해놓고,백엔드단의 컨테이너 역시 해당 볼륨을 마운트를 하면 이 두 서버가 해당 `Volume`을 ..
[Kubernetes] Service - ClusterIP, NodePort, LoadBalancer
·
Infra/Kubernetes
Kubernetes  Service  서비스는 기본적으로 자신의 `클러스터 IP`를 가지고 있다.그리고 이 서비스를 파드에 연결을 시켜 놓으면 서비스의 IP를 통해서 파드에 접근이 가능하다. 그런데, 전 포스팅에서 살펴본 것처럼 파드도 똑같이 클러스터 내에서 접근할 수 있는 IP가 있었다.  그렇다면 굳이 왜 서비스를 이용하는 것일까?  사용 이유 `Pod`라는 존재는 `Kubernetes`에서 시스템 장애건, 성능 장애건 언제든지 죽을 수가 있다.그리고 그때 다시 재생성 되도록 설계가 되어있는 오브젝트이다. 근데 이때, `Pod`는 재생성시 IP가 변경된다. 따라서, 이 파드의 IP는 신뢰성이 떨어진다.그러나, `Pod`와는 별개로 서비스는 사용자가 직접 지우지 않는 한 삭제되거나 재생성되지 않는다. ..
[Kubernetes] Pod - Container, Label, NodeSchedule
·
Infra/Kubernetes
Kubernetes   Pod`Pod` 안에는 하나의 독립적인 서비스를 구동할 수 있는 `컨테이너`들이 존재한다.해당 `컨테이너`는 서비스가 연결될 수 있도록 포트를 가지고 있는데, 한 `컨테이너`가 포트를 여러 개는 가질 수 있지만, 한 `Pod`내에서 포트가 중복될 순 없다. 한 `Pod` 내에서 컨테이너는 `localhost:{해당 컨테이너 포트}`으로 접근할 수 있다.  그리고 `Pod`는 생성이 될 때 고유의 IP 주소가 할당이 된다.하지만, 이는 `Kubernetes Cluster` 내부에서만 접속이 가능하고, 외부에서는 접속이 불가능하다. 또한, 만약 `Pod`에 문제가 생기면 시스템이 이걸 감지해서 `Pod`를 삭제하고 다시 재성성한다.이때, 고유의 IP 주소는 변경이 된다. 즉, 휘발성이..
[Kubernetes] 왜 쿠버네티스인가?
·
Infra/Kubernetes
Kubernetes 우리는 어떤 서비스든 원활하게 진행되기 위해서는 충분한 서버 자원이 있어야 한다는 것을 알고있다.신규 게임의 서버 문제수강신청등쿠버네티스는 위의 문제 발생시 다양한 방법으로 문제해결을 진행한다.예제 시나리오.한 회사에서 3개의 서비스를 오픈하고 있다고 하자.이른 아침에는 A 서비스의 접속량이 높다.3대의 서비스정오가 되면 B 서비스만 접속량이 높다.3대의 서비스밤이 되면 C 서비스만 접속량이 높다.3대의 서비스세가지 서비스 모두 다른 시간대의 트래픽이 적더라도 특정 시간의 서비스 운영을 위해서3대의 서비스가 필요하다. → 총 9대의 서비스 필요쿠버네티스의 가상화 기술 사용시AutoScaling 하루동안 A, B, C 서비스의 평균 트래픽을 계산해보면 4대분의 자원만 필요하다.이때 쿠버..