전체 글 42

네이버클라우드 퇴근길 테크밋업 : 챗봇 개발자 모임 후기

안녕하세요. 네이버클라우드 콘텐츠 마스터 라온클 이수진입니다. 지난 2월 15일 네이버클라우드 강남 교육장 Ncloud Space에서 열린 에 다녀왔습니다. 퇴근길 밋업 소개 퇴근길 테크밋업은 평일 저녁에 열리는 테크 모임입니다. 작년 초엔 온라인으로 열리다가, 이젠 오프라인 행사로도 열리고 있습니다. 이번 2월에 열린 테크 밋업의 주제는 챗봇💬이었는데요. 챗봇 밋업에는 현직 챗봇 기획자, 챗봇 개발자 그리고 챗봇을 더 잘 이해하고 싶은 분들이 모여서 야기를 나누었습니다 :) 이미지 출처: https://blog.naver.com/n_cloudplatform/223026580975 자기소개 발표 전에 밋업에 참석하신 참관자, 사회자, 발표자 분들 모두 사전에 제출한 [MBTI를 곁들인 자기소개] 시간이 ..

Naver Cloud 2023.02.28

Limit Ranges

(특정 네임스페이스 안에서)시스템 자원에 대한 사용량을 오브젝트 단위로 관리하는 방법 시스템 자원에 대한 사용량을 오브젝트 단위로 관리하는 방법 별도의 오브젝트마다 정의해줄 수 있다.(pod에 대해, pvc에 대해) Limit Ranges는 네임스페이스 단위로 관리한다 오브젝트 단위로 사용량을 관리하되, 그 범위는 클러스터 전체가 아닌 특정 네임 스페이스 안에서만 적용된다. 1네임스페이스 1Limit Ranges A네임스페이스에 Limit Ranges가 생기면, 오직 해당 A네임스페이스에만 Limit Ranges가 적용된다. Limit Ranges의 type으로는 Container, Pod, PersistentVolumeClaim 세가지가 있다. Limit Ranges를 넘는 사양의 Pod를 생성하면 생..

Kubernetes 2023.02.11

Ingress

Ingress는 HTTP, HTTPS 등 네트워크 Layer 7에 대한 설정을 담당하는 리소스다. Ingress의 가장 기본적인 역할은 외부 HTTP 호출에 대한 트래픽을 처리하는 것이다. (예시 : 부하 분산, TLS 종료, 도메인 기반 라우팅 기능 등) Ingress는 쿠버네티스 클러스터 내부 서비스에 외부에서 접근 가능한 URL을 부여함으로써 일반 사용자들이 쉽게 접근할 수 있는 통로를 제공한다. Ingress에는 그에 맞는 Controller가 존재하며, Ingress Controller는 Ingress에 정의된 트래픽 라우팅 규칙을 보고 라우팅을 수행한다. Ingress 리소스 자체로는 어떠한 프로그램이 작동하는 코드가 아니라 트래픽 처리에 대한 정보를 담고 있는 정의에 가깝다. 예를 들어, 일..

Kubernetes 2023.02.07

Rolling Update

롤링 업데이트 새 버전을 배포하면서, 기존 Pod를 제거하고, 새로운 버전의 pod를 지정한 개수만큼 생성하는 방식. 새로운 버전의 Pod를 생성하고 기존 Pod를 제거한다. 무중단 배포라고도 한다. Deployment의 업데이트방식 기본값이다. maxUnavailable 롤링 업데이트 중에 사용할 수 없는 최대 파드의 수(=롤링 업데이트 중에 동시에 삭제할 수 있는 파드의 최대 개수) 퍼센트(%) 혹은 개수를 지정해줄 수 있다.(3으로 지정하면 기존 Pod 3개가 삭제, 10%로 지정하면 기존 Pod들의 10%가 삭제) maxUnavailable의 값을 높게 설정하면, 롤링 업데이트 시간이 줄어드는 대신, 기존 남아있는 Pod들에 Request수가 몰릴 수 있다. 따라서 1로 설정해서 Pod를 하나씩 ..

Kubernetes 2023.02.04

ServiceAccount

시스템이 사용하는 계정(사람이 쓰는 ID처럼 시스템이 쓰는 계정!) 시스템이 사용하는 계정 네임스페이스에 속하는 오브젝트다. 서비스 어카운트는 부여된 Role이외의 명령어는 실행할 수 없다. UserAccount ServiceAccount 주체 사람 파드에서 실행되는 프로세스 범위 클러스터 안의 모든 네임스페이스 특정 네임스페이스 특징 기업 데이터베이스로부터 동기화될 수 있다. 사람이 사용하는 것이기 때문에, 새 계정을 생성하려면 특별한 권한이 필요하며 복잡한 비즈니스 프로세스에 연결된다. 클러스터 사용자가 최소 권한 원칙에 따라 간단하게 만들 수 있다. 특정 작업을 위한 서비스 어카운트를 만들 수 있도록 보다 가볍게 만들어졌다. 1.각 네임스페이스에는 기본적으로 default라는 서비스가 자동생성된다...

