분류 전체보기 719

쿠버네티스 오퍼레이터 스터디 1주차 - 실습

이 글은 1주차에서 진행한 실습내용을 정리했습니다. 1. 인프라 구조 aws환경에서 네이티브 쿠버네티스를 사용했습니다. 2. 클러스터 구축 스터디에서 공유된 cloudformation템플릿을 사용하여 쿠버네티스를 구축했습니다. CNI는 calico를 사용했습니다. $ curl -O https://s3.ap-northeast-2.amazonaws.com/cloudformation.cloudneta.net/K8S/cloudneta-k8s.yaml $ aws cloudformation deploy --template-file cloudneta-k8s.yaml --stack-name myk8s --parameter-overrides KeyName= SgIngressCidr= # 원격 접속 후, 쿠버네티스 클러스..

연재 시리즈 2022.05.24

쿠버네티스 오퍼레이터 스터디 1주차 - statefulset이란

이 글은 1주차에서 진행한 statefulset을 정리한 내용입니다. 1. stateful vs stateless statefulset을 공부하기 전, stateful과 stateless어감부터 느껴야 합니다. 컴퓨터 과학(CS)에서는 관계의 상태를 유지하는 것을 stateful이라고 부릅니다. 반대로, 관계를 유지 않으면 stateless라고 부릅니다. 대표적인 예로 네트워크 통신이 있습니다. 4계층 관점에서 TCP는 신뢰성을 보장하기 위해 상태를 유지하는 stateful이고 UDP는 상태를 유지하지 않는 stateless 프로토콜입니다. 7계층 관점에서는 HTTP는 상태를 저장하지 않는 stateless프로토콜입니다. 그대로 쿠버네티스에 적용하면, 쿠버네티스 어떤? 관계 유지 설정 해주는 것이 바로 ..

연재 시리즈 2022.05.23

kubernetes deployment 배포버전 관리

쿠버네티스 deployment는 replicaset을 관리하는 쿠버네티스 리소스입니다. 실행중인 replicaset과 이전 replicaset의 기록은 rivision으로 etcd에 저장됩니다. 그리고 rivisionHistory에서 확인할 수 있습니다. 커맨드로는 kubectl rollout history로 확인가능합니다. argocd를 사용하시는 분은 대시보드에서 시각적으로 확인할 수 있습니다. 운영할 때 많은 rivision을 기록하고 싶지 않으면 deployment.spec.revisionHistoryLimit 필드를 수정하여 변경할 수 있습니다. 예제 링크: https://github.com/srmproject/JCP-Front-Core/blob/d03e8fcab80e22624b4038b637d..

5월 3주차 회고

SK OOOO 재계약이 되어 근무지가 분당으로 변경되었습니다. □ 회사 1. python 가상환경 troubleshooting aws cloud9, 구름 IDE처럼 사내 플랫폼에서 데이터 과학자를 위한 vscode, jupyter시리즈 IDE를 제공하고 있습니다. IDE는 쿠버네티스로 관리되고 있습니다. 문제는 python 가상환경이 적용안되어서 원인을 찾고 가상환경 적용을 완료했습니다. 문제원인은 ubuntu에서 python패키지 미설치여서 해결과정은 이전 글(https://malwareanalysis.tistory.com/334)에 게시했습니다. 2. CI/CD시스템 오류 troubleshooting 사내 플랫폼 helm차트는 jenkins로 배포되고 있는데 어느날 부터 안되었고 약 3주간 방치되어 ..

회고모음 2022.05.22

컨테이너 디버깅에 유용한 Entrypoint 오버라이딩

개요 종종 컨테이너 디버깅 할 때, 의도한 entrypoint를 실행하지 않으면서 아무것도 실행하지 않는 상황이 필요합니다. 이런 상황에서 좋은 디버깅 방법을 소개합니다. 영상: https://youtu.be/EQ0YBv0w0Js 예제 예제는 간단한 파이썬 애플리케이션을 사용합니다. 예제 git링크: https://github.com/choisungwook/debug_container_with_sleep 디버깅 방법 entrypoint를 오버라이딩하는 방법으로 아무것도 실행하지 않는 상태(정확히 말하면 무한 sleep)로 컨테이너를 실행할 수 있습니다. 컨테이너가 실행되면 entrypoint에 정의된 명령어를 실행합니다. entrypoint를 오버라이딩은 컨테이너에 이미 설정된 entrypoint명령어를..