minikube 설치하기
터미널에서 minikube 설치하기
- 기본적으로 docker가 설치되어 있어야함
$ brew install minikube # minikube 설치
$ orbctl start # docker 실행
$ docker ps # docker 실행 중인지 확인
$ minikube start # minikube 시작
정상적으로 설치됬는지 확인하기
$ kubecl get node

kubectl 명령으로 pod 실행하기
다음과 같이 pod의 이름과 대상 이미지를 지정하고 실행하기
$ kubectl run nginx --image=nginx:latest
$ kubectl get pod

describe 명령을 통해 pod를 자세히 확인하면, 기본 디폴트 namespace에 생성되었으며 고유한 IP 주소가 할당됨
- 클러스터 네트워크 내에서 IP 주소는 고유함
- 다른 Pod와 IP를 통해 직접 통신
- Pod가 삭제되거나 다시 생성되면 IP가 변경됨
$ kubectl describe pod nginx

containers 부분에서는 dockerhub에서 nginx 이미지를 가져와 컨테이너를 실행한 것을 확인할 수 있음

현재 pod의 상태

Pod가 생성되고 실행되기까지의 주요 이벤트 로그
- nignx 이미지를 가져오고, 컨테이너 생성 후 실행한 로그가 남음

포트 포워딩을 통해 외부 접근
- 임시 연결로 명령어를 종료하면 포트 포워딩이 중단됨
$ kubectl port-forward nginx 8080:80

loalhost:8080로 nginx에 접속할 수 있음

kubectl 명령으로 Service 생성하기
nginx pod를 외부 네트워크와 연결하기 위해 서비스 생성하기
$ kubectl expose pod nginx --port=80 --target-port=80
- pod: 서비스를 생성할 대상 리소스의 유형
- nginx: 서비스를 생성할 대상 리소스의 이름
- -port: 서비스의 포트 번호
- -target-port: 대상 Pod의 컨테이너에서 노출된 포트
서비스 목록을 확인해보면, nginx 서비스가 생성됨
$ kubectl get svc

nginx 서비스 편집하기
- nodePort: 외부에 노출할 포트 입력
- type: NodePort으로 지정
$ kubectl edit svc nginx

서비스 확인하면, Pod 내부의 80번 포트가 서비스를 통해 클러스터 외부의 30123번 포트로 매핑된 상태
$ kubectl get svc

Minikube IP 확인하고, <IP주소>:30123으로 접속
$ minikube ip

pod와 service는 label과 selector로 연결되어 있음
- run=nginx는 이 서비스가 트래픽을 전달할 대상 Pod을 지정하는 라벨 셀렉터
- 10.244.0.3:80는 서비스가 트래픽을 전달할 Pod의 IP와 포트

'DevOps > Kubernetes' 카테고리의 다른 글
[k8s] Service (0) | 2025.01.09 |
---|---|
[k8s] Deployment (0) | 2025.01.09 |
[k8s] Pod (0) | 2025.01.09 |
[k8s] Kubernetes 개념 및 구성요소 (0) | 2024.10.21 |
[k8s] Kubernetes Cluster 구축하기 (v1.31) (0) | 2024.10.10 |