0. 개요
KIND(Kubernetes IN Docker)는 Docker의 컨테이너를 노드로 사용해 k8s를 쉽게 구축할 수 있도록 하는 도구입니다.
로컬에서 간단하게 k8s를 구축하여 테스트 하는 용도로 주요 사용합니다.
이 글은 WSL 2 환경에서 k8s 구축 및 nginx를 배포하여 연결하는 실습을 해 보겠습니다.
1. KIND로 k8s 구축
KIND를 설치하는 명령어는 아래와 같습니다.
[ $(uname -m) = x86_64 ] && curl -Lo ./kind https://kind.sigs.k8s.io/dl/v0.21.0/kind-linux-amd64
쉽게 사용하기 위해 파일 권한 변경 및 파일 이동을 해 보겠습니다.
$ chmod +x ./kind
$ sudo mv ./kind /usr/local/bin/kind
이제 KIND로 k8s를 구축하겠습니다.
먼저 k8s 구축을 위한 yaml 파일을 만듭니다.
// custom-k8s.yaml
kind: Cluster
apiVersion: kind.x-k8s.io/v1alpha4
nodes:
- role: control-plane
extraPortMappings:
- containerPort: 30000
hostPort: 30000
protocol: TCP
- role: worker
- role: worker
해당 파일을 사용해 k8s를 구축하는 명령어는 아래와 같습니다.
kind create cluster --name custom-k8s --config=custom-k8s.yaml
위에서 KIND는 도커 컨테이너를 노드로 사용한다고 언급했었습니다.
그림과 같이 노드의 개수만큼 컨테이너가 생성된 것을 알 수 있습니다.
2. nginx 배포하기
k8s에서 기본 배포 단위는 디플로이먼트입니다.
nginx를 디플로이먼트로 배포하겠습니다.
kubectl create deployment nginx --image=nginx --port=80
만들어진 nginx는 아래 명령어를 통해 어느 워커 노드에 배포되었는지 확인할 수 있습니다.
kubectl get pods -o wide
k8s에서는 배포한 서버를 서비스를 통해 노출해야합니다.
nginx 서버를 노출할 서비스를 만들겠습니다.
kubectl create service nodeport nginx --tcp=80:80 --node-port=30000
클러스터를 만들 때 사용한 custom-k8s.yaml에서 30000번 노드 포트를 노출했기 때문에, 똑같이 30000번 노드 포트를 사용했습니다.
서비스 정보는 아래 명령어로 조회할 수 있습니다.
kubectl get service
nginx를 배포 및 노출을 완료했으니 host에서도 접속할 수 있습니다.
실습은 끝났으니 아래 명령어로 클러스터를 삭제하시면됩니다.
kind delete cluster --name custom-k8s
'쿠버네티스' 카테고리의 다른 글
윈도우에서 쿠버네티스 구축하기 (0) | 2024.09.16 |
---|---|
Kubeadm, Kubespary, kOps, Cluster API 설명 및 비교 (0) | 2024.06.11 |
쿠버네티스 및 jMetter를 사용한 서버 부하 테스트 With 가상스레드 (0) | 2024.05.26 |
파드 리소스 조정으로 속도 향상 (0) | 2024.05.26 |
리소스 부족과 eks scale 수정 (0) | 2024.05.26 |