데이터 엔지니어링 35

[SRE] SRE란 (Site Reliability Engineering)

https://bcho.tistory.com/1325 SRE - #1 SRE/DEVOPS의 개념과 SRE는 무엇을하는가? Site Reliability Engineering(SRE) #1 SRE/DEVOPS의 개념 조대협 (http://bcho.tistory.com) 배경 Devops는 운영팀과 개발팀을 하나의 팀으로 묶어놓고 전체적인 개발 사이클을 빠르게 하고자 하는 조직 구조이자.. bcho.tistory.com DevOps와 SRE DevOps 엔지니어(운영)의 역할 DevOps는 개발과 운영이 하나의 팀으로 묶여 개발 사이클을 빠르게하는 조직구조이자 문화 클라우드로 개발자가 직접 배포/운영이 가능 그러나 시스템이 커지면서, 안전성을 중요하게 생각하는 "운영"의 역할이 여전히 필요 SRE 개발자가 ..

[K8s] 쿠버네티스 명령어 모음

K8s 설명 명령 옵션 클러스터 시작 kubeadm init 클러스터 정보 kubectl cluster-info 실행중인 pod 확인 watch kubectl get pods --all-namespaces 이벤트 확인 kubectl get events --namespace={네임스페이스} pod 정보 확인 kubectl describe pods {POD 이름} --namespace={네임스페이스} 클러스터 노드 확인 kubectl get no token 확인 kubeadm token list discovery-token-ca-cert-hash openssl x509 -pubkey -in /etc/kubernetes/pki/ca.crt | openssl rsa -pubin -outform der 2>/de..

[K8s] Helm

정의 The package manager for Kubernetes - k8s 패키지 관리자 Node.js의 npm / python의 pip 주요 개념 Chart Repository Release Chart 헬름 패키지 k8s cluster에서 애플리케이션이 가동되기 위한 모든 리소스 포함 - ex) mariadb 가동을 위한 리소스 : Deployemnt, Secret, Service Repository 차트 저장소 Release k8s cluster에서 구동되는 chart의 인스턴스 동일한 chart를 여러 번 설치하면 새로운 release로 관리 Repository에서 원하는 Helm Chart를 검색/설치 후 Release 생성 Helm v3 helm v2 -> v3에서 변화가 큰 듯 - Helm..

[클라우드] 배포 전략 (인플레이스, 롤링, 블루/그린, 카나리)

https://dev.classmethod.jp/articles/ci-cd-deployment-strategies-kr/ 매번 헷갈리는 CI/CD 배포 전략 정리해버리기 | DevelopersIO AWS 자격증을 공부하다가 매번 헷갈리는 배포 전략에 대해서 정리해보았습니다. dev.classmethod.jp 인플레이스 [정의] 새로운 버전의 어플리케이션만 반영하는 방법 [절차] 어플리케이션 일시 정지 -> 최신 버전으로 설치 -> 앱 실행 [사용] EC2, 온프레미스 환경에서만 사용 가능 롤링 배포 [정의] 한 번에 정해진 수 만큼씩 새로운 버전을 배포 [방식] 구버전에서 새버전으로 트래픽을 점진적으로 전환하여, 구버전이 점차 삭제 [장점] 서버 수의 제약이 있을 경우 유용한 방법 - [단점] 배포 중 ..

[K8s] Cluster 초기세팅 에러 (coredns PENDING)

coredns가 PENDING [문제] 처음 클러스터를 시작했을 때, coredns가 PENDING에서 넘어가지 않음 [원인] Control Plane에서는 초기 pod이 실행되지 않도록 설정되어있음 [해결] Untaint not-ready까지 untaint >> kubectl taint node {노드이름} {노드뒤에 적힌것} >> kubectl describe node {노드이름} | grep Taints 서비스 재시작 (containerd, kubelet) >> sudo systemctl restart containerd >> sudo systemctl restart kubelet https://17billion.github.io/kubernetes/2019/04/24/kubernetes_contr..

