Cloocus AKS 교육메모

Container의 강점
OverView
Virtualiation VS Container
Bare Metal -> Virtualiation -> Container
Container 구성 요소
Cgroup & Namespace
Cgroup
자원(memory, CPU I/O, Network, device)등을 제어함.
- 해당 기능을 활용해 특정 컨테이너 에서 사용할 수 있는 자원을 제한 할 수 있음
NameSpace
자원을 격리할 수 있음
- 서로 다른 그룹은 볼 수 없도록 분리됨.
- 방화벽 규칙 및 라우팅 테이블 등을 격리함
MicroServiceArchitecture(MSA)
MicroService를 사용하는 이유
- MicroService
기존에 단일 서비스로 구현되어있던 방식에서 각 기능별로 Service를 나눈것을 의미함.
장점
단점
Kubernetes Component
Kubernetes 특징
- 선언적 구성의 배포 환경
직접적으로 배포하는 것이 아닌 상태를 선언하여 배포함.
- 기능 단위의 분산과 API 기반 상호작용
각각의 기능들이 개별 구성 요소로 이루어져 있습니다.
- 클러스터 단위 중앙 제어
클러스터라는 단위 내에 각 구성 요소에 대한 권한을 지닌 컨트롤 플레인을 통해 관리함.
- 동적 그룹화
Label을 통해 각 구성요소들을 그룹화하여 관리 할 수 있음
Control Plane & Worker Node

Scheduler

Kubernetes Object
Deploy
- Pod : 격리된 Container의 집합 Kubernetes의 가장 작은 컴퓨팅 단위
- Replica set : 지정된 수의 동일한 POD를 유지함.
- Deployment : Deployment에서 원하는 상태를 정하고 Replica set을 통하여 Pod의 개수를 유지함.
- Demon set : 모든 노드에 노드당 하나의 Pod를 유지합니다.
Kubernetes의 배포 방법

Deployment & Rolling Update

Deployment manifast

Label과 NameSpace

클러스터에 레이블과 네임스페이스가 없으면 파드가 여기저기 정리가 안되어있지만
레이블과 네임스페이스를 통해 격리해주면 더욱 편하게 관리할 수 있음.
Kubernete의 Network 통신
- Cluster IP : 클러스터 내에서만 엑세스 할 수 있는 서비스를 노출
- Node Port : 각 노드 IP에 있는 고정 포트를 통해서만 서비스를 노출
- Load Balancer : 클라우드 공급자의 로드밸런서를 통해 서비스 노출
- Ingress : Http 통신을 위한 Kubernetes의 통신 방식
Pod의 Network 통신 방법

Kubernetes의 Volume 종류
- EmptyDir : 일시적인 데이터를 저장하는데 사용되는 간단한 빈 디렉토리
- NFS : NFS 공유를 파드에 마운트
- Persistent Volume : Pod에 영속성 있는 볼륨을 제공
- Cloud Volume : 클라우드 제공자의 스토리지를 마운트
Pod의 Volume 구성

Security (Kubernetes의 보안)
- Container Image : 컨테이너에 대한 이미지 취약점 및 Runtime 취약점 등을 스캔을 통해 파악합니다.
- API Security, Pod Security : Kubernetes의 RBAC을 기반으로 한 보안이 필요합니다.
- Kubernetes Networking : Network Policy를 사용하는 등 Cluster내의 Network 동작을 확인합니다.
- Infrastructure Security : Cluster를 구성하는 Node 자체에 대한 보안 구성이 필요합니다.

Security (Kubernetes의 RBAC)

컨테이너 런타임 에러날 수 있음
그럴때는 모니터 메모장 명령어 쓰셈
조인이 안되는 상황이면 토큰을 재발급 해야함