728x90 개발강의정리/DevOps64 [데브옵스를 위한 쿠버네티스 마스터] 클러스터 유지와 보안, 트러블슈팅 - Accounts Accounts 어카운츠에는 두 가지의 타입이 존재 사용자를 위한 user 애플리케이션(포드 외)를 위한 service account Static Token File Apiserver 서비스를 실행할 때 --token-auth-file=SOMEFILE.csv 전달 (kube-apiserver 수정 필요) API 서버를 다시 시작해야 적용됨 토큰, 사용자 이름, 사용자 uid, 선택적으로 그룹 이름 다음에 최소 3 열의 csv 파일 password1,user1,uid001,"group1" password2,user2,uid002 password3,user3,uid003 password3,user4,uid004 Static Token File 을 적용했을 때 사용 방법 HTTP 요청을 진행할 때 다음과 같은.. 개발강의정리/DevOps 2021. 1. 20. [데브옵스를 위한 쿠버네티스 마스터] 클러스터 유지와 보안, 트러블슈팅 - 보안을 위한 다양한 리소스 보안을 위한 다양한 리소스 모든 통신은 TLS로 대부분의 엑세스는 Kube-apiserver를 통하지 않고서는 불가능 엑세스 가능한 유저 파일 – 유저 이름과 토큰 Service Accounts 인증서(Certificates) External Authentication Providers – LDAP 무엇을 할 수 있는가? RBAC Authorization ABAC Authorization Node Authorization WebHook Mode 개발강의정리/DevOps 2021. 1. 20. [데브옵스를 위한 쿠버네티스 마스터] 클러스터 유지와 보안, 트러블슈팅 - 백업과 복원 방법 백업과 복원 방법 백업 리소스의 종류 포드의 정보 파일 YAML $ kubectl get all --all-namspaces –o yaml > all-deploy-services.yaml $ kubectl create -f all-deploy-services.yaml YAML 에 저장된 데이터는 위의 명령어로 확인 후 백업 Etcd 데이터베이스 https://kubernetes.io/docs/tasks/administer-cluster/configure-upgrade-etcd/#backing-up-an-etcd-cluster configMap, secret, pvc 와 같은 데이터들은 etcd 에 저장된 데이터를 확인 후 백업 데이터 양이 그렇게 많지 않음 ETCDCTL_API=3 etcdctl --en.. 개발강의정리/DevOps 2021. 1. 20. [데브옵스를 위한 쿠버네티스 마스터] 클러스터 유지와 보안, 트러블슈팅 - 쿠버네티스 버전 업데이트 쿠버네티스 버전 업데이트 쿠버네티스 버전 2014년 처음 v0.4을 시작하여 2015년에 v1.0으로 메이저 버전 업그레이드 버전이 나타내는 내용 MAJOR MINOR: 특징, 기능 PATCH: 버그 픽스 모든 버그를 고치기 위해 alpha와 beta로 나누어 출시 후 정식 버전 진행 alpha: 추가되는 기능들을 disable한 형태로 배포 beta: 추가 기능들을 enable한 형태로 배포 release: 안정화된 버전을 배포 패키지마다 모든 컴포넌트는 동일한 버전으로 배포 API 서버, 컨트롤러 매니저, 스케줄러, 큐블렛, 큐브프록시 등 ETCD, 네트워크, CoreDNS는 제외 쿠버네티스에서 버전 호환 쿠버네티스는 apiserver를 기준으로 호환성을 제공 애플리케이션 지원 버전 범위 (apise.. 개발강의정리/DevOps 2021. 1. 20. [데브옵스를 위한 쿠버네티스 마스터] 클러스터 유지와 보안, 트러블슈팅 - 노드 OS 업그레이드 절차 노드 OS 업그레이드 절차 노드의 유지 보수 커널 업그레이드, libc 업그레이드, 하드웨어 복구 등과 같이 노드를 재부팅해야 하는 경우 노드를 갑자기 내리는 경우 다양한 문제가 발생할 수 있음 포드는 노드가 내려가서 5분 이상 돌아오지 않으면 그때 다른 노드에 포드를 복제 업그레이드 프로세스를 보다 효율적으로 제어하려면 하나의 노드 씩 다음 절차를 진행 현재 노드 확인 $ kubectl get node NAME STATUS ROLES AGE VERSION gke-cluster-1-default-pool-5f31eca2-1lhl Ready 4m46s v1.16.15-gke.6000 gke-cluster-1-default-pool-5f31eca2-7b8n Ready 4m47s v1.16.15-gke.600.. 개발강의정리/DevOps 2021. 1. 20. [데브옵스를 위한 쿠버네티스 마스터] 서비스 매쉬 환경 모니터링 도구 isio 시작하기 쿠버네티스 Istio 네트워크 메시 환경 모니터링 https://istio.io/docs/concepts/what-is-istio/ 1. Istio는 무엇인가? 쿠버네티스는 도커를 편리하게 컨트롤할 수 있게 하고 다양한 이점을 제공한다 그러나 다수의 컨테이너가 동작하는 경우에는 각 컨테이너의 트래픽을 관찰하고 정상 동작하는지 모니터링하기가 어렵기 때문에 DevOps 팀에 부담이 될 수 있다 개발자는 이식성을 위해 마이크로서비스를 사용하여 아키텍처를 설계하고 운영자는 이 컨테이너들을 다양한 클러스터에 배포하고 관리한다 서비스 메시의 크기와 복잡성이 커짐에 따라 이해하고 관리하기가 더 어려워진다(예: 로드 밸런싱, 장애 복구, 메트릭 및 모니터링) Istio는 이런 쿠버네티스 환경의 네트워크 메시 이슈를 보.. 개발강의정리/DevOps 2021. 1. 19. [데브옵스를 위한 쿠버네티스 마스터] 리소스 로깅과 모니터링 - EFK를 활용한 k8s 로그 모니터링 EFK를 활용한 k8s 로그 모니터링 이 글은 다음 사이트를 기반해 작성 됐습니다 https://akomljen.com/get-kubernetes-logs-with-efk-stack-in-5-minutes/ GCP를 활용해 GKE 1.15.12를 만들고 EFK 설치 과정을 진행 1. EFK 개요 EFK는 각각 다음과 같은 의미를 갖고 있다 엘라스틱스택은 주로 비츠나 로그스태시를 사용하는 것이 일반적이지만 쿠버네티스에서는 fluentd를 사용해서 수집하는 것이 유행인 듯 하다 E: Elasticsearch 데이터베이스 & 검색엔진 L: Logstash 데이터 수집기, 파이프라인(여기서는 F: Fluentd를 대신 사용한다) K: Kibana 그라파나의 역할, 대시보드 (SIEM, 머신러닝, Alert) .. 개발강의정리/DevOps 2021. 1. 19. [데브옵스를 위한 쿠버네티스 마스터] 리소스 로깅과 모니터링 - GKE에서 프로메테우스 설치와 모니터링 GKE에서 프로메테우스 설치와 모니터링 쿠버네티스 클러스터 모니터링 툴과 서비스 사용 현황 프로메테우스 https://cloud.google.com/monitoring/kubernetes-engine/prometheus?hl=ko GKE에 프로메테우스를 설치하려면 최소 노드당 CPU 2 이상의 퍼포먼스가 필요 영역: asia-northeast3-a 노드: 일반용도 N1 n1-standard-2(vCPU 2ro, 7.5GB 메모리 선택) Marketplace 에서 Prometheus & Grafana 검색 후 설치(네임 스페이스를 별도로 할당) 네임스페이스만 prometheus 로 수정 만약 prometheus 가 제대로 설치되지 않아 계속 Pending 된다면 애플리케이션에서 삭제하고 재설치 프로메테우스.. 개발강의정리/DevOps 2021. 1. 19. [데브옵스를 위한 쿠버네티스 마스터] 리소스 로깅과 모니터링 - 큐브 대시보드 설치와 사용 큐브 대시보드 설치와 사용 Kubernetes Dashboard Kubernetes 클러스터 용 범용 웹 기반 UI 사용자는 클러스터에서 실행중인 응용 프로그램을 관리하고 문제를 해결, 클러스터 자체를 관리 https://github.com/kubernetes/dashboard Kubernetes Dashboard 설치 https://github.com/kubernetes/dashboard 다음 명령을 사용하여 git에 올라온 yaml 파일을 바로 적용 $ kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.1.0/aio/deploy/recommended.yaml namespace/kubernetes-dashboard cr.. 개발강의정리/DevOps 2021. 1. 19. [데브옵스를 위한 쿠버네티스 마스터] 리소스 로깅과 모니터링 - 애플리케이션 로그 관리 애플리케이션 로그 관리 Kubernetes 애플리케이션 로그 확인 로그는 컨테이너 단위로 로그 확인 가능 싱글 컨테이너 포드의 경우 포드까지만 지정하여 로그 확인 멀티 컨테이너의 경우 포드 뒤에 컨테이너 이름까지 전달하려 로그 확인 $ kubectl logs kubeapi가 정상 동작하지 않는 경우 쿠버네티스에서 돌아가는 리소스들은 모두 docker를 사용 따라서 docker의 로깅 기능을 사용 docker ps -a를 사용하여 조회 가능 docker logs 를 사용하여 로그 확인 가능 Kubernetes 애플리케이션 로그 확인 $ kubectl logs kube-dns-6987857fdb-4zbsg -n kube-system dnsmasq I0102 05:53:18.559043 1 main.go:78.. 개발강의정리/DevOps 2021. 1. 19. [데브옵스를 위한 쿠버네티스 마스터] 리소스 로깅과 모니터링 - 쿠버네티스 모니터링 시스템과 아키텍처 쿠버네티스 모니터링 시스템과 아키텍처 모니터링 서비스 플랫폼 쿠버네티스를 지원하는 다양한 모니터링 플랫폼 쿠버네티스의 메트릭 수집 모니터링 아키텍처에서 코어메트릭 파이프라인 경량화 힙스터를 deprecated하고 모니터링 표준으로 메트릭서버(metrics-server) 도입 $ kubectl top node NAME CPU(cores) CPU% MEMORY(bytes) MEMORY% gke-cluster-1-default-pool-f6cef6fa-hbbq 82m 8% 1092Mi 41% gke-cluster-1-default-pool-f6cef6fa-hmlx 67m 7% 935Mi 35% gke-cluster-1-default-pool-f6cef6fa-m8cn 96m 10% 1037Mi 39% $ kub.. 개발강의정리/DevOps 2021. 1. 19. [데브옵스를 위한 쿠버네티스 마스터] 애플리케이션 스케줄링과 라이프사이클 관리 - 오토 스케일링 HPA 오토 스케일링 HPA 포드 스케일링의 두 가지 방법 HPA: 포드 자체를 복제하여 처리할 수 있는 포드의 개수를 늘리는 방법 VPA: 리소스를 증가시켜 포드의 사용 가능한 리소스를 늘리는 방법 CA: 번외로 클러스터 자체를 늘리는 방법(노드 추가) HPA(Horizontal Pod Autoscaler) 쿠버네티스에는 기본 오토스케일링 기능 내장 CPU 사용률을 모니터링하여 실행된 포드의 개수를 늘리거나 줄임 VPA와 CA는 어떻게!? 공식 쿠버네티스에서 제공하지는 않으나 클라우드 서비스에서 제공 클러스터 자동 확장 처리(CA) https://cloud.google.com/kubernetes-engine/docs/concepts/cluster-autoscaler 수직형 pod 자동 확장(VPA) https.. 개발강의정리/DevOps 2021. 1. 19. 이전 1 2 3 4 5 6 다음 💲 추천 글 728x90