Deployment
파드를 묶음으로 쉽게 관리할 수 있는 기능
이전까지는 파드매니패스트 파일을 실행했지만 개수가 많아지면 코드가 늘어나게 되고 관리가 힘들다 그래서
현업에서는 일반적으로 서버를 작동시킬 때 파드(Pod)를 수동으로 배포하진 않는다. 디플로이먼트(Deployment)라는 걸 활용해서 파드(Pod)를 자동으로 배포한다.
디플로이먼트(Deployment)의 장점
- 파드 개수를 지정하는대로 생성이 가능하다
- 파드가 비정상적으로 종료되는경우 새로 파드를 생성해 유지한다
- 즉 일괄적으로 수정, 삭제, 중지, 업데이트 하기가 쉽다
디플로이 먼트 구조
디플로이먼트는 레플리카셋을 관리하고 레플리카 셋은 여러 파드를 관리한다
디플로이먼트 -> 레플리카셋 -> 파드
그래서 디플로이먼트 -> 파드를 관리한다 라고 성립하게 된다
그런데 디플로이먼트로 배포했는데 접속하지 못한다
쿠버네티스의 서비스
외부로부터 요청을 받는 역할과 / 외부로부터 들어오는 트래픽을 받아, 파드에 균등하게 분배해주는 로드밸런서 역할을 하는 기능
실제 서비스에는 직접내부로 들어가서 요청하거나 포트포워딩하는것은 드물다. 주로 서비스를 활용한다
Service 종류
- NodePort : 쿠버네티스 내부에서 해당 서비스에 접속하기 위한 포트를 열고 외부에서 접속 가능하도록 한다.
- ClusterIP : 쿠버네티스 내부에서만 통신할 수 있는 IP 주소를 부여. 외부에서는 요청할 수 없다.
- LoadBalancer : 외부의 로드밸런서(AWS의 로드밸런서 등)를 활용해 외부에서 접속할 수 있도록 연결한다. (즉 AWS ELB사용하면 사용하는것이라고 지금은 이렇게 이해하자)
서버(파드) 개수 조절하는 방법
파드조절은 deployment매니패스트에서 replicas를 수정하고 apply하면 자동으로 된다
apply명령은 마법이다 꼭 새로생성하는게 아니라 update도 해준다
셀프 힐링
docker ps로 컨테이너를 종료해도 자동으로 힐링된다
버전 업데이트
버전업데이트도 도커이미지를 변경해서 다시 apply를 한다면 버전이 바뀌게 적용이 된다