Devops/Kubernetes (10) 썸네일형 리스트형 [Kubernetes] Metrics Server 설치 kubernetes를 사용하다보면 특정 노드나 Pod에서 사용하는 CPU, Memory 사용량을 확인해보고 싶을 때가 있다. 이때는 Metrics Server를 설치하여 각 Object들의 자원 사용률을 측정할 수 있다. Metrics Server는 Kubernetes 클러스터 내에서 자원 사용량을 집계하는 경량화된 서비스이다. CPU나 메모리 사용량에 기반하여 파드의 수를 자동으로 조절하고 노드와 파드의 자원 사용량을 확인할 수 있다. Prometheus와 같은 복잡한 모니터링 솔루션과 달리, Metrics Server는 오토스케일링에 필요한 단기적인 메트릭 수집에 특화되어 있다. Kubernetes 공식 Metircs Server 설치 방법kubectl apply -f https://github.c.. [Kubernetes] 쿠버네티스 Dashboard 설치하기 쿠버네티스 공식 홈페이지 yml로 서비스 설치를 수행한다. root@master:~# kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.7.0/aio/deploy/recommended.yaml namespace/kubernetes-dashboard unchanged serviceaccount/kubernetes-dashboard unchanged service/kubernetes-dashboard created secret/kubernetes-dashboard-certs created secret/kubernetes-dashboard-csrf configured Warning: resource secrets/kuberne.. [Kubernetes] jenkins Kubernetes 에 설치 및 배포하기 jenkins 를 kunernetes cluster 내부에 설치하고 pod 배포가 되도록 설정을 해본다. Kubernetes 상에서 Jenkins 설치하기 젠킨스 설치를 위한 yaml은 아래 git 에서 기본적으로 제공하고 있다. 아래 내용을 다운로드 받는다. git clone https://github.com/scriptcamp/kubernetes-jenkins namespace 를 아래와 같이 생성한다. kubectl create namespace devops-tools serviceAccount.yaml 실행 --- apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: name: jenkins-admin rules: - apiGr.. [Kubernetes] ingress 설정 Ingress 클러스터 외부에서 내부로 접근 요청을 어떻게 처리할 지 정의해 둔 규칙 L7 어플리케이션 수준의 접근 요청 처리 방법 제공 URL 제공, 트래픽 로드밸런스, SSL 인증처리, 도메인 기반 가상 호스팅 등 HAProxy, Envoy, Kong 같은 소프트웨어 프록시 등 3rd-party 소프트웨어 제공사에 의해서 제공되기도 함. 인그레스 : 접근 규칙(Rule)이 정의된 자원 인그레스 컨트롤러 : 인그레스 접근 규칙을 기반으로 제어 현재 공식적으로 제공하는 인그레스 컨트롤러 ingress-gce : Google Compute Engine용 ingress-nginx : nginx 웹 서비스로 들어오는 요청을 처리 Ingress 생성 전 Sample Backend Service 생성 Ingres.. [Kubernetes] apt-get 시 public key is not available: NO_PUBKEY 에러 수정 간만에 쿠버네티스 노드를 재 구축하려고 apt-get을 하니 아래와 같이 에러가 발생을 하였다. root@master:/etc/apt# sudo apt-get update Hit:2 http://kr.archive.ubuntu.com/ubuntu bionic InRelease Hit:3 http://security.ubuntu.com/ubuntu bionic-security InRelease Hit:4 http://kr.archive.ubuntu.com/ubuntu bionic-updates InRelease Hit:5 http://kr.archive.ubuntu.com/ubuntu bionic-backports InRelease Get:1 https://packages.cloud.google.com/a.. [Kubernetes] 쿠버네티스 Service 개념 - ClusterIP, NodePort 서비스(Service) 가 필요한 이유 파드는 일회성이다. 노드에서 파드가 제거되면 새로운 파드가 생성되거나, 클러스터의 노드에 장애가 발생되면 다른 노드로 이동된다. 쿠버네티스의 파드는 노드에 스케쥴된 후 시작하기 전에 IP 주소를 할당하기 때문에 미리 파드의 IP 주소를 알기 어렵다. Scale-out(HPA) 는 여러 파드가 같은 서비스를 제공하는 것을 의미하는데 각 파드는 개별 IP 주소를 가지게 된다. 클라이언트는 서비스를 제공하는 파드의 수와 IP를 신경 쓸 필요가 없어야 한다. -> 서비스 (Service)를 사용하면 파드가 클러스터 안 어디에 있던 고정 IP 주소 (Endpoint IP Address)를 통해서 접근할 수 있다. CluserIP 기본 서비스 타입으로 클러스터 내부에서 사용이.. [Kubernetes] Controller - Replicaset 레플리카셋(Replicaset)의 3가지 구성 요소 label selector 레플리카셋에 의해 관리될 파드를 선택할 레이블 정의 .spec.template.labels의 필드와 spec.selector.matchLabels가 같아야 한다. 레이블을 기준으로 파드가 관리되므로 실행 중인 파드를 중단하거나 재시작하지 않고 레플리케이션 컨트롤러가 관리하는 파드 변경 가능 replicas 유지할 파드의 수 기본 값은 1 pod template 레플리카셋이 실행할 파드의 정의 레플리카셋에 의해서 실행할 파드의 컨테이너 이미지, 포트, 이름등의 구체적 명세 레플리카셋 yml 예제 (rs-nginx.yaml) apiVersion: apps/v1 kind: ReplicaSet metadata: name: rs-ngi.. [Kubernetes] 네임스페이스(Namespace) 살펴보기 네임스페이스 동일한 물리 클러스트를 기반으로 하는 논리적으로 구분된 가상 클러스터를 네임스페이스라고 한다. 여러개의 팀이나 많은 사용자가 있는 경우, 클러스터안에서 여러개의 어플리케이션을 실행해야 하는 경우 사용 root@master:~# kubectl get namespace NAME STATUS AGE default Active 10d kube-node-lease Active 10d kube-public Active 10d kube-system Active 10d root@master:~# kubectl get deploy No resources found in default namespace. root@master:~# kubectl get deploy -n kube-system NAME READY.. 이전 1 2 다음