Notice
Recent Posts
Recent Comments
Link
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
Tags
more
Archives
Today
Total
관리 메뉴

함께해요~

쿠버네티스 주요 개념 본문

Kubernetes

쿠버네티스 주요 개념

parkhj 2019. 7. 26. 01:47
클러스터와 노드
클러스터는 쿠버네티스의 여러 리소스를 관리하기 위한 집합체
노드는 쿠버네티스 리소스 중에서 가장 큰 개념

kube apiserver : kubectl 로 부터 리소스를 조작하라는 지시를 받는다
etcd : 고가용성을 갖춘 분산 키-값 스토어 , 쿠버네티스 클러스터의 백킹 스토어
kube-scheduler : 노드를 모니터링하고 컨테이너를 배치 할 적절한 노드를 선택
kube-controller-manager : 리소스르 제어하는 컨트롤러를 실행

클러스터와 노드

NAMESPACE
클러스터 안에 가상 클러스터 생성이 가능함으로 이 클러스터 안의 가상 클러스터를 namespace 라고 한다.

default , docker , kube-public, kube-system 기본 namespace

※ namespace 사용
- 사용자별로 namespace 별 접근 권한을 다르게 운영 할 수 있다.
- namespace 별로 리소스를 할당 할 수 있다.
- 논리적인 분리 단위임으로 물리적이나 기타 장치는 사용 가능 (pod 통신 등) : 분리 할 수 있지만 그럴 경우에는 클러스터를 나누는 것을 추천 함

현재 클러스터 안에 존재하는 namespace 목록

kubectl get namespace
POD
컨테이너가 모인 잡합체의 단위로 적어도 하나 이상의 컨테이너로 이루어진다.

POD > Container 1 , Container 2 .....

Kubernetes Cluster > Node > Pod > Containner

1. 리소스 정의 파일 생성

sample-pod.xml

2. POD 를 쿠버네티스 클러스터에 배포 및 삭제
kubectl apply -f simple-pod.yml --record

kubectl get pod

kubectl exec -it simple-echo sh -c nginx

kubectl logs -f simple-echo -c echo

kubctl delete pod simple-echo

kubctl delete -f simple-pod.yaml

-c 옵션 : 컨터이너 명
--record : kubectl 명령어 히스토리
파드에 할당 된 가상 IP 주소는 해당 파드에 속하는 모든 컨테이너가 공유한다.
같은 파드 안의 모든 컨테이너의 가상 IP 주소가 같기 때문에 IP,PORT 를 이용하여 호출 할 수 있다.
또한 Disk Volume 도 공유 할 수 있다.
REPLICASET

sample-replicaset.yml

DEPLOYMENT
리플리카세트 상위이며, application deployment 의 기본 단위가 되는 리소스

Deployment > ReplicaSet > POD > Container

※ 배포 방법
- 블루/그린 배포 
    : 새로운 버젼을 배포(그린) 한 후 , 트래픽을 구버젼(블루) 에서 그린으로 한 번에 돌리는 방식
- 롤링 업그레이드
    : pod 를 하나씩 업그레이드 하는 방식

sample-deployment.yaml

kubectl 를 이용하여 상태 확인
kubectl get pod,replicaset,deployment --selector app=echo

kubectl rollout history deployment echo

kubectl rollout history deployment echo --revision=1

kubectl rollout undo deployment echo
replicas 설정 값 변경으로 리플리카세트의 교체가 일어나지 않는다.
컨테이너 이미지가 수정 될 경우 새로운 파드가 생성되고, 기존 파드는 단계적으로 정지 됨.
SERVICE
쿠버네티스 클러스터 안에서 파드의 집합에 대한 경로나 서비스 디스커버리를 제공하는 리소스

ClusterIP 서비스
: 쿠버네티스 클러스터의 내부 IP 주소에 서비스를 공개 할 수 있다.
파드A -> 파드B 접근할 때 서비스를 거쳐 가도록 할 수 있다. 단) 외부에서 접근 안됨.

NodePort 서비스
: 클러스터 외부에서 접근 할 수 있는 서비스

LoadBalancer 서비스


ExternalName 서비스

INGRESS
URI 기반 (L7과 비슷한 기능)

'Kubernetes' 카테고리의 다른 글

Mysql  (0) 2019.07.31