클라우드 스쿨/강의 정리

15주차 - 쿠버네티스, 특강

qqlzzb 2023. 12. 4. 16:59
기간 230814 - 230818
배운 내용 쿠버네티스, 특강

 쿠버네티스

1. 트러블슈팅 

: 문제의 원인 찾아 빠르게 다시 작동시킬 수 있도록 노력하는 것.
- 트라이 앤 에러 : 하나씩 해보는 것. 시간 많이 걸림

1) 문제 식별하기
코딩된 부분만 볼 게 아니라 시스템 전반적 변화 확인해야 함(환경변수 바뀌거나 등등) 
로그 확인해서 누가 어떤 작업 후에 동작 변했는지 확인해야 함.

2) 문서화
해결한 문제 어떻게 해결했는지 문서화
정상동작 위한 환경, 설정값 어떻게 구성했는지 등을 적고 공유
-> 다음에 문제 발생시 빨리 해결, 문제 또 생기지 않도록 방지 가능

3) 도구
- 로깅
- 로그 수준

2. 쿠버네티스에서 애플리케이션 트러블슈팅

파드의 수명주기 : 파드가 어떤 노드에서 실행가능한지 스케줄링하는 단계 거쳐서 노드 선택한 후, 해당 노드에서 이미지다운.

이미지 준비후 컨테이너 실행(스케줄링->이미지다운->컨테이너실행)
펜딩(컨테이너 실행전까지)->러닝(실행)->succeed/failed(성공/실패)

문제가 있어서 중지된 경우 재시작 정책에 의해 재시작됨(기본값은 always)

3. 프로브

1) 활성 프로브 : 파드가 살아있는지 잘 동작하는지 확인. 컨테이너 실행 중이지 않으면(동작 제대로 되지 않고 있으면) 컨테이너 재시작해줌.
2) 준비성 프로브 : 준비가 되어있는지 확인. 파드 안에 실행하는 어플리케이션이 잘 준비돼서 언제든 서비스 제공 가능한지 체크
서비스에 대한 연결 설정을 자동으로 관리해 줌(문제 있으면 연결해제)
3) startup 프로브 : 실행이 잘 됐다고 판단. 최초 한번만 확인

- 헬스 체크
1) http 기반 체크 : http get 요청 보내서 200번 코드 오면 정상
2) tcp 기반 체크 : 소켓 연결 가능한지 확인. tcp 세션이 연결되지 않으면 실패
3) 명령어 기반 체크(exec) : 명령어 실행 후 종료코드가 0이 아니면 실패
4) gRPC

 


 특강

1. 클라우드

1) 정의 
보이지 않는 컴퓨팅 자원(cpu, 메모리, 디스크)을 원하는대로 가져다 쓰고 쓴 만큼 비용 지불.
서버 직접 구매할 때 고려해야 할 전력, 위치, 서버세팅, 확장성을 고민하지 않고 서비스 운영에만 집중 가능.

2) 단점
장애 종속성 : 클라우드 제공업체의 장애 / 중단으로 인한 영향
보안위험 : 조직 외부에 저장된 애플리케이션과 데이터, 클라우드의 제공업체의 높은 보안이 필요

3) 서비스모델: on premises(데이터센터 소유), iaas(EC2), paas(OpenShift), saas(Slack, Dropbox)

4) 종류 :
프라이빗 클라우드 : 보안성 높고 서비스 확장성 낮음
퍼블릭 클라우드 : 보안성 낮고 서비스 확장성 높음

보안성 확보가 필요한 중요 업무는 프라이빗 클라우드로
중요도 낮은 업무(백업 등)는 퍼블릭 클라우드로
하이브리드 클라우드 : 프라이빗과 퍼블릭의 단점 보완

멀티 클라우드 : aws, googlecloud, microsoft등 클라우드 여러 개 씀. 장애 날 때를 대비해서 멀티클라우드 사용

2. vm과 컨테이너

출처 : https://www.weave.works/blog/a-practical-guide-to-choosing-between-docker-containers-and-vms


vm은 하이퍼바이저 위에 각각의 os가 존재
컨테이너는 동일한 os 커널을 공유하며, 프로세스 수준에서 격리

3. 클라우드 네이티브

: 클라우드에 올라갈 것을 전제로 애플리케이션 구축/실행하는 방식
목표 : 변화하는 요구사항에 빠르게 적응 가능한 유연하고 가용성 높은 확장 가능한 소프트웨어 아키텍처 만드는 것
4가지 요소 : cicd / devops / microservies / containers

ci : Build + Test + Merge

cd : Deploy

4. 데브옵스

: 개발과 운영 결합해서 탄생한 개발방법론
개발 조직 / 운영 조직 분리하지 않고 cicd 파이프라인 통해서 개발, 테스트, 배포, 운영에 이르는 전체 생명주기를 긴밀하게 통합하여 관리.
핵심원칙 : 협업 및 커뮤니케이션, sw 개발 라이프사이클 자동화, 지속적 개선 및 낭비 최소화

'클라우드 스쿨 > 강의 정리' 카테고리의 다른 글

17주차 - 젠킨스  (0) 2023.12.06
16주차 - 특강  (0) 2023.12.05
14주차 - 쿠버네티스  (0) 2023.12.01
13주차 - 리눅스, 도커  (0) 2023.11.30
11주차 - AWS  (0) 2023.11.29