Kubernetes 56

Kube 백업 - Veeam Kasten 테스트 내역 공유

Kubernetes 백업 솔루션 Veeam Kasten 검증한 내용 공유해 드립니다. Kube PVC 백업은 아직 많이 사용 안 하시거나 오픈소스 Velero 혹은 다른 상용 솔루션 사용하시는 것 같은데, Kasten은 나름 장점이 있는 솔루션 같습니다. 라이선스는 커뮤니티 에디션이 있어 무료로 사용도 가능합니다. Enterprise 라이선스 구매하는 경우 저희가 파트너라 기술 지원이 가능합니다. 참고로 Kasten 구매하시면 저희가 Kube 교육도 가능합니다. ^^ https://jerryljh.tistory.com/12 00. Kube 교육 - 개요 및 목차 Why Kube 교육 제가 생각하기에 기업 환경의 Kubernetes 도입의 핵심은 내재화 입니다. 기존 상용 Solution 혹은 SI Pro..

Kube Project 수행 시 필요한 Tool Set List

지난 번 모 고객사 Kube 교육 중 문의하셔서 실제 Kube PJT 진행 시 필요한 업무를 Skill Set과 함께 순서대로 나열해 보았습니다. 제가 현재 사용 중인 Tool Set List라 빠진 부분이 많겠지만 참고 용도로 보시면 될 것 같습니다. Kube 설치 : KubeSpray (or k3s) ~/.kube/config 수정을 통한 원격 클러스터 관리 : VSCode, WSL, Window Terminal 기본 Kube Scheduling 기능 검증 : Desired State Kube Tool 이용 : kubeps, kubens, kubectx Custom 컨테이너 이미지 Build : Docker, dockerfile Docker 이미지 Push 할 로컬 이미지 Registry 설정 및 이..

24. Kube 교육 - Traefik Ingress L7 스위치

실습 Traefik 설치 Traefik 공인 인증서 변경, 복수 Port 설정 등 기능 검증 Why traefik ingress? MetalLB LoadBalancer는 순수 L4 기능만 필요한 경우 사용하고 TLS 인증서, 도메인 또는 Path 기반의 추가 L7 부가 기능이 필요한 경우 Ingress Controller를 사용해야 합니다. Kubernetes Ingress Controller로는 잘 알려진 NGINX, HAPROXY 등이 있습니다. 그 중 저는 Traefik을 사용합니다. NGINX가 점유율은 가장 높고 저희도 일부 실 서비스에도 사용 중이지만 NGINX Ingress Controller는 경험 상 POD가 재시작되면 hang이 걸리는 등 사소한 문제가 있었습니다. F5가 NGINX 인..

23. Kube 교육 - Polaris(보안 취약점 확인)

실습 Polaris 설치 Polaris 통한 보안 취약점 확인 및 취약점 개선(Redis Helm Chart) Why Polaris 직접 작성한 Kube YAML 파일 또는 Helm Chart를 이용하여 현재 클러스터에 적용된 YAML 파일이 보안 또는 고가용성 측면에서 최적화된 구성이 맞는지 궁금합니다. 물론, 사람들이 많이 사용하는 공식 Helm Chart는 아무래도 더 믿음(?)이 가기도 합니다. Polaris는 보안 및 고가용성을 고려한 자체 체크 리스트 DB를 가지고 있어 현재 실행 중인 Kube Object를 Best-Practice 기준으로 검사합니다. 그리고 그 결과를 웹화면에서 대쉬보드 형태로 제공합니다. 운영자는 해당 권고 사항에 따라 적절히 수정하시면 됩니다. Polaris : Bes..

22. Kube 교육 - HA 및 부하 테스트

실습 Demo 사이트 POD, Node 다운 시 서비스 이상 여부 검증 K6, Vegeta Tool 이용한 부하 테스트 Why HA & 부하 테스트? 현재 저희 고객사 시스템은 서비스 오픈 전 1~2일 정도 개발자 포함 운영자 분들이 모여서 HA 및 부하 테스트를 진행 합니다. 물리 노드 네트워크 케이블도 뽑아 보고 디스크도 뽑아 보면서 운영 상황에 발생 할 수 있는 여러 장애 상황을 미리 검증을 합니다. 물론 결과는 예상과 다르게 다양한 장애 상황이 발생 합니다. 분명히 POD, Node 이중화 되도록 잘 설계하고 적용하였는데 특정 POD는 안 넘어가던지 넘어가는 시간이 예상 시간 보다 훨씬 더 소요되는지 등 다양한 상황이 발생 합니다. 노드의 Local Disk를 사용해서 수동으로 PVC를 삭제해야 ..

