[Kubernetes] Common - 3. Configmap & Secret
·
Kubernetes/Common
1. Cofigmap 과 Secret 이란?Cofigmap 과 Secret 모두 쿠버네티스(Kubernetes)에서 애플리케이션 설정값을 외부에서 주입하기 위해 사용하는 리소스 객체민감하지 않은 정보의 경우 configmap 을 사용하고 민감 정보의 경우 base64로 인코딩 한 후 secret을 이용한다. *base64로 인코딩 하는 이유는 바이너리 데이터나 특수문자를 직접 다루기 어렵기 때문이지 보안 때문이 아니다. 쿠버네티스에서 secret 설정 yml 파일은 etcd 라는 key-value 저장소에 저장하는데, 이때 기본 설정에서는 암호화되지 않은 채 저장하기 때문에 운영 환경에서는 반드시 EncryptionConfiguration을 설정해 암호화 해야 하고, RBAC(Role-Based Acc..
[Kubernetes] GKE - 4. 노드 풀(Node Pool) 만들고 pod를 원하는 노드에 스케줄 하기
·
Kubernetes/GKE(Google Kubernetes Engine)
1. 노드 풀이란?같은 역할을 하기 위해 모인 여러 개의 노드같은 사양의 노드끼리 묶어 사양을 관리할 수 있다.2. 노드 풀 만들기1. 좌측 사이드 탭의 클러스터 클릭 -> 하단의 클러스터 이름을 클릭해 상세페이지로 이동 2. 상세페이지 상단의 노드 풀 추가 버튼 클릭 3. 노드 풀 세부정보 설정 이름을 설정하고, 클러스터 자동 확장 처리 사용 설정을 통해 최소 노드 수, 최대 노드 수를 설정할 수 있다. 4. 노드 세부 설정 사이드 탭의 노드를 클리해머신 구성 : N1부팅 디스크 크기 : 20 GB 5. 노드 확인 아래의 kubectl 명령어를 통해 노드를 확인해보면 기존의 default 그룹 외에 poo1-1 이라는 노드 그룹이 생성된 걸 확인할 수 있다.kubectl get nodes 3. 노드 풀..
[Kubernetes] Common - 2. Pod & ReplicaSet & Deployment
·
Kubernetes/Common
1. Pod란?Kubernetes에서 애플리케이션을 실행하는 가장 작은 배포 단위로, 하나 이상의 컨테이너를 묶은 논리적 단위이다.pod는 같은 네트워크 공간(IP, Port), 스토리지 볼륨, 라이프사이클을 공유한다. 2. Pod 샘플파일 형식 : .yml or .yamlapiVersion: v1kind: Podmetadata: name: sample-pod namespace: defaultspec: containers: - name: nginx image: nginx:1.27.0 resources: requests: cpu: "300m" memory: "500Mi" limits: cpu: "300m" memory: ..
[Kubernetes] GKE - 3. GCP에서 Artifact Registry를 이용한 컨테이너 레지스트리 생성 및 내 PC와 연결
·
Kubernetes/GKE(Google Kubernetes Engine)
1. GCP에서 Artifact Registry 를 검색해 상단의 저장소 만들기 클릭 2. 구성 설정형식 : Docker위치 유형 : 리전, asia-northeast3(서울)을 선택하고 나머지는 기본설정 유지한 채로 만들기를 누른다. 3. 내 PC의 Docker와 Artifact Registry 연결저장소 이름을 클릭해 상세화면에 들어가 설정 안내 버튼 클릭 Docker 구성 명령어를 복사 이때 \ 의 경우 줄바꿈을 위한 특수문자인데 window의 cmd에서는 ^로 바꿔주거나 아래와 같이 한 줄로 입력해야한다.gcloud auth configure-docker asia-northeast3-docker.pkg.dev입력시 아래와 같이 config.json 파일을 적용할 것인지 물어보면 y를 입력하면 ..
[Kubernetes] GKE - 2. 내 PC와 GCP의 GKE 연결하기(Windosw OS)
·
Kubernetes/GKE(Google Kubernetes Engine)
1. gcloude CLI 설치https://cloud.google.com/sdk/docs/install?hl=ko 사이트를 참고 Powershell 에서 아래 명령어 입력1. 구글 클라우드 SDK 인스톨러 파일을 내 컴퓨터 임시폴더에 다운로드 하는 명령어(New-Object Net.WebClient).DownloadFile("https://dl.google.com/dl/cloudsdk/channels/rapid/GoogleCloudSDKInstaller.exe", "$env:Temp\GoogleCloudSDKInstaller.exe")2. 임시 폴더의 해당 파일을 실행& $env:Temp\GoogleCloudSDKInstaller.exe 2. gcloud 로그인 창 오픈설치하면 gcloud CLI가 실..
[Kubernetes] GKE - 1. GCP(Google Cloud Platform)에서 GKE(Google Kubernetes Engine) 클러스터(Cluster) 만들기
·
Kubernetes/GKE(Google Kubernetes Engine)
1. GKE란?Google Kubernetes Engine의 약자로 구글 클라우드에서 쿠버네티스를 대신 설치하고 운영해주는 자동화된 관리 서비스다. 2. GKE 클러스터 생성 흐름1. https://console.cloud.google.com/ 에 접속한 후 검색창에서 GKE를 검색해 Kubernetes Engine에 들어간다 2. 해당 페이지에서 Kubernetes Engine API 사용 버튼을 클릭한다. 3. 활성화 되면 왼쪽 상단 Google Cloud 로고 옆의 3줄을 눌러 쿠버네티스 -> 클러스터 -> 만들기를 클릭한다. 4. 일반적으로 구글에서 Autopilot 이라는 잘 구성된 클러스터를 생성해 주지만 학습을 위해 우측 상단의 Standard 클러스터로 전환을 누른다. 5. 클러스터 기본..
[Kubernetes] Common - 1. 쿠버네티스란?
·
Kubernetes/Common
1. Kubernetes구글은 2000년대 초부터 리눅스 커널 기능인 cgroups(Control Groups), nameSpace를 이용해 커널 레벨에서 리소스와 프로세스를 격리하는 자체 컨테이너 기술을 사용해왔다. 이후 2000년대 중반 구글은 도커 공개 전에도 해당 자체 컨테이너 기술을 기반으로 Borg 라는 대규모 클러스터 관리 시스템을 개발해, 애플리케이션을 배포, 실행, 관리해왔다. 그러나 Borg는 중앙 집중형 아키텍처로 인해 유연성에 한계가 있었고, 이를 보완하기 위해 구글은 분산형 스케줄링 아키텍처를 적용한 Omega라는 새로운 시스템을 개발했다. Omega는 여러 스케줄러가 동시에 동작하면서도 충돌을 해결할 수 있는 구조로, 보다 유연하고 확장성 높은 클러스터 관리를 가능하게 했다. 2..