Cloud & Architecture/Kubernetes

GCP Kubernetes GKE Pod 생성, 배포, 접속

Karla Ko 2023. 10. 14. 22:15
728x90

 

 

2023.10.10 - [Cloud&DevOps/GCP] - GCP GKE 클러스터 생성 | 구글 클라우드 플랫폼, 쿠버네티스

 

GCP GKE 클러스터 생성 | 구글 클라우드 플랫폼, 쿠버네티스

https://cloud.google.com https://cloud.google.com 영상 통화, 이메일, 채팅, 문서 공동작업을 한곳에 통합할 수 있습니다. cloud.google.com https://console.cloud.google.com Google 클라우드 플랫폼 로그인 Google 클라우드

karla.tistory.com

 

1. pod 생성

Pod란?
쿠버네티스 애플리케이션의 기본 실행 단위이다. 각 파드는 클러스터에서 실행중인 워크로드(쿠버네티스에서 구동되는 애플리케이션)의 일부를 나타낸다.

 

Kubernetes에서 애플리케이션을 배포하기 위해 create deployment 명령어를 입력한다.

kubectl create deployment dpy-nginx --image=nginx

 

kubectl run nginx --image=nginx

run vs create deployment
run으로 파드를 생성하면 단일 파드 1개만 생성되고 관리된다.
create deployment로 생성하면 디플로이먼트라는 관리 그룹 내에서 파드가 생성된다.
run vs create deployment
run :  초코파이 1개
create deployment : 초코파이 상자에 들어있는 초코파이 1개

 

kubectl get pods

Pod 의 정보를 넓게 출력하여 추가적인 정보를 확인할 수 있다.

kubectl get pod -o wide

Pod의 세부 정보를 확인할 수 있다.

kubectl describe pod [pod NAME]

namespace 는 기본적으로 default 로 정해진다.
Ip 는 있지만, 아직 외부 통신이 불가능하다. 외부 통신을 위해서는 반드시 Service 가 있어야 한다.

 

2. pod 배포

deployment
쿠버네티스에서 가장 많이 쓰이는 디플로이먼트 오브젝트는 파드에 기반을 두고 있으며, 레플리카셋 오브젝트를 합쳐 놓은 형태다.
kubectl expose deployment nginx --port=80 --type=LoadBalancer

kubectl get services

kubectl  get pod,svc,ep
kubectl describe svc

 

[서비스 외부 IP(부하분산기IP)]: [서비스포트]

 

3. pod 접속

kubectl exec -it nginx -- bash

Pod 내부에 들어왔다. 여기서 Port 를 통해 Container 에 들어갈 수 있다.

localhost 는 현재 Pod 의 Ip 이다. Ip는 Pod 에 한 개 할당되며, 안에 Container 들은 Port 로 접속이 가능하다.
따라서, Pod 내부의 Container 들에는 Ip 가 할당되지 않고, Port 로만 사용한다. localhost:80 을 하면, 현재 localhost 주소인 Pod 의 80 번 Port 를 사용하는 nginx Container 를 말하는 것이다.
Pod 접속시 바로 Container 에 들어가는 이유는 Container 가 하나 있기 때문이다. 만약, Container 가 다수가 있다면 Port 를 지정해줘야 한다.

 

 


예약 단축어

이름
축약어
오브젝트 이름
nodes
no
Node
namespaces
ns
Namespace
deployments
deploy
Deployment
pods
po
Pod
services
svc
Service

 

728x90