티스토리 뷰
[Kubernetes] 1. Ubuntu에 Kubernetes 설치하기
https://domdom.tistory.com/591
[Kubernetes] 2. Kubernetes 위에 hello kubernetes bootcamp! 프로젝트 배포해보기
1편에서 만들어놓았던 마스터노드와 워커노드입니다.
kubectl get 명령어를 통해 상태를 확인할 수 있습니다. 현재 아무런 Pod도 생성하지 않았으므로,
No resources found in default namespace. 메세지가 뜨고 있습니다.
kubectl get nodes
kubectl get pods
프로젝트 배포시에는 마스터 노드의 API Server에 kubectl 명령어를 통해 프로젝트를 배포할 수 있습니다.
# 생성
kubectl create
# 제거
kubectl delete
# 컨테이너에 명령
kubectl exec
....
구글의 hello kubernetes bootcamp! 예제 프로젝트를 배포해봅니다.
kubectl create deployment kubernetes-bootcamp --image=gcr.io/google-samples/kubernetes-bootcamp:v1
# 확인
kubectl get deployments
kubectl get pods
생성한 pod 상태를 확인해보면 IP가 10.244.1.4로 설정된 것을 확인할 수 있습니다.
kubectl get pods -o wide
마스터노드 설정 시 --pod-network-cidr 옵션에 넣었던 10.244.0.0 IP는 마스터노드의 대역이고,
워커노드에서 ifconfig로 Flannel 네트워크 IP를 확인해보면 10.244.1.0 인 것으로 보아
워커노드의 Flannel 네트워크 대역대는 10.244.1.xxx... 이고, 워커노드에 Pod가 생성된 것을 확인할 수 있습니다.
워커노드에서 curl 명령어를 통해 출력해볼 수는 있지만,
현재 외부에서는 접속할 수 없습니다.
# 워커노드에서 확인
curl http://10.244.1.4:8080
# 마스터노드에서 확인
kubectl get service
외부에서 접속가능하게 하려면, Pod에 고정 포트인 NodePort를 설정해주어야 합니다.
먼저 Pod의 이름을 확인합니다. (kubernetes-bootcamp-5485cc6795-xbwpj)
kubectl get pods
kubectl expose pod {pod 이름} --type=NodePort --port={port} 명령어를 통해 고정 port를 지정합니다.
포트를 고정해주고 service를 다시 확인해보면, 8080포트가 외부 32520 포트와 연결된 것을 확인할 수 있습니다.
Kubernetes의 NodePort 기본 포트 범위는 30000 ~ 32767 입니다.
30000 ~ 32767 구간인 이유는, 호스트 시스템 네트워크의 다른 항목과의 충돌을 피하기 위해 선택되었다고 하네요!
kubectl expose pod kubernetes-bootcamp-5485cc6795-xbwpj --type=NodePort --port=8080
이제 외부에서도 Pod 프로젝트에 접속할 수 있게 되었습니다!
접속링크는 http://{워커노드의 공인 IP}:{NodePort} 입니다.
다음 장에서는 서비스메시 Istio, 이해하고 연동하기 작업을 진행해볼 예정입니다.
https://domdom.tistory.com/598
'개발환경 > K8S·Docker' 카테고리의 다른 글
[Docker] 도커 최근 로그 조회 방법 (0) | 2023.04.27 |
---|---|
[Kubernetes] 3. 서비스메시 Istio, 이해하고 연동하기 (0) | 2023.03.10 |
[Kubernetes] 1. Ubuntu에 Kubernetes 설치하기 (0) | 2023.02.28 |
[Docker] 5. Docker 컨테이너의 데이터 공유하기 (0) | 2023.02.27 |
[Docker] 4. Docker 우분투 컨테이너에서 작업 후 이미지 제작하기 (0) | 2023.02.26 |