Cloud/k8s

[kubernetes] 어플리케이션 배포

jinkwon.kim 2022. 5. 20. 14:12
728x90
반응형

개요 

본 post는 인프런의 "쿠버네티스-쉽게시작"을 기반으로 작성 되었습니다.

배포 방식

    master-node에서 kubectl을 이용하여 Pod형태로  worker-node에 배포하는 방식

Pod 정의  

1. 정의

    - 특정한 일을 하기위해 필요한 것을 모아서 묶어 놓은 단위 입니다.

      Ex) Webserver를 구성하기 위해서 pod를 구성한다고하면, tomcat container + mysql container로 구성할 수 있습니다. 

2. 구성

    1) container

        - pod안에는 다수의 container가 존재 할 수 있습니다. 

    2) 볼륨

        - 데이터를 저장하는 곳

Pod 배포

1. pod  배포 명령어

    #kubectl run "pod이름" --image="pod 생성에 사용할 image"

    Ex) #kubectl run nginx --image=nginx

배포된 Pod 확인

1. 배포된 pod 확인

    #kubectl get pod -o wide

Pod 외부 접속

1. nodeport

    - service(SVC)의 nodeport를 이용하여 외부에서 pod의 접근을 할 수 있게 해줍니다. 

    - 물리 Node(VM, 혹은 Baremetal)의 특정 Port를 이용하여 내부 POD와 통신하는 방법을 의미합니다

    - 서비스에서 NodePort를 사용하기 위해서는 spec.type 부문을 NodePort로 변경하면 됩니다. 

    - 명령어 예제) 

        #kubectl expose pod nginx --type=NodePort --port=80        #kubectl get service 

2. LoadBalancer

    - service(SVC)의 LoadBalancer 이용하여 외부에서 pod의 접근을 할 수 있게 해줍니다. 

    - 외부에서 들어오는 Traffic 등을 별도의 외부 Object를 통하여 Traffic을 분산시키는 것을 LoadBalancer라고 합니다. 

3. ingresss

    - Ingress는 실제로 서비스 유형이 아닙니다. 대신 여러 서비스 앞에 위치하며 클러스터에 대한 "스마트 라우터" 또는 진입점 역할을 합니다.

  

참조 

https://medium.com/google-cloud/kubernetes-nodeport-vs-loadbalancer-vs-ingress-when-should-i-use-what-922f010849e0

 

Kubernetes NodePort vs LoadBalancer vs Ingress? When should I use what?

Recently, someone asked me what the difference between NodePorts, LoadBalancers, and Ingress were. They are all different ways to get…

medium.com

 

728x90
반응형