Kubernetes에서 기본적인 객체는 배포와 관리를 담당합니다.
컨테이너화 및 배포되는 애플리케이션의 워크로드를 설명하는 객체입니다.
포드, 서비스, 볼륨 및 네임스페이스의 네 가지 객체 유형이 있습니다.
3개의 nginx 포드를 가져오는 ReplicaSet을 생성합니다.
서비스는 “myapp” 레이블이 붙은 서비스만 선택하여 서비스에 넣고 Pod간 로드 밸런싱을 통해 외부로 서비스를 제공합니다.
https://kubernetes.io/ko/docs/tutorials/hello-minikube/
$ kubectl create deployment hello-node --image=registry.k8s.io/echoserver:1.4
hello-node deployment 컨트롤러를 만들어서 이미지 경로의 인스턴스를 배포합니다.
kubectl get pods 명령어를 통해 확인합니다.
$ minikube dashboard
대시보드를 사용하면 현재 워크로드 상태를 보고 내용을 편집할 수 있습니다.
Deployment, Pod, ReplicaSet이 안정적으로 제공되는 것을 확인할 수 있습니다.
$ kubectl expose deployment hello-node --type=LoadBalancer --port=8080
$ minikube service hello-node
EXTERNAL -IP 프로비저닝
$ kubectl expose deployment hello-node --type=LoadBalancer --port=8080
kotacoda 환경에서는 포트 32729를 사용하여 hello-node 서비스에 액세스할 수 있습니다.
아래 명령을 실행하여 Kubenetes를 종료합니다.
$ kubectl delete service hello-node
$ kubectl delete deployment hello-node
$ minikube stop
$ minikube delete
> minikube start --driver=docker
> git clone https://github.com/microservices-demo/microservices-demo
> cd microservices-demo
> kubectl apply -f ./release/kubernetes-manifests.yaml
매니페스트 설정파일을 kubectl apply 명령어를 통해 emailservice, frontend, cartservice 등 12개의 deployment와 service를 생성합니다.
> kubectl get pods
클러스터내 생성된 파드를 확인
> kubectl port-forward deployment/frontend 8080
포트포워딩을 통해 서비스에 접속할 수 있습니다.
Virtual Box 가상머신을 활용해서 Docker 및 쿠버네티스, Jenkins를 통한 CI/CD를 충분히 연습해봅니다.
무중단 배포를 위해 쿠버네티스를 로컬 및 클라우드 환경에서 적용해봅니다.
클라우드 환경 사용시 무료 비용 한계를 꼭 확인해야 합니다.
References: 가천 SW 아카데미