GitHub

https://github.com/Choidongjun0830

클라우드 27

Rolling Updates and Rollbacks

처음 Deployment를 생성하면 롤아웃을 촉발한다. 새로운 롤아웃은 새로운 배포 revision을 생성한다. 컨테이너의 버전이 바뀌면 새로운 롤아웃이 촉발되고, 새로운 배포 revision이 생성된다. 이 revision이 Deployment에서 일어난 변화를 추적할 수 있게 해주고, 롤백을 도와준다. 롤아웃 커맨드revision의 상태 확인 kubectl rollout status deployment/       revision history 확인kubectl rollout history deployment/      Deployment strategyRecreate - 모두 지우고 다시 다 만들기다운타임 발생 Rolling Update - 하나씩 지우고 하나씩 만들기다운타임 발생하지 않음 디폴트가..

클라우드 2024.11.28

Kube-proxy

Kubernetes Cluster에서는 모든 Pod가 서로에게 접근할 수 있다. 이것은 Pod Networking Solution을 클러스터에 배포함으로써 이루어진다. Pod Network는 내부 가상 네트워크로 모든 Pod가 연결되는 클러스터 내 모든 노드에 걸쳐있다. 이 네트워크를 통해 서로 통신할 수 있다.하지만, Pod의 IP는 죽었다 살아나면 같은 IP를 가질거라는 보장이 없다. 그래서 서비스를 사용하고, Endpoints를 사용한다. 서비스로 묶인 Pod들 중 접근하려는 Pod의 IP 주소를 안정적으로 얻으려면 Kube-proxy가 필요하다. Kube-proxy는 Kubernetes 클러스터의 각 노드에서 동작하는 프로세스로, 서비스와 이를 구성하는 Pod 목록을 연결하는 역할을 한다. 이를 ..

클라우드 2024.11.23

API Server

kubectl get nodes 명령어 입력시 동작kubectl 명령어가 API Server에 도달. API Server가 요청을 인증하고, 유효성을 검사etcd 클러스터에서 데이터를 가져와 요청된 정보로 응답kubectl 명령어를 사용하지 않고도 직접 API Server에 요청 가능curl -X POST /api/v1/namespaces/default/pods ... (Pod 생성 예시) API Server의 역할Authenticate UserValidate RequestRetrieve dataUpdate ETCDAPI 서버를 이용하여 업데이트 수행 Schedulerkubelet API Server 보기kubectl get pod -n kube-system 을 입력하면 kube-apiserver-mas..

클라우드 2024.11.22

DOCKER VS CONTAINERD

초기에는 Docker가 지배적이라서 Kubernetes는 Docker만 지원했었다.하지만, 시간이 흘러 다른 Container Runtime을 지원할 필요가 생겼고, 그래서 CRI(Container Runtime Interface)를 만들었다.CRI는 어떤 공급업체든 Kubernetes의 Container Runtime이 될 수 있게 해준다.  Docker는 CRI보다 이전에 생겼고 여전히 주된 Container Runtime이기 때문에, Kubernetes는 Docker를 지원하기 위해 dockershim을 만들었다. 그래서 CRI 없이도 Docker는 동작했다. Docker Docker는 Container Runtime만 있는게 아니라, 여러개의 도구로 이루어져 있다.Docker CLI커맨드라인 인터..

클라우드 2024.11.22

Kubernetes Principles

#1. Kubernetes APIs are declarative rather than imperative.K8S에서는, Master Node가 Worker Node에게 어떤 동작을 하라고 명령하는 것이 아니라, Master Node가 원하는 상태를 정의하면, Worker Node는 그 상태가 되도록 작업을 수행한다. 이를 통해서 얻을 수 있는 이점은 Auto Recovery가 있다. Worker Node에서 현재 상태가 원하는 상태와 일치하지 않다면, 그 상태가 아님을 스스로 알아채고 현재 상태를 원하는 상태로 만들기 위해 스스로 동작한다.#2. The Kubernetes control plane is transparent, there are no hidden Internal APIs.Master Nod..

클라우드 2024.10.15

Kubernetes Volumes

