갬미의 성장일기
Day 41 - 쿠버네티스 기초 본문
오늘 배운 내용
- 쿠버네티스 기초
쿠버네티스 기초
쿠버네티스란 컨테이너 운영을 자동화하기 위한 오케스트레이션 도구를 말하며 구글의 주도로 만들어진 tool이다
쿠버네티스를 통해
- 많은 수의 컨테이너를 협조적으로 연동하여 사용할 수 있고
- 컨테이너를 통한 어플리케이션 배포 이외에도 다양한 운영관리 업무를 자동화할 수 있다
쿠버네티스 기능
- 컨테이너를 다루기 위한 API, 명령형 도구 함께 제공
- 도커 호스트관리, 적절한 컨테이너 배치, 스케일링, 로드밸런싱, 헬스체크 등
컨테이너 오케스트레이션이란
여러개의 컨테이너를 관리하고 배포하는 도구로 도커 스웜, Apache Mesos, 쿠버네티스가 있고 사실상 쿠버네티스가 표준으로 사용되고 있다
👇 조금 더 자세한 내용 보기
여러개의 컨테이너를 관리하는것이 중요한 이유?
지금 각 기능을 컨테이너로 구현하고 컨테이너를 조립하여 서비스를 제공하는 방식이 micro service와 같기때문에 ! ( -> msa 기반 개발이 퍼지고 있는 요즘 쿠버네티스를 많이 사용하는 이유다 )
👇 조금 더 자세한 내용 보기
k8s 통신 방법
클라이언트가 kubectl 명령어로 control plain(대장노드)에 API 통신을 하면 control plain은 다른 node의 상태를 체크하여 적절한 배치를 한다
control plain에는 클러스터에 대한 DB가 저장되어 있으므로 이게 사라지면 끝이다! 이중화가 필요한데 관리형 k8s에서 알아서 해준다
노드를 3개 만들고 nginx pod를 5개 만들었다 이때 배치 상태는 공평한 배치X, 적절한 배치O
쿠버네티스 리소스에는 여러가지가 있는데 오늘은 노드와 pod에 대해서 배웠다
노드
쿠버네티스 리소스에서 가장 큰 개념이다
노드는 클러스터 관리대상으로 등록된 도커 호스트로 (vm or 물리서버) 여기에 컨테이너가 배치된다
노드에는 클러스터를 관리하는 서버인 control plain이 적어도 하나이상 존재해야하며 다음과 같은 구성을 가진다
Control plain(Master) 노드와 그냥 node가 있음
etcd - cluster 상태정보 저장
kube scheduler - 클라이언트 요청을 어느 node에 배치할건지 정함
kube contraller manager - 클라이언트 요청에 맞게 container유지
pod
pod란 컨테이너 그룹이다 (컨테이너가 들어있는 택배상자라고 보면 된다)
pod에는 하나 이상의 컨테이너 그룹으로 하나의 pod는 하나의 node에 들어있어야 한다
pod의 크기는 애플리케이션 단위로 하는것이 적합하며, 함께 배포되어야 정합성이 유지되는 컨테이너도 같은 pod에 묶어둔다
control plain에는 관리용 컴포넌트가 담긴 pod만 배포되므로 이곳에 애플리케이션 용 pod를 배포할 수 없다
같은 node에 배치된 pod끼리 network 주소가 같다
pod안에는 여러개의 컨테이너가 존재할 수 있는데 하나의 pod는 하나의 ip를 가지기때문에 각 컨테이너는 각자 다른 포트를 사용해야 한다
또한 하나의 node안에 있는 pod끼리는 network 주소가 다르더라도 통신이 된다 (오버레이 통신)
- 도커는 안됨 (같은 브릿지끼리만 통신 가능), 브릿지끼리 연결하는 작업이 필요하지만
k8s는 같은 클러스터 안에 있다면 가능하다 다른 네트워크에 있는 pod끼리 통신할때 pod ip 그대로 달고 상대 pod로 간다
pod에서 외부로 나갈수도 있다 이때 pod는 노드의 ip를 달고 나감
정리하자면
pod는 같은 node에 있는 pod끼리 통신할 수 있는데 이때는 pod ip를 그대로 사용한다
pod에서 외부로 통신을 할때는 node의 ip를 달고 통신을 한다
리소스를 만드는 방법
리소스를 만드는 방법에는 두가지가 있다
1. 명령어를 통해 생성 (kubectl, docker)
2. 선언적 언어를 통해 생성 (선언적 언어 = json, yaml)
- yaml을 하나 만들고 kubectl apply -f yaml 파일 명
쿠버네티스 공부하기
https://kubernetes.io/docs/tutorials/kubernetes-basics/
오늘의 회고
- 오늘은 쿠버네티스의 맛만 조금 봤다
- 도커랑 내용이 자꾸 겹쳐서,,? 너무 헷갈린다 ㅜㅜ 익숙해지는 방법밖에는 없을까?
- 심지어 도커를 며칠 안하고 쿠버네티스만 들었더니 쿠버네티스도 도커도 모두 까먹는 불상사가 일어났다
- 도커,, 다시 정리한다 꼭..
'Cloud > Cloud 공부일기' 카테고리의 다른 글
Day 43 - 쿠버네티스 기본 명령어 (0) | 2022.03.11 |
---|---|
Day 42 - GKE, EKS | awscli, ekctl 설치 (0) | 2022.03.10 |
Day 40 - Google Cloud CLI, Docker DeskTop 설치 (0) | 2022.03.07 |
Day 39 - GCP 가상머신 만들기, 도커, 쿠버네티스 설치 및 테스트 (0) | 2022.03.04 |
Day 38 - docker-compose 3tier, SQL (간단), GCP 가입 (0) | 2022.03.03 |