이 시나리오에서는 Kubectl을 사용하여 배포, 복제 컨트롤러를 생성 및 시작하고 yaml 정의를 작성하지 않고 서비스를 통해 노출하는 방법을 배웁니다.
이를 통해 클러스터에서 컨테이너를 빠르게 시작할 수 있습니다.
1 클러스터 실행하기
클러스터 실행하기
minikube start --wait=false
노드가 준비됐는지 확인하기
kubectl get nodes

2 kubectl 실행하기
run 명령어는 이미지나 레플리카 기반의 디플로이먼트를 생성한다.
kubectl run <name of deployment> <properties>
Docker 이미지 katacoda/docker-http-server:latest로 컨테이너를 시작하는 http 디플로이먼트를 실행한다.
kubectl run http --image=katacoda/docker-http-server:latest --replicas=1
디플로이먼트의 상태 확인하기
kubectl get deployments

디플로이먼트 프로세스 설명을 확인할 수 있다.
- 사용가능한 레플리카 수, 레이블, 디플로이먼트 등
kubectl describe deployment http
3 kubectl 노출하기
디플로이먼트가 생성되면 특정 포트의 pod를 노출하는 서비스를 생성할 수 있다.
kubectl expose를 통해 http 디플로이먼트를 노출한다.
호스트 외부 IP에 바인딩된 호스트 8000의 컨테이너 포트 80을 노출한다
kubectl expose deployment http --external-ip="172.17.0.108" --port=8000 --target-port=80
ping을 하고, http 서비스 결과를 볼 수 있다.
curl http://172.17.0.108:8000
4 kubectl 실행 및 노출
kubectl run 으로 디플로이먼트를 실행하고 노출할 수 있다.
8001 포트에 노출된 두번째 http 서비스 만들기
kubectl run httpexposed --image=katacoda/docker-http-server:latest --replicas=1 --port=80 --hostport=8001
접근 가능하다
curl http://172.17.0.108:8001
kubectl get svc

세부사항 확인하기
docker ps | grep httpexposed

pause 컨테이너
pod에 포트가 노출된 것을 알 수 있다. pause 컨테이너는 pod의 네트워크를 정의하는 역할을 한다.
pod의 다른 컨테이너는 동일한 네트워크 네임스페이스를 공유한다.
-> 네트워크 성능이 향상되고 여러 컨테이너가 동일한 네트워크 인터페이스를 통해 통신할 수 있다.
5 컨테이너 확장
디플로이먼트 실행으로 레플리카 수를 확장할 수 있다.
디플로이먼트를 확장하면 쿠버네티스가 추가 포드를 시작하도록 요청한다.
그리고 이러한 pod는 노출된 서비스를 통해 자동으로 로드밸런스된다.
kubectl scale 명령어는 특정 디플로이먼트 또는 레플리케이션 컨트롤러에 대해 실행중인 pod 수를 조정할 수 있다.
kubectl scale --replicas=3 deployment http
http 디플로이먼트를 위해 실행중인 3개의 포드 확인하기
kubectl get pods

각각의 pod가 시작되면 로드밸런스 서비스에 추가된다.
describe service 하면 엔드포인트 및 연결된 pod를 확인 가능하다.
kubectl describe svc http

서비스에 대한 요청은 다른 노드에서 요청한다.
curl http://172.17.0.108:8000
'도커&쿠버네티스' 카테고리의 다른 글
[katakoda] Deploy Guestbook Web App Example (0) | 2022.03.22 |
---|---|
[katakoda] Deploy Containers Using YAML 컨테이너 배포하기 (0) | 2022.03.22 |
[katakoda] Launch a multi-node cluster using Kubeadm 다중 노드 클러스터 실행하기 (1) | 2022.03.21 |
[katakoda] Launch A Single Node Cluster 단일 노드 클러스터 실행하기 (0) | 2022.03.21 |
[katakoda] 쿠버네티스 온라인 실습하기 (0) | 2022.03.16 |
댓글