Cloud/Kubernetes

    [Kubernetes] Pod의 환경변수 설정하기

    [Kubernetes] Pod의 환경변수 설정하기

    1. 환경변수 Pod 내의 컨테이너가 실행될 때 필요로 하는 변수 컨테이너 제작 시 미리 정의 NGINX Dockerfile의 예 ENV NGINX_VERSION 1.19.2 ENV NJS_VERSION 0.4.3 Pod 실행 시 미리 정의된 컨테이너 환경변수를 변경할 수 있다. 2. 환경변수 사용 예 $ cat pod-nginx-env.yaml apiVersion: v1 kind: Pod metadata: name: nginx-pod-env spec: containers: - name: nginx-container image: nginx:1.14 ports: - containerPort: 80 protocol: TCP env: - name: MYVAR value: "testvalue" $ kubectl..

    [Kubernetes] Kubernetes Pod | static Pod

    [Kubernetes] Kubernetes Pod | static Pod

    1. static Pod API 서버 없이 특정 노드에 있는 kubelet 데몬에 의해 직접 관리됨 /etc/kubernetes/manifests/ 디렉토리에 k8s yaml 파일을 저장 시 적용됨 (yaml 파일 삭제 시 파드도 자동 삭제) static pod 디렉토리 구성 # vi /var/lib/kubelet/config.yaml //kubelet 데몬의 config 파일 ... staticPodPath: /etc/kubernetes/manifests 파일 내용 수정 시 kubelet 데몬 재실행 필수! # systemctl restart kubelet 2. Pod에 리소스(cpu, memory) 할당하기 Pod Resource 요청 및 제한 ① Resource Requests 파드를 실행하기 위한..

    [Kubernetes] Kubernetes Pod | init container

    [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] 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 생성, 관리

    [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

    [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..