전체 글 1156

Headless Service

Headless Service 일반적인 쿠버네티스 서비스와 유사하지만 IP를 할당받지 않는다. request를 로드밸런싱 하지 않으며, 포드 이름과 하위 도메인을 이용해 각 포드에 대한 DNS만 생성한다. DNS 형식 POD_NAME.SVC_NAME.CLUSTER_DOMAIN_NAMESPACE 예시 ) mysql-0.mysql-h.default.svc.cluster.local 생성 방법 yaml 형식의 정의 파일을 작성하여 create 명령으로 생성한다. apiVersion: v1 kind : Service metadata: name: mysql-h spec: ports: - port: 3306 selector: app: mysql clusterIP : None # 일반 서비스와 차별점 일반 서비스 생성..

git reset - add 취소

실수로 github 레포지터리에 푸시하지 않아도 되는 파일을 add 했다. 현재 stage 상태인 파일을 unstage 상태로 변경하려고 한다. 두괄식으로 결론만 먼저 적으면, add 취소할 파일을 지정하여 git reset 명령을 실행하면 된다. 아래 명령어는 모두 동일한 명령어다. git reset git reset --mixed git reset --mixed HEAD # 위와 동일한 명령어 # 예시 git reset README.md 기본 개념 HEAD 현재 브랜치를 가리키는 포인터 브랜치는 브랜치에 담긴 커밋 중 가장 마지막 커밋을 가리킨다. HEAD가 가리키는 커밋은 다음 커밋의 부모가 된다. Index Staging Area. 다음에 커밋할 것들. git commit 명령 실행 시 git이 ..

Git | GitLab 2021.08.30

Stateful Sets Introduction

Stateful Set 필요성 포드가 정해진 순서대로 생성되어야 하는 경우 포드에 고정적인 이름이나 주소가 필요한 경우 생성 방법 yaml 형식의 정의 파일을 작성한 뒤, create 명령으로 생성한다. Deployment와 비슷하게 작성한 후 kind 값만 StatefulSet으로 변경하면 된다. 서비스 이름을 지정해야 하며, Stateful Sets 생성 시 배포 순서대로 포드가 생성된다. apiVersion: apps/v1 kind: StatefulSet metadata: name: mysql labels: app: mysql spec: templete: metadata: labels: app: mysql spec: containers: - name: mysql image: mysql replica..

Stateful Sets

Stateful Sets deployment와 유사하게 포드를 관리하는 개체 템플릿 기반으로 포드 생성 scale up, scale down 가능 롤링 업데이트 & 롤백 수행 가능 모든 포드가 동시에 배포되어 포드의 순서를 보장하지 않는 deployment와 다르게, 포드의 순서를 보장한다. 포드 배포 순서 보장 -> 배포한 포드가 Running/Ready 상태로 진입해야 다음 포드를 배포한다. 각 포드에 고유한 인덱스(0부터 시작하여 1씩 증가)를 할당 -> Deployment의 경우, 배포 시 포드 이름을 임의(Random)로 설정한다. 포드 종료 후 재생성되더라도, 동일한 이름으로 생성 -> 포드의 고정 ID 유지 가능 참고 문서 https://livebook.manning.com/book/kube..

Storage Class

정적 프로비저닝 볼륨파일 등을 통해 특정 용량을 가진 PV를 미리 생성해 두고 요청이 있을 때 생성한 PV를 할당하여 사용하는 방식 동적 프로비저닝 볼륨사용자가 요청할 때 자동으로 PV를 생성하여 할당 스토리지 클래스PV를 동적으로 프로비저닝 할 때 사용하는 provisioner 정의스토리지 클래스를 생성하면 PV와 관련 스토리지가 자동으로 생성되기 때문에 yaml 형식의 PV 정의 파일이 필요하지 않다.PVC 정의 파일에 스토리지 클래스의 이름을 지정하여, 스토리지 클래스를 설정한다. 스토리지 클래스가 설정되면 provisioner를 사용하여 필요한 크기의 디스크를 프로비저닝 한 PV를 생성하여 PVC에 바인딩한다. 정의 파일 형식apiVersion: storage.k8s.io/v..

[AWS cli] 사용할 계정(profile) 등록/지정

