Kubernetes 27

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

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

쿠버네티스 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

쿠버네티스 시험 준비할 때 익혀두면 편한 리눅스 명령어들

grep 옵션 검색어 밑으로 10줄만 보여주기 grep -i {검색어} -A 10 예시 : kubectl get pod webapp-color -o yaml | grep -i strategy -A 10 검색어 위로 10줄 보여주기 grep -i {검색어} -B 10 검색어 위아래로 10줄 보여주기 grep -i {검색어} -C 10 vi 편집기 한줄 삭제 : dd 현재 줄부터 10개줄 삭제 : 10dd 현재 줄부터 아래 모두 삭제 : dG 현재 커서 위치부터 해당줄 끝까지 삭제 : d$ 파일의 제일 첫줄로 이동 : gg 파일의 제일 끝줄로 이동 : G 30번째 줄로 이동 : 30 + G 한 줄 복사하기 : yy 아래로 다섯줄 복사하기 : 5yy 다음줄에 붙여넣기 : p 문장 맨 앞으로 이동 : ^ 문장 ..

Kubernetes 2023.01.09

NodePort 간단 설명

노드포트 간단 소개 노드포트(NodePort)는 모든 워커노드의 특정 포트(=Nodeport)를 열고, 이 포트에 오는 모든 요청을 노드포트 서비스로 포워딩한다 클러스터 외부에서 접속 불가하다는 ClusterIP 의 단점을 해결할 수 있는 서비스중에 가장 원시적인(primitive) 방법이다. 노드포트의 특징 노드포트로 노출한다는 것은 곧 Pod나 deployment가 있다는 뜻이다 노드포트는 노드가 3개든, 100개든 모두 동일한 노드포트가 열려진다. 노드포트는 30000-32767 사이의 포트 대역을 사용한다 포트(spec.ports.port) 는 서비스에 대한 포트번호다. 타겟포트(spec.ports.targetPort)는 파드의 컨테이너에 대한 포트(spec.containers[].ports[]...

Kubernetes 2022.06.25