21. Kube 교육 - ArgoCD for GitOps

실습 ArgoCD 설치 및 Kube Cluster, Git Repo 연동 ArgoCD를 이용한 Deploy 및 Helm Application 배포 GitOps 실습 : 명령어를 통한 Deploy 상태 수정 후 ArgoCD Sync 상태 확인 실습 내역을 교육 완료 후 테스트 클러스터 환경에서 직접 해 보시길 권고합니다. IT는 백문이 불여일타입니다. Why Argo for GitOps 실 서비스 운영 환경에서 다양한 담당자가 여러가지 이유로 Kube 클러스터 설정을 변경합니다. 문제는 수정된 History가 제대로 관리가 안 된다는 것 입니다. 개발자도 다양하고 운영자도 다양합니다. 가장 심각한 건 저는 제가 어제 왜 수정했는지 도무지 기억이 안 납니다. 운영 환경을 섣불리 k edit 으로 수정하고 해..

20. Kube 교육 - Local GitLab Repository

실습 Local GitLab Repo 설치 git commit & push Why GitLab Kube 환경에서는 Helm Chart 등 YAML 파일을 공유할 Git Repo가 필수적입니다. 기존 VM 환경과 다른 점 입니다. Public Github을 사용해도 되지만 외부에 오픈되었고(혹은 유료 Github Enterprise를 사용하면 Private 사용 가능합니다.) 최근에는 github 장애도 종종 발생하여 Local GitLab 환경을 더 많이 선호 합니다. GitLab은 잘 사용하면 CI/CD, Container Repository, DevSecOps 등 모든게 다 가능하다고 합니다. (물론 유료이지만. 참고로 기업 가치가 무료 3조, 대단합니다. 올해 상장 예정이라고 합니다.) GitLab..

19. Kube 교육 - Harbor

실습 Harbor 설치 및 컨테이너 이미지 업로드(push) Kubernetes YAML 파일 내 사설 Repo 사용 Harbor 이미지 보안 스캔 설정 사용 Why Harbor? Kubernetes를 사용하기 위해서는 보안상의 이유로 로컬 컨테이너 이미지 Registry를 사용합니다. 특히 도커 허브가 유료화 되면서 도커 허브는 사용량 제한(공인 IP 6시간 당 200개 컨테이너 Pull)이 걸리는 경우가 자주 발생합니다. 이미지 레지스트리로 사용 가능한 몇가지 옵션이 있는데 그 중 가장 많이 사용하고 성숙도도 높은(CNCF Graduated) Harbor가 가장 적합합니다. 간단한 소개는 아래 공식 홈페이지 내용으로 대신 합니다. What is Harbor? Harbor is an open sourc..

18. Kube 교육 - Loki Logging System

실습 Loki Helm 설치 POD 로그 조회 및 Filtering Why Loki kube 로그는 기존 VM legacy 시스템과 다르게 로그가 저장되지 않고, pod 수도 너무 많고 (1,000개 pod 넘는건 일도 아님) 또 여러 pod 로그를 동시에 보아야 하는 제약 사항이 있습니다. 이에, 기존 VM 환경 로그 시스템이 아닌 새로운 통합 log 시스템이 필요 합니다. Loki는 기존에 많이 사용하시는 ELK, FluentD 로그 시스템에 비하여 resource 소비도 작고 설치도 간편하여 최근에 많이 사용하고 있습니다. 저희 고객사도 현재 잘 사용 중인데 적용 시 고려했던 사항 위주로 실습과 함께 알아 보겠습니다. 기존 VM Legacy 로그 시스템 차이점 (VM 환경에 Elastic 사용하시면..

17. Kube 교육 - AlertManager 설정

실습 AlertManager 메일 서비스 알람 설정 추가 node down 등의 event 발생 시 정상적인 mail 수신 확인 What is AlertManager? 간단히 Prometheus 시스템 구성은 아래와 같습니다. Alertmanager는 Prometheus ‘push alerts’ 이벤트를 받아서 이를 Email, etc(Slack) 등으로 알람(‘notify’)하는 역할을 합니다. 간단히 요약하면 ‘alerts’는 Prometheus가 수집/발생하고 Alertmanager는 이를 전송하는 역할만 합니다. 참고로, AlertManager 역시 Prometheus, Grafana와 동일하게 Admin 웹페이지를 지원합니다. AlertManager Service 확인 [spkr@erdia22 ..