SKT/[Cloud]
[Kubernetes] - 인프라 서비스
odaebum
2024. 7. 15. 11:27
728x90
Kubernetes를 활용한 배포
Pod
- 인프라 관점에서 pod는 kubernetes에서 사용하는 컴퓨터(리소스)이다.
- pod는 container들을 담고 있으며 배포할 수 있게 도와주는 역할을 한다.
- pod.yaml 파일을 통해 명세서를 작성하고 이를 이용한다.
- pod는 외부로 노출되지 않는다.
Service
- service는 pod들을 관리하는 로드 벨런서 역할을 한다.
- 이때 service의 port는 pod들의 port와 일치해야한다.
pod.yaml 파일 명세서를 작성하고 kubernetes를 통해 자동으로 배포한다.
# pod.yaml
apiVersion: v1
kind: Pod
metadata:
name: flaskpod
labels:
app: flaskapp
spec:
containers:
- name: flask
image: odaebum/flaskapp
ports:
- containerPort: 5000 # <<--- 중요
# service.yaml
apiVersion: v1
kind: Service
metadata:
name: my-nginx
spec:
type: NodePort
ports:
- port: 5000 #<<---- 중요
protocol: TCP
selector:
app: flaskapp
이때 pod.yaml 의 ports -> containerPort와 service.yaml의 port번호를 일치시켜줘야한다.
또한 label을 이용하는 것이 중요하다.
kubectl apply -f pod.yaml
kubectl apply -f service.yaml
위 코드를 통해서 적용한다.
잘 적용된 pod와 service를 get 명령어를 통해서 볼 수 있다.
내가 설정한 service 이름은 my-nginx 이므로, port번호 32395를 통해서 배포가 되었는지 확인할 수 있다.
728x90