전체 글 83

bash grep, cut, >(Redirection) 활용

grep 명령어 -i (ignore case) 대소문자 구분하지 않는다. -w(word regular expression) 단어 단위로 찾는다. cut 명령어 -d(delimiter) 지정한 구분자를 사용한다. -f(fields) 필드를 기준으로 자른다. 예제 현 디렉토리에 있는 파일들 중, 대소문자를 구분하지 않고, yaml이 포함된 파일 이름들만 골라내어, yamls.txt파일에 저장하세요. ls -al | grep -i -w yaml | cut -d' ' -f?? > yamls.txt ls -al | grep -i -w yaml | awk '{print $9}' > yamls.txt

꺼내먹어요 2023.01.31

kubectl - create, apply의 차이점

변경의 차이 create, apply 모두 스펙에 따라 pod 생성을 하는 기능을 갖고 있지만, 스펙 파일을 일부 변경하고 create를 호출하면 이미 만들어진 오브젝트이기 때문에 실행이 불가능하다. 하지만 apply는 생성이 아닌 적용이기 때문에 변경한 스펙에 맞춰준다는 특징이 있다. create문 재호출 $ kubectl create -f ./pod.yaml $ # pod.yaml 수정 $ kubectl create -f ./pod.yaml Error from server (AlreadyExists): error when creating "pod.yaml": deployments.apps "deploy-sample" already exists apply문 재호출 $ kubectl apply -f ./..

Kubernetes 2023.01.02

Object의 정의

Spec, Status과 같은 속성을 가진 것. Pod k8s에서 실행되는 최소단위의 오브젝트. 독립적 공간과 사용 가능한 IP를 갖고있다. 파드는 클러스터 안에서 유동적이기 때문에 IP가 고정될 수 없다. 하나의 파드는 하나 이상의 컨테이너를 갖고있다. Namespace 클러스터 안에서 리소스들을 특정 기준으로 묶어서 관리하는 그룹. Volume 파드를 생성할 때 파드를 사용할 수 있는 디렉토리를 제공한다.(파드내 저장공간) 파드가 사라져도 저장가능한 디렉토리를 볼륨을 통해 생성하고 사용할 수 있다. Service k8s 외부에서 내부로 접근할때 도와주는 객체. Deployment 파드를 기반으로 레플리카셋 오브젝트를 합친 형태. deployment에 지정된 레플리카셋에 따라 파드 개수를 유지한다. 즉..

Kubernetes 2023.01.02

Pod와 Deployment의 차이

Pod는 단 한개로서 생성 및 관리 되지만, Deployment는 관리되는 그룹 안에서 지정된 파드(들)이 생성된다. Deployment 생성 스펙에 replicas가 pod의 개수를 의미한다. apiVersion: apps/v1 kind: Deployment metadata: name: nginx-deployment labels: app: nginx spec: replicas: 3 selector: matchLabels: app: nginx template: metadata: labels: app: nginx spec: containers: - name: nginx image: nginx:1.14.2 ports: - containerPort: 80

Kubernetes 2023.01.02

k8s - 구성요소 및 간단한 정리

User 사용자는 명령어를 입력하여 마스터 노드를 거쳐 각 노드들을 제어한다. API Server 쿠버네티스 중심 역할. etcd와 주로 통신한다. 개발자로부터 명령어를 입력받게 되면 이를 인증과 권한처리를 진행하게 된다. etcd 각 구성 요소들의 상태값을 key, value 형식으로저장한다. 분산 저장이 가능해서 장애발생시 복구가 가능하기 때문에 가용성을 확보할 수 있다. Controller 지정된 클러스터의 오브젝트 상태를 유지하고 관리한다. Scheduler 노드 상태와 자원 등을 고려하여 적절한 곳을 찾아 파드를 생성하는 것을 돕는다. Kubelet 파드안의 컨테이너들이 정상적으로 작동하는지 모니터링 한다. 워커 노드에서 kubelet이 멈추면, kubectl 명령어를 수행할 때 무한대기 현상이..

Kubernetes 2023.01.01

AWS SES Java SDK 여러명 Email 전송 로직

공지사항과 같이 여러명에게 이메일을 전송할 때, 메일 수신자가 받는 사람이 자신만을 표기하기 위한 로직. SendEmailRequest emailRequest = new SendEmailRequest().withSource(from) .withDestination(new Destination().withToAddresses(receivers)) .withMessage(message); 위와 같이 수신자들을(receivers) 한 번에 담아서 보내면 단점이 있다. 수신자들 중 한명이라도 이메일 형태가 잘못되면 모두 못 보낸다.(Error Code : InvalidParameterValue) 이메일 받는사람에 모든 수신자들이 표기되어 보안정책이 빡세면 개인정보 노출이 될 수 있다. 따라서 Credential..

꺼내먹어요 2023.01.01