Profile AWS cli에 적용할 수 있는 설정 및 자격 증명의 모음 AWS IAM에서 생성한 사용자 액세스 키를 aws configure 명령으로 등록하여 구성한다. 액세스 키를 생성한 사용자에게 필요한 권한이 적절하게 부여되어 있는지 확인한다. proflie 등록 AWS cli는 기본적으로 default 프로파일을 사용한다. 하지만 --profile 옵션으로 이름을 지정하면 여러 프로파일을 등록하여 필요에 따라 사용할 수 있다. 설정해야 하는 정보는 액세스 키 ID, secret 키, 리전 그리고 출력 형식이다. # default 프로파일 등록 aws configure # 지정된 이름의 프로파일 등록 aws configure --profile 리눅스에서 설정한 프로파일은 아래의 경로 파일에 저장된..

AWS 2021.08.26

[AWS cli] s3 파일/디렉터리 다운로드

S3의 특정 경로의 디렉터리를 서버로 다운로드할 필요가 생겼다. 이 글에서는 AWS cli를 이용한다. 따라서 당연히 AWS cli가 설치되어 있어야 한다. AWS cli 설치 확인 aws --version 이 서버는 aws ec2여서 그런지 이미 설치되어 있었다. 혹시 설치되어 있지 않다면 아래의 공식 문서 또는 구글링 해서 설치한다. https://docs.aws.amazon.com/ko_kr/cli/latest/userguide/cli-chap-install.html 참고로 AWS CLI 2가 최신 버전이다. 현재 설치되어 있는 버전은 AWS CLI 1이지만 크게 문제는 없을 것이다. S3 권한 확인 또한, S3에 접근해야 하기 때문에 S3 접근 권한이 있어야 한다. 권한은 AWS 콘솔에서 액세스 ..

AWS 2021.08.25

sed - 문자열 치환

개요 2021.07.26 - sed - 쉘에서 파일 내용 일부 삭제에 이어 이번 글은 명령어로 파일 내에 특정 문자열을 찾아 다른 문자열로 바꾸려고 한다. 엑셀이나 텍스트 편집기의 ctrl + f 후, 바꾸기 기능이라고 생각하면 된다. 명령어 sed -i 's///g' # -i : 편집 결과를 파일에 저장 # 예시 sed -i 's/#/=/g' text.txt s/// SERACH에 해당되는 문자열을 찾아서 REPLACE로 치환한다. 일반 텍스트 또는 정규표현식을 사용할 수 있다. g 한 행에 같은 내용이 여러 번 나타나도 모두 치환한다. 예시 결과 여러 파일 한 번에 변경 파일 지정 시 *을 사용하면 해당하는 파일을 한 번에 변경할 수 있다. 예시 sed -i 's/#/=/g' *.txt sed -i ..

Linux 2021.08.24

Persistent Volumes

배경 2021.08.22 - Volumes 위의 글에서, 볼륨에 대한 스토리지 구성 정보가 yaml 형식의 포드 정의 파일 내에 포함되었다. 이런 구성 방법은 많은 Pod를 배포하는 대규모 환경에서 적절하지 않다. 이유 어떤 스토리지 솔루션을 사용하든 포드가 많아지는 경우, 각 포드에 대한 스토리지를 매번 구성해야 한다. 구성에 변경이 발생할 때마다, 모든 포드에서 변경을 해주어야 한다. => 스토리지의 중앙 관리 필요 Persistent Volumes 관리자가 구성한 클러스터 전체의 스토리지 볼륨 풀 클러스터에 애플리케이션을 배포하는 사용자가 사용하며, 사용자는 Persistent Volumes Claims를 사용하여 풀에서 스토리지를 선택한다. 생성 방법 yaml 형식의 정의 파일을 작성한 후 cre..

Persistent Volume Claims

Persistent Volume Claims Persistent Volume과 마찬가지로 쿠버네티스 개별 개체 관리자가 Persistent Volume의 집합을 생성하면, 사용자는 스토리지를 사용하기 위해 Persistent Volume Claims 생성 Persistent Volume Claims 생성 시, 쿠버네티스는 Persistent Volume Claims 설정에 따라 Persistent Volume을 바인딩한다. 모든 Persistent Volume Claims은 Persistent Volume에 바인딩된다. 바인딩하는 과정에서 쿠버네티스는 Persistent Volume Claims이 요청한 용량, 접근 모드, 볼륨 모드, 스토리지 클래스 등의 속성에 따라 바인딩할 Persistent Vol..