[K8s] 쿠버네티스 애드온

https://kubernetes.io/ko/docs/concepts/overview/components/ 쿠버네티스 컴포넌트 쿠버네티스 클러스터는 컴퓨터 집합인 노드 컴포넌트와 컨트롤 플레인 컴포넌트로 구성된다. kubernetes.io 정의 쿠버네티스 리소스(Daemonset, Deploymnet 등)을 이용하여 Cluster 기능 구현 - Daemonset : Pod의 복제본을 Cluster Node 집합에서 동작하게 함 - Deploymnet : Cluster에서 복제된 애플리케이션 관리 Cluster 단위 기능을 제공하므로 kube-system namespace에 속함 DNS Cluster DNS는 구성환경 내 다른 DNS 서버와 더불어, 쿠버네티스 서비스를 위해 DNS 레코드를 제공 쿠버네티스..

[K8s] 쿠버네티스 노드(Node) 컴포넌트

https://kubernetes.io/ko/docs/concepts/overview/components/ 쿠버네티스 컴포넌트 쿠버네티스 클러스터는 컴퓨터 집합인 노드 컴포넌트와 컨트롤 플레인 컴포넌트로 구성된다. kubernetes.io 정의 동작 중인 pod를 유지시키고 쿠버네티스 런타임 환경을 제공 모든 노드 상에서 동작 kubelet Cluster의 각 Node에서 실행 역할 Pod에서 컨테이너가 확실하게 동작하도록 관리 제공된 PodSpec의 집합을 받아 컨테이너가 이에 따라 건강하게 동작하는 것을 확실히 함 쿠버네티스를 통해 생성되지 않은 컨테어는 관리하지 않음 kube-proxy Cluster의 각 Node에서 실행되는 네트워크 프록시 쿠버네티스의 Service 개념의 구현부 - Servci..

[K8s] 쿠버네티스 컨트롤 플레인(Control Plane) 컴포넌트

https://kubernetes.io/ko/docs/concepts/overview/components/ 쿠버네티스 컴포넌트 쿠버네티스 클러스터는 컴퓨터 집합인 노드 컴포넌트와 컨트롤 플레인 컴포넌트로 구성된다. kubernetes.io 정의 Cluster에 관한 전반적인 결정(스케줄링 등)을 수행 클러스터 이벤트를 감지하고 반응 - ex) deployment의 replicas 필드에 대한 요구 조건이 충족되지 않으면 새로운 pod를 구동시킴 특징 클러스터 내 어떤 머신에서든 동작 가능 그러나 보통 동일 머신상에서 모든 Control Plane 컴포넌트를 구동 그리고 해당 머신에서는 사용자 컨테이너를 동작시키지 않음 kube-apiserver 쿠버네티스 API를 노출하는 컴포넌트 - 쿠버네티스 Cont..

[K8s] Kubernetes (K8s)

https://kubernetes.io/ko/docs/concepts/overview/what-is-kubernetes/ 쿠버네티스란 무엇인가? 쿠버네티스는 컨테이너화된 워크로드와 서비스를 관리하기 위한 이식할 수 있고, 확장 가능한 오픈소스 플랫폼으로, 선언적 구성과 자동화를 모두 지원한다. 쿠버네티스는 크고 빠르게 성장하 kubernetes.io 정의 컨테이너화된 워크로드와 서비스를 관리하기 위한 이식성 있는 / 확장 가능한 오픈소스 플랫폼 이름 유래 키잡이(helmsman), 파일럿을 뜻하는 그리스어에서 유래 K8s의 8은 K와 s 사이에 있는 "ubernete" 8글자를 의미 쿠버네티스가 필요한 이유 프로덕션 환경에서는 애플리케이션을 실행하는 컨테이너가 필요 - ex) 컨테이너가 다운되면 다른 컨..