728x90
2023.10.10 - [Cloud&DevOps/GCP] - GCP GKE 클러스터 생성 | 구글 클라우드 플랫폼, 쿠버네티스
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