전체 글 794

쿠버네티스 오퍼레이터 스터디 2주차 - mysql operator router설정 확인

안녕하세요. 이 글은 mysql operator router설정을 살펴봅니다. mysql operator가 설치되어 있다는 전제로 내용을 소개합니다. mysql operator를 설치하지 않았더라면 이전글(https://malwareanalysis.tistory.com/341)을 참고해주세요. 1. router가 관리하는 mysql 인스턴스 목록 router가 관리하는 mysql인스턴스 목록은 메타데이터 캐시파일(state.json)파일에서 쉽게 확인할 수 있습니다. headless서비스를 이용하여 mysql pod목록을 관리합니다. kubectl -n mysql-cluster exec -it deploy/mycluster-router -- cat /tmp/mysqlrouter/data/state.jso..

연재 시리즈 2022.06.04

쿠버네티스 오퍼레이터 스터디 2주차 - mysql operator설치

이 글은 mysql operator설치 방법에 대해 소개합니다. 1. mysql operator 소개 oracle기업이 22.5월에 mysql operator을 공식 릴리즈했습니다. mysql은 oracle기업이 관리하고 있어 공식 operator라는 점이 가장 눈에 띕니다. mysql operator는 InnoDB cluster 관리를 자동화합니다. 그래서 msyql-operator를 설치과정에 InnoDB클러스터 구성이 있습니다. mysql-operator를 설치하면 아래 그림과 같은 아키텍처를 가지고 있습니다. 자세한 내용(https://blogs.oracle.com/mysql/post/mysql-operator-for-kubernetes-reaches-general-availability)에서 볼..

연재 시리즈 2022.06.04

쿠버네티스 오퍼레이터 스터디 1주차 - Headless서비스

이 글은 1주차에서 공부한 headless서비스를 정리했습니다. 1. 쿠버네티스 서비스 동작 headless서비스를 이해하기 전에 쿠버네티스 서비스 동작을 이해해야 합니다. 이전 글(https://malwareanalysis.tistory.com/265?category=1070989)에서 설명했듯이, 쿠버네티스 서비스는 1개 이상 파드에게 네트워크를 랜덤으로 분산시키는 역할을 합니다. 외부 또는 서비스에 속한 파드 모두 무작위로 파드에 접근하게 됩니다. 정리하면 서비스를 이용하여 파드에 접근할 경우, 클라이언트가 A파드로 가기를 원해도 A파드로 못갈 수 있습니다. 2. Headless 서비스 동작 반면, headless서비스는 클라이언트가 원하는 파드로 접근하게 합니다. A파드로 가고 싶으면 A파드로, ..

연재 시리즈 2022.05.26

쿠버네티스 오퍼레이터 스터디 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명령어를..

SK OOO AWS 프로젝트를 마치며

2022. 4월 파견간 곳이 계약이 임시만료되어 SK OOO 프로젝트에 긴급투입되었습니다. 4.18 ~ 5.2동안 프로젝트를 수행하여 무사히 완료되었습니다. 프로젝트 주제는 IDC로 운영하고 있는 데이터 파이프라인과 애플리케이션을 AWS클라우드로 마이그레이션 하는 작업이었습니다. AWS잘 모르는데 빨리 끝내야하는 프로젝트에 투입된 ... 프로젝트를 진행하면서 기억에 남는 내용을 정리하려고 합니다. 1. 계정별 네트워크 분리와 연결 SK OOO 보안규정으로 네트워크 망을 계정별로 분리하고 연결시켰습니다. 보안팀 개발팀 운영팀의 의견 다툼이 있었던 부분이었습니다. 개발, 운영팀은 한 계정안에 VPC로 환경을 분리하고 싶었지만 보안팀은 내부규정때문에 환경별로 계정분리를 원했습니다. 결과적으로 보안을 준수해야하..

회고모음 2022.05.15