728x90
- 실행 중인 파드는 클러스터의 가상 네트워크에 포함돼 있음
- 어떻게 액세스 할 수 있을까?
- 외부에서 액세스하려면 서비스 객체를 통해 IP를 노출하는 것이 필요
- LoadBalancer라는 서비스를 작성하면 외부 로드 밸런서가 생성
- 로드 밸런서의 공인 IP를 통해 파드에 연결 가능 (하지만 로컬 쿠버네티스에서는 동작하지 않으며 externalDNS가 필요함, 이 기능은 GKE, EKS 같은 클라우드에서 사용 가능(구글, AWS 계정 필요))
kubectl expose deployment http-go --type=LoadBalancer --name http-go-svc --port=8080 --target-port=8080 #외부에서 접근 가능하도록 서비스를 생성
kubectl get services # 서비스 확인
디플로이먼트, 파드, 서비스가 동작하는 방식 이해
- 사실 실제로 파드도 직접 만들지 않음
- kubectl create deploy 명령을 실행하면 디플로이먼트가 생성
- 디플로이먼트가 실제 파드 객체를 생성
- 해당 디플로이먼트가 관리하는 파드의 포트 8080을 노출하라고 명령 필요

- 디플로이먼트의 역할
- 디플로이먼트는 레플리카셋을 생성
- 레플리카셋은 수를 지정하여 알려주면 그 수만큼 파드를 유지
- 어떤 이유로든 파드가 사라지면 레플리카셋은 누락된 파드를 대체할 새로운 파드를 생성
- 서비스의 역할
- 파드는 일시적이므로 언제든지 사라질 가능성 존재(일회성이 강함, 오류시 삭제후 재생성)
- 파드가 다시 시작되는 경우에는 언제든 IP와 ID 변경됨
- 서비스는 변화하는 파드 IP 주소의 문제를 해결하고 단일 IP 및 포트 쌍에서 여러 개의 파드 노출
- 서비스가 생성되면 정적 IP를 얻게 되고 서비스의 수명 내에서는 변하지 않음
- 클라이언트는 파드에 직접 연결하는 대신 IP 주소를 통해 서비스에 연결
- 서비스는 파드 중 하나로 연결을 포워딩
애플리케이션의 수평 스케일링
- 쿠버네티스를 사용해 얻을 수 있는 큰 이점 중 하나는 간단하게 컨테이너의 확장이 가능하다는 점
- 파드의 개수를 늘리는 것도 쉽게 가능
- 파드는 디플로이먼트가 관리
kubectl scale deployment http-go --replicas=3 # pod를 3개로 복사
kubectl get svc,pod #svc, pod 확인728x90
'데브옵스(DevOps)를 위한 쿠버네티스 마스터 > 쿠버네티스 들어가기' 카테고리의 다른 글
| Go 언어로 작성한 컨테이너 쿠버네티스에 올리기 (0) | 2022.07.09 |
|---|---|
| 쿠버네티스에서 실행할 GO언어 컨테이너 작성 (0) | 2022.07.09 |
| AWS EKS를 활용한 쿠버네티스 사용 (0) | 2022.07.09 |
| GCP에 쿠버네티스 설치 및 실행 (0) | 2022.06.08 |
| 클러스터 구성 및 쿠버네티스 테스트 (0) | 2022.06.06 |