전체 글 293

2024년 독서 목록 - 성장

작년 한해는 너무 나태했던 것 같다. 다시 책을 읽고 나를 성장시킬 수 있는 한해가 되도록 하겠다. No. Reading Complete Title Author Jenre Review Grade One Line Review Review Action Item 1 1/9 세이노의 가르침(오디오북) 세이노 자기계발 4 그릇만큼 담을 수 있는 가르침 이 책이 어떤 책인지 모른채, 유명세에 이끌려 책을 펼쳤는데 짬짬이 들으려고 오디오북을 선택했다. 텍스트북에는 솔직, 과감, 거친? 표현이 많이 있는 것 같은데 오디오북은 정제된 표현으로 성우가 작가의 의중만 잘 전달하는 것 같다. 거친 표현방식에 거부감이 있는 독자는 오디오북을 추천한다. 내용은 다들 예상하듯 성실, 집요함으로 성공한 한 사람의 이야기와 가르침을 ..

티스토리 투 티스토리, 포스팅 옮기기

방치해놨던 블로그를 다시 운영하려다 보니 기존 블로그에 주제가 너무 다양?하여 몇몇 주제는 새로운 블로그를 만들어 관리를 하려고 한다. 하지만, 기존 포스팅을 그대로 복사+붙여넣기 하면 기존/새로운 블로그에 컨텐츠 중복이라는 저품질이 발생한다 하여 포스팅 이동 절차를 정리한다. 1. 옮기려는 포스팅을 미리 비공개로 전환.(삭제 금지!!) 2. 블로그 검색이 등록된 포털 사이트에서 포스팅 검색 제외 요청 NAVER - 네이버 서치 어드바이저(https://searchadvisor.naver.com/) 에서 검색 제외 GOOGLE - 구글 서치 콘솔(티스토리 블로그 설정메뉴 -> 플러그인 -> 연결된 구글 서치 콘솔로 접속)에 접속하여 '오래된 콘텐츠 탭' click -> 제출된 요청(?) click -> ..

AIEMAG/끄적끄적 2024.01.06

k8s - Secret

k8s에서 기밀 정보를 별도 리소스에 정의하고 파드에서 읽어들일 수 있는 시크릿에 대해 정리합니다. ※ 시크릿을 정의하고 있는 매니페스트는 base64로 인코드되어 있지만 암호화되어 있지 않아 매니페스트를 깃 저장소 등에 업로드하는 것은 불가능. 이러한 문제를 해경하기 위해 시크릿이 정의된 매니페스트를 암호화하는 kubesec/SealedSecret/ExternalSecret 같은 오픈 소스 소프트웨어도 있음. 시크릿 분류종류개요Opaque일반적인 범용 용도kubernetes.io/tlsTLS 인증서용kubernetes.io/basic-auth기본 인증용kubernetes.io/dockerconfig/json도커 레지스트리 인증 정보용kubernetes.io/ssh-authSSH 인증 정보용kuberne..

k8s - DemonSet

DemonSet? DemonSet은 각 노드에 파드를 하나씩 배치. ※ replicaset은 각 kubernetes node에 총 N개의 파드를 노드의 리소스 상황에 맞게 배치. ※ demonset은 repica 수를 지정할 수 없고 하나의 노드에 두 개의 파드를 배치할 수도 없음. ※ demonset은 모니터링이나 로그 전송과 같은 용도로 많이 사용. DemonSet 특징 - demonset은 파드를 배치하고 싶지 않은 노드가 있을 경우 nodeSelector나 노드 anti pod affinity를 사용한 스케줄링으로 예외 처리 할 수 있음. ※ anti pod affinity: inter pod affinity 와는 반대로 특정 파드와 함께 배포되는 것을 피하도록 배포될 노드를 결정. - kuber..

k8s - ClusterIP

ClusterIP ? ClusterIP 서비스는 쿠버네티스의 가장 기본이 되는 서비스. ClusterIP 서비스를 생성하면 쿠버네티스 클러스터 내부에서만 통신 가능한, Internal Network에 생성되는 가상 IP가 할당된다. 따라서 ClusterIP라고 불림. ClusterIP와 통신은 각 노드상에서 실행중인 시스템 구성 요소 kube-proxy가 파드로 전송을 실시. ClusterIP는 쿠버네티스 클러스터 외부에서 트래픽을 수신할 필요가 없는 환경에서 클러스터 내부 로드 밸런서로 사용. 기본적으로 쿠버네티스 API에 접속하기 위한 Kubernetes 서비스가 생성되어 있고, ClusterIP가 발급되어 있음. ClusterIP 서비스 생성 다음의 매니페스트로 ClusterIP 서비스를 생성. s..

k8s - kubernetes 클러스터 네트워크와 서비스

개요 파드 내부의 컨테이너 통신과 파드 외부의 컨테이너 간 통신. 쿠버네티스 클러스터 내부에 구축된 파드 네트워크 파드에 트래픽 로드 밸런싱 - 서비스는 수신한 트래픽을 여러 파드에 로드 밸런싱하는 기능을 제공. - 파드는 기동될 때마다 각각 다른 IP 주소를 할당받기 때문에 로드 밸런싱하는 구조를 자체적으로 구현하려면 각 파드의 IP 주소를 매번 조회하거나 전송 대상의 목적지를 설정해야 함. - 서비스를 사용하면 여러 파드에 대한 로드 밸런싱을 자동으로 구성할 수 있음. - 서비스는 로드 밸런싱의 접속 창구가 되는 앤드포인트도 제공.(외부 로드 밸런서가 할당하는 가상 IP 주소나 클러스터 내부에서만 사용할 수 있는 가상 IP 주소 등 여러 가지 종류를 제공.) sample-deployment.yaml ..

k8s - Deployment

Deployment? deployment는 여러 replicaSet을 관리하여 롤링 업데이트나 롤백 등을 구현하는 리소스. deployment가 replicaSet을 관리하고 replicaSet이 pod를 관리하는 관계. 다음 순서로 동작 1. 신규 replicaset을 생성 2. 신규 replicaset의 replica 수(pod 수)를 단계적으로 늘림. 3. 이전 replicaset의 replica 수(pod 수)를 단계적으로 줄임. 4. (2, 을 반복) 5. 이전 replicaset은 replica 수를 0으로 유지. Deployment 생성 sample-deployment.yaml apiVersion: apps/v1 kind: Deployment metadata: name: sample-depl..

k8s - ReplicaSet

ReplicaSet? Workload API중의 하나로 ReplicaSet은 Pod의 Replica를 생성하고 지정한 Pod 수를 유지하는 Resource ReplicaSet 생성 Pod를 Replica 수 3으로 확장시킨 ReplicaSet Manifest apiVersion: apps/v1 kind: ReplicaSet metadata: name: sample-rs spec: replicas: 3 selector: matchLabels: app: sample-app template: metadata: labels: app: sample-app spec: containers: - name: nginx-container image: nginx:1.16 ※ 기동 중인 세 개의 Pod를 확인할 수 있음. 실..

k8s - Pod

Pod? 워크로드 리소스의 최소 단위. 한 개 이상의 컨테이너로 구성. 같은 파드에 포함된 컨테이너끼리는 네트워크적으로 격리되어 있지 않고 IP 주소를 공유. 컨테이너가 두 개 들어 있는 파드를 생성한 경우 같은 IP 주소를 가짐. Pod Design Pattern 크게 Sidecar, ambassador, adapter 가 있음. Sidecar Pattern 메인 컨테이너 외에 보조적인 기능을 추가하는 서브 컨테이너를 포함하는 패턴. 대부분 데이터와 설정에 관련된 패턴. 사용 예 1. 특정 변경 사항을 감지하여 동적으로 설정을 변경하는 컨테이너 2. 깃 저장소와 로컬 스토리지를 동기화하는 컨테이너 3. 애플리케이션의 로그 파일을 오브젝트 스토리지로 전송하는 컨테이너 Ambassador Pattern 메..

k8s - Overview

k8s 구조 기본 k8s master node의 역할 API 엔드포인트 제공 컨테이너 스케줄링/스케일링 k8s worker node의 역할 docker host에 해당 실제로 컨테이너를 가동시키는 노드 k8s cluster 관리 CLI 도구인 kubectl과 YAML, JSON 형식으로 작성된 manifest file을 사용하여 k8s master에 resource를 등록해야 함. kubectl은 manifest file 정보를 바탕으로 k8s master가 가진 API에 요청을 보내어 k8s를 관리. k8s api는 일반적으로 restful api로 구현되어 있어 kubectl 사용 없이 각종 프로그램 언어의 restful api나 curl등으로 직접 api 호출하여 k8s 관리 가능. k8s Reso..

반응형