Kbernetes kubectl을 이용하여 Pods를 외부 IP로 노출 및 스켈링(scaling)하기
하나의 클러스터를 구동시킵니다.
해당 노드는 8080 port로 접속이 가능합니다. 따라서 해당 deployment의 8080포트를 노출해 줍니다.
$ kubectl expose deployment [deployment name] --port=8080 --type=[set type]
위 사진에서는 8080 port로 해당 서비스에 노출을 하였습니다. type에 대한 자세한 내용은 아래 링크를 참고해 주시기 바랍니다.
링크1 : https://kubernetes.io/docs/tasks/access-application-cluster/create-external-load-balancer/
위 사진에서 'EXTERNAL-IP'가 '<pending>'인것을 알수 있습니다. 이는 접속할수 있는 ip가 할당되지 않았다는 것입니다. minikube는 현재 로컬에서 돌아가기 때문에 충분한 IP를 가지고 있지 않습니다.
minikube로 'EXTERNAL-IP' 할당하기
$ minikube service [service name]
위의 사진을 보면 확일할수 있든시 외부포트인 31455포트를 통해서 해당 pod의 8080포트로 접근할수 있다.
소스코드를 보면 알겠지만 임의로 node를 멈추는 기능(/err)이 있다. 임의적으로 pod가 멈췄을때는 kubernetes가 자동으로 재시작을 한다.
위 사진을 봤을때 'RESTARTS'가 0에서 1로 올라가는 것을 확인할수 있습니다. 이는 pod가 노드가 멈춘것을 알고 다시 container를 생성해서 실행한 것입니다.
해당 deployment도 제대로 동작되는것을 확인할수 있다. 이는 dash board에서도 확인할수 있습니다.
$ minikube dashboard
dashboard를 이용하여 이벤트를 시간순으로 확인할수 있습니다.
여기서 필요하면 scaling도 할수 있습니다. 현재 1개의 pod안에 한개의 컨테이너가 구동하고 있습니다. 하지만 scaling을 해서 pod의 갯수를 늘릴수 있습니다.
$ kubectl scale deployment/[deployment name] --replicas=[replicas number]
위 사진을 보면 scaling을 3을로 했을때 2개의 pod가 추가 생성 된것을 알수 있습니다.
댓글
댓글 쓰기