1. replication controller(pod) 생성
kubectl run myapp-httpd --image=httpd --port=80 --generator=run/v1
- kubectl run 명령을 사용하여 replication controller를 생성했다.
- controller의 이름 = myapp-httpd
- container에 사용할 image = httpd
- application port = 80
- --gernerator
- 일반적으로 사용하지는 않는다.
- 이 옵션으로 복제 컨트롤러를 사용하여 파드를 생성한다.
- 사용하지 않으면 deployment object가 생성된다.
- 참고
https://kubernetes.io/docs/reference/kubectl/conventions/#generators
2. pod 확인
- 현재 myapp-httpd 파드에 하나의 컨테이너가 동작하고 있다.
3. replication controller 확인
- 현재 myapp-httpd replication controller가 하나의 pod를 생성하였다.
4. service 생성
kubectl expose replicationcontroller myapp-httpd --type=LoadBalancer --name myapp-svc
- 외부에서 cluster 내부의 container에 접근할 수 있도록 service object를 생성해서 노출해야 한다.
5. service 확인
- 생성된 서비스 = myapp-svc
- kubernetes 서비스는 기본적으로 존재하는 서비스이다.
6. service 접근
7. pod scaling
kubectl scale replicationcontroller myapp-httpd --replicas=3
- myapp-httpd 컨트롤러는 하나의 pod를 가지고 있었다. 이를 3개의 복제본으로 스케일링한다.
8. scaling 결과 확인
- AGE가 비교적 최근인 2개의 pod가 스케일링에 의해 최근에 생성된 pod이다.
9. 서비스 요청 시 분산된 접근 확인
watch -n 1 curl 192.168.122.200
- 내용이 같으므로 다른 결과를 확인하지 못한다..
- 다른 파드의 컨테이너에 접근한다.
10. 생성한 리소스 삭제
- 전체 object 목록 확인
- 특정 pod 삭제하기
- 특정 pod를 삭제하면 복제본의 개수를 맞추기 위해 자동적으로 새로운 pod를 생성한다.
- myapp-httpd replication controller 삭제
kubectl delete replicationcontroller myapp-httpd
- controller를 삭제하면 연결된 파드도 같이 삭제된다.
- myapp-svc 삭제
kubectl delete service myapp-svc
- 전체 목록 확인
- kubernetes는 원래 존재하는 서비스.
'Containers > Kubernetes' 카테고리의 다른 글
3.2. Label 및 Selector (0) | 2020.07.23 |
---|---|
Pod (0) | 2020.07.23 |
Object 관리 (0) | 2020.07.22 |
YAML (0) | 2020.07.22 |
kubernetes 구성 요소 및 API (0) | 2020.07.22 |
댓글