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