2019. 10. 04
Jaewoo KIM
클러스터 전체를 관리하는 서버인 마스터가 적어도 하나 이상 존재
현재 클러스터에 소속된 노드의 목록
$ kubectl get nodes
마스터 서버에 배포되는 관리 컴포넌트들
- kube-apiserver
- etcd
- kube-scheduler
- kube-controller-manager
네임스페이스 목록 확인
$ kubectl get namespace
네임스페이스마다 권한을 설정할 수 있으므로
견고하고 세세하게 권한을 제어할 수 있다
컨테이너 하나 혹은 컨테이너의 집합체
매니페스트 파일 작성
$ vi simple-pod.yaml
클러스터에 배포
$ kubectl apply -f simple-pod.yaml
$ kubectl get pod
똑같은 정의를 갖는 파드를 여러 개 생성하고 관리
$ vi simple-replicaset.yaml
클러스터에 배포
$ kubectl apply -f simple-replicaset.yaml
$ kubectl get pod
애플리케이션 배포의 기본 단위가 되는 리소스
Deployment
echo
ReplicaSet
echo-1
Pod
echo-1a
Pod
echo-1b
Pod
echo-1c
create
create
레플리카 세트와 큰 차이는 리비전 관리를 할 수 있다는 점
$ vi simple-deployment.yaml
클러스터에 배포
$ kubectl apply -f simple-replicaset.yaml --record
$ kubectl get pod,replicaset,deployment --selector \ app=echo
리비전 확인
$ kubectl rollout history deployment echo
$ kubectl rollout history deployment echo --revision=1
롤백
$ kubectl undo deployment echo
클러스터 안에서 파드의 집합에 대한 경로를 제공하는 리소스
$ vi simple-replicaset-with-label.yaml
리비전 확인
$ kubectl get pod -l app=echo -l release=spring
$ kubectl get pod -l app=echo -l release=summer
Service(name=echo)
[selectors]
app=echo
release=summer
Pod
app=echo
release=summer
Pod
app=echo
release=summer
Pod
app=echo
release=spring
http://echo/
필드의 값이 리소스 종류에 따라서 달라진다
$ kubectl api-versions