Cloud
[AWS] VPC(Virtual Private Cloud)
VPC란? VPC는 이름 그대로 AWS 상의 논리적인 가상 네트워크를 생성할 수 있는 서비스이다. Default VPC AWS에서는 AWS 계정을 생성한 직후에 VPC가 생성되어 있고 이것을 default VPC라고 부른다. 나같은 경우에는 default VPC에서 사용하는 네트워크 주소가 172.32.0.0/16로 되어 있었다. VPC 생성 VPC는 VPC 전체 네트워크 주소를 정의하고, 그 네트워크 주소 안에 각 서브넷을 생성하는 환경이다. Name tag : VPC를 구별하는 이름 CIDR block : VPC 전체 네트워크 주소 Tenancy : 전용 물리 하드웨어 옵션, 주로 기업 컴플라이언스나 라이선스 등의 관계로 물리적인 분리나 전용 장비가 필요한 경우에 사용한다. 여기서는 전용 하드웨어는 ..
[AWS] EBS(Elastic Block Store)
EC2에서는 두 종류의 블록 디바이스가 스토리지로 사용된다. 첫 번째는 EBS라고 불리는 높은 가용성과 내구성을 가진 스토리지다. EBS 볼륨은 타입에 따라 성능이 달라지므로 시스템의 역할과 용도에 맞게 성능을 계산해서 선택해야 한다. 성능은 IOPS(Input/Output Per Seconds)라는 단위가 사용된다. 두 번째는 인스턴스 스토어라고 부르는 인스턴스 전용의 일시적인 스토리지다. '인스턴스 전용'이란, 다른 인스턴스에 볼륨을 붙일 수 없다는 뜻이며 인스턴스가 기동중에만 사용할 수 있어 인스턴스가 정지 및 삭제하면 복원할 수 없게 된다. 그래서 인스턴스 스토어에는 데이터베이스 파일이나 삭제되면 곤란한 데이터를 저장하지 말아야 한다. 그러나 직접 인스턴스에 연결되어 있으므로 인스턴스 타입에 따라..
[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
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
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..