본문 바로가기

전체 글

(90)
[Sprint3] 가상화 한방정리 IT의 직군들 + IaaS, PaaS, SaaS, KaaS 가상화 기술 비교 컨테이너 기술의 장점 - 앱에 대한 일관성 보장 VM의 단점 - 개발자의 환경과, 개발환경이 다르면 앱의 동작이 달라질 수 있음- GuestOS 패치시 OpenJDK도 버전을 올려야할 수 있음 (대부분의 설치 패키지들은 OS의 기본 라이브러리들에 dependency를 두기 때문)- 개발자는 OpenJDK의 버전까지 고려해서 앱을 만드는 경우가 없음 -> 몇 가지 기능 테스트 후 버전을 올림(찜찜함)=> 결국 담당자들 간의 긴밀한 협의가 필요하게 됨 Container 환경 - 개발자는 컨테이너 환경을 세팅해야하지만, 개발 환경과 같은 환경에서 개발할 수 있음 - 인프라 담당자의 관리 영역이 줄어듦( VM 구성 불필요..
DNS란 DNS 란? Domain Name System 혹은 Service 혹은 Server라고 부른다. url을 IP 주소로 변환한다. 그러니까 http:// 주소를 172.18.0.0 이런 식으로 바꿔준다는 것이다. 이런 과정을 거치는 이유?컴퓨터는 우리가 쓰는 도메인 이름을 인식하지 못하기 때문에, IP주로소 바꿔서 통신을 해주기 때문이다. DNS의 구조- 클라이언트/서버 구조 웹(클라이언트)에서 서버로 IP 정보를 요청하는 것이다. - 계층형 데이터베이스 구조 .을 루트 도메인이라고 한다. 이런 루트 도메인은 ICANN이라는 기관에서 관리한다. 최상위 도메인은 TLD(Top Level Domain)라고도 부른다. 2단계 도메인은 SLD(Second level Domain)이다. 상위 도메인에서 하위 도..
EKS에서 alb 사용하기 참고https://docs.aws.amazon.com/eks/latest/userguide/lbc-manifest.html=> ALB 설치 과정 그대로 따라감 https://kubernetes.io/docs/concepts/services-networking/ingress/#ingress-controllers 사전 지식 Ingress란? HTTP와 HTTPS 경로를 노출시킨다. 트래픽 라우팅은 Ingress resource에 의해 정의된 룰에 의해 제어된다. 외부에서 접근 가능한 URL을 제공트래픽 부하를 분산SSL/TLS를 종료 ( 암호화를 Ingress 단에서 처리하여 서비스의 부담을 줄임)이름 기반 호스팅을 제공할 수 있다. (한 IP로 여러 도메인 주소 호스팅)(임의로 포트나 프로토콜을 ..
EKS에서 Cloudwatch Container Insights 사용하기 참고: https://github.com/aws-samples/amazon-cloudwatch-container-insights/blob/main/k8s-deployment-manifest-templates/deployment-mode/daemonset/container-insights-monitoring/quickstart/cwagent-fluent-bit-quickstart.yaml (공식 Github) Cloudwatch에서 metric을 수집 1. Cloudwatch Agent 설치 EKS에서 metric을 수집하려면 꼭 CloudWatch Agent를 설치해야 한다. 왜냐하면 Cloudwatch는 내부의 정보는 확인할 수 없기 때문! (그래서 EC2의 메모리 정보도 OS 내부의 정보라서 ..
ArgoCD의 project(AppProject)에 대해 공식 문서: https://argo-cd.readthedocs.io/en/stable/user-guide/projects/공식문서를 참고하여 정리한 글입니다. Project애플리케이션을 논리적으로 그룹화하여 여러 팀에서 ArgoCD를 사용할 때 유용함 => 여러 팀이 있을 때 사용하면 매우 유용하다! Application의 Project 변경(설정) 하는 법argocd app set --project 기능1. Git 레포지토리를 선택해서 배포할 수 있는 항목을 제한할 수 있다. 2. 앱이 배포될 위치(대상 클러스터 및 네임스페이스)를 제한한다. 3. 배포 가능한 리소스의 종류를 제한한다(CRD, DeamonSet 등의 위험한 리소스는 배포 금지)4. 역할 지정이 가능하다. (사용자/토큰만..
[Sprint2] ArgoCD 설치과정 총정리 원래 이전 포스팅으로 수업이 완전히 끝났지만, ArgoCD로 배포 시 에러가 생겼다. 이를 해결해야 하는데 개념이 혼재된 느낌이라 해결 방법을 찾기가 어려웠다. 그래서 마지막으로 ArgoCD 설치 과정에 대한 정리를 해보았다. 1. 사전 작업미리 강사님께서 Artifact Hub에서 argo-cd, argocd-image-updater, argo-rollouts package를 Github에 업로드 해놓으셨다. https://cafe.naver.com/f-e/cafes/30725715/articles/118?boardtype=L&menuid=13&referrerAllArticles=false여기에 상세 과정이 나와있다. 생각해둘 것은 k8s-1pro/install/tree/main/ground/cic..
[Sprint2] ArgoCD Rollouts 사용하기 ArgoCD 없이 Rollouts를 사용할 수 있을까?Yes 사용 가능막상 설치해보면 독립적인 솔루션이다 (대시보드가 독립적으로 있음)다만 ArcoCD를 사용하면 Rollouts를 위한 버튼이 더 생기는 것 Blue/Green 배포- 배포 시 롤백이 빠름- 배포 중 v1, v2 동시 호출 없음- Script를 통해 자동 배포 가능- v2에 과도한 트래픽 유입시 문제 발생 Rollouts 설치 후 1. Rollout 컨트롤러 만들어짐 (k8s는 CRD라고 누구나 커스텀 리소스를 만들 수 있다-go 언어 로직 개발 필요, 이걸로 Replicaset 등 동작 변형이 가능하다)2. 핵심 Service 2개 지정 1) 실제 서비스 사용자가 들어오는 Active Service2) 업그레이드 중 v2로만 들어갈..
[Sprint2] ArgoCD Image Updater 이용하기 ArgoCD Image Updater를 사용하는 이유 배포를 하게 되는 경우1. 리소스 스펙을 변경해야 하는 경우 => 수동 작업 필요(deployment에서 배포 전략을 바꾼다거나 수동으로 scale up을 해야할 때)Devops 엔지니어는 yaml 파일을 수정해서 Git에 commit하고 배포 잡을 실행한다 -> k8s에 반영됨 2. App 버전 업그레이드로 컨테이너 이미지를 변경해주어야 할 때 => 자동화 가능 개발자가 소스 빌드 잡을 실행하면, 최신 소스를 가지고 자료 파일이 만들어지고 이어서 컨테이너 빌드를 하고 도커 허브에 이미지를 업로드 해준다. -> 배포 실행 (원래라면 Devops 엔지니어가 yaml 파일에서 이미지 태그를 수정해야 하지만 helm을 쓰면 배포 명령에 동적으로 태그 ..