Kubernetes 2023.01.29

ConfigMap

설정값을 따로 모아두고, 필요할 때 꺼내서 사용할 수 있는 메커니즘 (a.k.a 설정값 통) 설정값을 저장하는 리소스 pod의 spec에 일일히 직접 설정값을 명시하는게 아니라, ConfigMap에 모든 설정값들을 저장해놓고 Pod에서 필요한 정보들을 불러올 수 있다 볼륨 연결, 환경변수 설정같은 방법으로 활용할 수 있다. 활용 방법 1 : 볼륨 연결하기 # game-volume.yaml apiVersion: v1 kind: Pod metadata: name: game-volume spec: restartPolicy: OnFailure containers: - name: game-volume image: k8s.gcr.io/busybox command: [ "/bin/sh", "-c", "cat /etc..

Kubernetes 2023.01.29

Resource requirements(Request & Limit)

컨테이너 단위에 limit 설정하기 request와 limit는 Pod가 아니라(!)컨테이너 단위에 정의된다. 하지만 Pod의 Request와 Limit은 포함된 컨테이너의 Request와 Limit의 합계로 생각할 수 있다. (오차 있음) Limit 값은 Request값보다 크거나 같아야 한다. 하나의 Pod에서 a컨테이너와 b컨테이너가 있다고 생각해볼 때, 해당 Pod는 서로 다른 Request와 Limit을 가진 컨테이너 2개를 가지게 되는 것이다!! Request보다 적은 Limit을 정의하려고 하면 쿠버네티스에서 해당 Pod를 생성하도록 허용하지 않는다. 장점 : Request와 Limit을 정의하는 것은 쉽다 단점 : 수많은 개발자들이 작업하는 대규모 클러스터에서는 Request와 Limit이..

Kubernetes 2023.01.22

job

job은 컨테이너를 사용하여 한번만 실행되는 리소스다. job은 기동중인 Pod가 정지되는 것을 전제로 만들어졌다.(레플리카셋 등 다른 리소스들은 running을 전제로 만들어졌다) 일회성 배치 처리 작업에 유용하다(예시 : S3같은 오브젝트 스토리지에 파일 업로드, 머신러닝 학습 등) job은 Pod의 정지가 정상 종료되는 작업에 적합하다 completions : 성공 횟수 지정. 기본값 1. 변경 불가. parallelism : 병렬성 지정. 기본값 1. 변경 불가. backoffLimit : 성공할 때까지 재시도(실패 허용) 횟수. 변경 불가. backoffLimit 횟수가 2일 경우 : 총 3번 실행(첫 시도 + 2번 재시도) backoffLimit 횟수를 1개 이상 설정할 경우 Job의 연산이 ..

Kubernetes 2023.01.22

쿠버네티스 apiVersion이란?

쿠버네티스 apiVersion이란? 한줄 요약하면 오브젝트를 포함하는 API의 버전이다. apiVersion은 "group/version" 형태다. 쿠버네티스 버전에 따라 사용 가능한 apiVersion이 다르다. 일반적으로 alpha, beta 버전은 안정적이진 않지만, 그만큼 풍부한 기능을 갖고있기도 하다 쿠버네티스에서 사용 가능한 apiVersion은 kubectl api-versions 명령어로 확인할 수 있다. 오브젝트의 apiVersion 확인하는 방법 kubectl explain {오브젝트 종류} 예시 : kubectl explain cronjob 했을 때, 'VERSION: batch/v1' 이 cronjob의 apiVersion 이다. controlplane ~ ➜ kubectl expl..

Kubernetes 2023.01.15

CKAD 후기 (Certified Kubernetes Application Developer)

CKA시험 이후 1년만에 Certified Kubernetes Application Developer(이하 CKAD)시험에 합격했습니다. 준비한 시간은 총 1년이고, 중간에 불합격해서 관둔 시간을 제외하면 제대로 준비한 기간은 세달 정도 걸렸던 것 같습니다. CKAD 시험 소개 CKAD 시험은 한마디로 Kubernetes Application을 잘 Develope 할 수 있는지 확인하는 시험이라고 할 수 있습니다. 시험 범위만 봐도, Application을 어떻게 구축할 것인가에 대해서 요구하고 있습니다. 참고로 CKAD와 CKA의 시험 범위와 난이도를 그림으로 비교하면 이런 느낌입니다. CKAD 시험 이야기 시험 링크 시험 공식 소개 페이지 : https://training.linuxfoundation..

Kubernetes 2023.01.09