이번 포스팅에서는 지난 포스팅에 이어 공식 튜토리얼 2단계를 실습해 보도록 한다.
2021.04.01 - [분류 전체보기] - 쿠버네티스( Kubernetes) 공식 튜토리얼 #2
튜토리얼 모듈 2는 쿠버네티스에 App을 deploy 하는 기능에 대한 것이다.
1. kubectl version 클릭
$ kubectl version
다음으로 kubectl의 버전을 확인하는 명령어를 실행한다.
kubectl을 실행하여 쿠버네티스가 동작하고 있는 상황을 확인했다.
2. kubectl get nodes 실행
$ kubectl get nodes
kubectl get nodes를 사용하여 현재 하나의 minikube 노드가 ready상태에 있는 것을 확인할 수 있다.
3. kubectl create deployment ... 실행
$ kubectl create deployment kubernetes-bootcamp --image=gcr.io/google-samples/kubernetes-bootcamp:v1
다음의 명령어어는 도커 이미지를 이용하여 애플리케이션을 배포하는 것을 의미한다.
튜토리얼에서 deploy한 이미지는 kubernetes-bootcamp 버전 1이다. 이 이미지가 무엇을 하는 것인지는 잘 모르겠지만, 이 이미지에 있는 앱이 deploy 된다.
이 이미지는 다음의 링크에 저장되어있다. 링크
만약 nginx 이미지를 이용하여 deploy를 한다면 다음처럼 명령어를 실행하면 된다. (튜토리얼에서는 동작하지 않는다.)
$ kubectl create deployment nginx --image=nginx
실행 결과는 다음과 같다.
이렇게 튜토리얼을 통해 첫번째 애플리케이션을 deploy 하는 데 성공했다.
4. kubectl get deployments 실행
$ kubectl get deployments
다음의 명령어를 이용해서 현재 deploy된 인스턴스를 확인한다.
5. Kubectl proxy 실행
$ echo -e "\n\n\n\e[92mStarting Proxy. After starting it will not output a response. Please click the first Terminal Tab\n";
kubectl proxy
다음의 명령어 중에서 중요한 부분은 kubectl proxy이다.
Proxy는 쿠버네티스 서비스 네트워킹을 담당한다.
echo는 문구 출력을 위함이고 \e[92m는 터미널에 출력하는 문구를 초록색으로 변경하는 코드이다.
즉 Proxy를 시작하고 있는데 응답을 주지 않을 테니까 첫 번째 터미널로 돌아가라는 내용을 출력하고 proxy를 실행한다.
이 명령어를 실행하면 현재 터미널과 쿠버네티스 클러스터가 연결된 것을 확인할 수 있다.
Proxy를 이용하면 터미널에서 API에 직접 접근이 가능하다.
6. CURL 명령어를 이용하여 Host 연결
$ curl http://localhost:8001/version
CURL 명령어를 이용하여 호스트의 버전을 확인했다.
API 서버는 자동적으로 각 pod의 이름으로 endpoint를 생성한다.
이 모든 pod들은 proxy를 통해 연결 가능하다.
7. pod 이름 얻기
$ export POD_NAME=$(kubectl get pods -o go-template --template '{{range .items}}{{.metadata.name}}{{"\n"}}{{end}}')
echo Name of the Pod: $POD_NAME
다음 명령어는 pod의 정보를 이용하여 POD_NAME을 만드든 후에 만들어진 이름을 확인하는 기능을 실행한다.
지금까지 실습한 내용은 kube-proxy를 사용하여 다른 인스턴스에 접근하는 것이다.
다음 튜토리얼 모듈에서 설명하는 서비스를 이용하면 프락시를 사용하지 않고도 접근이 가능하다고 한다.
다음 포스팅에서는 3번째 튜토리얼인 "앱 조사하기" 진행 내용을 정리해 보려고 한다.
참고자료
[1] kubernetes.io | Kubernetes Tutorial | 링크
[2] 15단계로 배우는 도커와 쿠버네티스 | 타카라 마호 | 2020.10 | 링크
'클라우드 컴퓨팅 & NoSQL > Kubernetes' 카테고리의 다른 글
쿠버네티스(Kubernetes) 공식 튜토리얼 #5 (0) | 2021.04.03 |
---|---|
쿠버네티스(Kubernetes) 공식 튜토리얼 #4 (0) | 2021.04.02 |
쿠버네티스( Kubernetes) 공식 튜토리얼 #2 (0) | 2021.04.01 |
쿠버네티스( Kubernetes) 공식 튜토리얼 #1 (0) | 2021.03.31 |
쿠버네티스 컴포넌트(component) (0) | 2021.03.30 |