전체 글
[Kubernetes] Kubernetes Pod | init container
3. init container를 적용한 Pod 1. init container 앱 컨테이너 실행 전에 미리 동작시킬 컨테이너 본 Container가 실행되기 전에 사전 작업이 필요할 경우 사용 초기화 컨테이너가 모두 실행된 후에 앱 컨테이너를 실행 https://kubernetes.io/ko/docs/concepts/workloads/pods/init-containers/ 위 문서의 example을 사용하여 init container를 생성할 수 있다. apiVersion: v1 kind: Pod metadata: name: myapp-pod labels: app: myapp spec: containers: - name: myapp-container image: busybox:1.28 command: ..
[Kubernetes] Kubernetes Pod | livenessProbe
kubernetes.io 에서 확인할 수 있는 쿠버네티스 특징 중 하나인 self healing 기능에 대해 살펴본다. 1. Liveness Probe Pod가 계속 실행할 수 있음을 보장 Pod의 spec에 정의 건강한 컨테이너로 서비스하는 것을 목적으로 하고 있다. 2. Liveness Probe 매커니즘 httpGet probe : 지정한 IP주소, 포트, path에 HTTP GET 요청을 보내, 해당 컨테이너가 응답하는지를 확인한다. 반환코드가 200이 아닌 값이 나오면 오류로 판단하고 컨테이너를 다시 시작한다. livenessProbe: httpGet path: port: 80 tcpSocket probe : 지정된 포트에 TCP 연결을 시도, 연결되지 않으면 컨테이너를 다시 시작한다. live..
[Kubernetes] Kubernetes pod | pod 생성, 관리
1. Pod 개념 및 사용하기 도커에서의 Container 아래 코드는 앱서비스를 제공하는 app.js 파일이다. 클라이언트 요청이 들어오면 8080 커넥션을 맺어 200 상태코드와 함께 컨테이너의 이름을 응답한다. # cat > app.js const http = require('http'); const os = require('os'); console.log("Test server starting..."); var handler = function(req, res) { res.writeHead(200); res.end("Container Hostname: " + os.hostname() + "\n"); }; var www = http.createServer(handler); www.listen(808..
[Kubernetes] 쿠버네티스 아키텍쳐 | yaml, API
1. yaml 템플릿 사람이 쉽게 읽을 수 있는 데이터 직렬화 양식 기본 문법 구조화된 데이터를 표현하기 위한 데이터 포맷 python처럼 들여쓰기로 데이터 계층을 표기 들여쓰기를 할 때에는 Tab이 아닌 스페이스바를 사용 가독성이 좋아 설정 파일에 적합한 형식 Scalar 문법 : ':'을 기준으로 Key: Value를 설정 배열 문법 : '-' 문자로 여러 개를 나열 공식 사이트 : https://yaml.org/ kubernetes yam example $ cat nginx-pod.yaml apiVersion: V1 kind: Pod parent: child1: first child key2: child-1: kim key3: - grandchil1: name: kim - grandchild2: n..
[Kubernetes] 쿠버네티스 아키텍쳐 | namespace
1. k8s namespace namespace란 클러스터 하나를 여러 개의 논리적인 단위로 나눠서 사용하는 것 쿠버네티스 클러스터 하나를 여러 팀이나 사용자가 함께 공유 용도에 따라 실행해야 하는 앱을 구분할 때 사용한다. 2. namespace 사용하기 ① namespace 생성 CLI $ kubectl create namespace blue $ kubectl get namespaces yaml $ kubectl create namespace green --dry-run -o yaml > green-ns.yaml $ vim green-ns.yaml $ kubectl create -f green-ns.yaml ② namespace 관리 $ kubectl get namespace $ kubectl del..