기초 용어Drive: 저장 장치Volume: Logical한 Drive. Drive를 논리적으로 쪼개서 만들어짐. Kubernetes에서 컨테이너가 데이터를 읽고 쓸 수 있는 공간Pod 중에서 어떤 것은 Storage가 필요할 수도 있다. => Storage를 이용 가능하게 Pod에 Volume을 붙여준다. (Mount Volume)Pod는 하나 이상의 Container로 구성되어 있고, 이 컨테이너들 간에 데이터를 주고 받으려면, Volume을 사용해 Storage를 연결해야 한다. emptyDir, hostPathemptyDir임시적인 Volume. 캐시나 로그 등 임시 데이터를 저장하는데 쓰인다.Pod가 죽었다가 살아나면 사라진다.hostPathPod 내에 Volume을 만드는게 아니라, Node의..

클라우드 2024.10.12

K8S 네트워킹

대부분은 Public 주소Private주소 영역[10.0.0.0 ~ 10.255.255.255][172.16.0.0 ~ 172.31.255.255][192.168.0.0 ~ 192.168.255.255]내부에서는 Private IP 주소를 사용하고, 외부에서는 Public IP 주소를 사용한다. Public IP 주소 + Port 번호로 Private 주소를 구별한다. (NAT를 통해)Network Namespace각 컨테이너가 격리된 네트워크 환경을 갖게 한다.각 네트워크 네임스페이스는 네트워크 스택을 갖고 있다.동일한 호스트 머신 내에서 컨테이너들이 서로 다른 네트워크 환경에서 동작할 수 있게 한다.mysql container와 nginx container가 각각 다른 Network Namespace..

클라우드 2024.10.11

Deployment 리소스 생성시 흐름

실행 흐름1. kubectl 명령어로 Deployment 생성   - 사용자가 kubectl을 통해 Deployment를 생성하면, 이 요청이 Kubernetes API 서버로 전달됩니다.  2. Deployment Controller가 ReplicaSet 생성   - Deployment Controller는 사용자가 원하는 상태(예: 특정 수의 Pod를 실행)를 보고 ReplicaSet을 생성합니다.    - 이 ReplicaSet은 "짜장면 2개"와 같은 상태로, 실행해야 할 Pod의 수(=컨테이너를 돌리는 Pod)를 정의합니다.  3. ReplicaSet Controller가 주문서 Pod 생성   - ReplicaSet Controller는 정의된 수만큼의 Pod 오브젝트(주문서 Pod)를 생성합..

클라우드 2024.10.10

Kubernetes Basic - 2

Controller Manager는 여러 Controller의 한 덩어리로, 여러개의 Controller를 관리하며, 순차적으로 돌아가게 해준다.Controller Manager가 관리하는 것은 Deployment, ReplicaSet, Node 등이다.Controller Manger의 특수한 형태가 kubelet이다. Controller는 kubelet과 같은 역할이지만, 관리해주는게 다르다. (쳐다보는게 다름)kubelet은 주문서인 Pod를 쳐다봄.Controller Manager는 클러스터 전반을 관리하지만, kubelet은 각 개별 노드를 관리한다. Pod컨테이너를 풀어서 돌게 해준다. 컨테이너를 돌리는 기본 단위이다.Pod 안에는 보통 컨테이너가 하나인데, 사실은 Kube-proxy를 합쳐서 ..

클라우드 2024.10.08

Restful API

HTTPServer: 영구적인 IP 주소를 가진다. 서버는 클라이언트의 요청을 받아 데이터를 처리하고 응답을 보낸다. Client: 서버와 소통한다. 동적인 IP 주소를 가지며, HTTP 기반의 통신에서는 클라이언트끼리는 통신하지 않는다.Hyper Text Transfer Protocol: Hyper Text는 HTML 같은것. HTML을 전송하는 프로토콜.기본적으로 요청하고 응답한다. 각각의 Object는 URL로 찾아갈 수 있다.요청 메서드GET, PUT, POST, DELETE, HEAD ...Restful APIAPI의 형식이 Restful이다.API를 액세스할 때 사용되는 프로토콜의 방식을 HTTP와 같은 방식으로 한다.REpresentational State TransferAddressable..

클라우드 2024.10.06
728x90