본문 바로가기

IT/PaaS18

AWS EKS에 Istio 설치 및 삭제하기 - kubernetes에 istio 설치 및 삭제 이번 글에서는 AWS EKS로 구축된 쿠버네티스 클러스터에 Istio를 설치해 볼 것이다. istio 설치는 helm chart를 통한 설치가 아닌, 설치파일을 가지고 설치를 진행해 보겠다. 실습은 다음과 같은 순서로 진행될 것이다. 1. 사전준비 2. AWS EKS 클러스터에 Istio 설치하기 3. AWS EKS 클러스터에 Istio 삭제하기 1. 사전준비 이번 실습은 AWS EKS의 워커노드를 프라이빗 서브넷으로 구축한 후, EC2 인스턴스를 한개 더 생성하여 해당 인스턴스를 통해서 쿠버네티스 클러스터에 접근하 것이다. 따라서 아래와 같은 사전 준비가 되어 있어야 한다(만약 AWS EKS가 아닌 리눅스 환경에 쿠버네티스 클러스터를 구성해 놓았다면 아래와 같은 사전 준비는 필요없다) 1) AWS EK.. 2020. 10. 8.
The connection to the server localhost:8080 was refused 해결방법 kubectl을 통해서 쿠버네티스 클러스터에 접속하려 할 때 다음과 같은 에러 메시지가 발생하는 경우가 종종 있다. The connection to the server localhost:8080 was refused - did you specify the right host or port? 해당 메시지가 발생하는 경우는 보통 쿠버네티스 컨피그 파일이 $HOME/.kube 디렉토리 밑에 없거나, 현재 유저정보가 쿠버네티스 컨피그 파일에 반영되지 않은 경우에 발생한다. 따라서 해당 문제는 다음 명령어를 통해 해결 가능하다. 1. AWS EKS로 구축한 클러스터에 접근할 때 발생한 경우 다음 명령어를 통해 AWS EKS 클러스터 접근을 위한 컨피그 파일을 생성해준다(물론 해당 명령어를 사용하기 전에 aws c.. 2020. 10. 1.
Istio란 무엇인가? 이번 글에서는 Istio의 정의, 구조 및 특징에 대해 알아볼 것이다. 이 글의 순서는 다음과 같다. 1. 서비스 메쉬(Service Mesh)란? 2. Istio 정의 3. Istio 구조 4. Istio 구성요소 5. Istio 주요 특징 1. 서비스 메쉬(Service Mesh)란? Istio가 서비스 메쉬(Service Mesh)를 구현할 수 있는 오픈소스이기 때문에, 우선 서비스 메쉬(Service Mesh)가 무엇인지 알아보자. 서비스 메쉬(Service Mesh)란 API 등을 사용하여 마이크로 서비스 간 통신을 안전하고, 빠르고, 신뢰할 수 있게 만들기 위해 설계된 전용 인프라 계층이다. 서비스 메쉬는 보통 Application 서비스에 경량화 프록시(Proxy)를 사이드카(sidecar).. 2020. 8. 31.
Service does not have any active Endpoint 에러 해결 방법 쿠버네티스 클러스터에 서비스 적용 시 아래와 같은 에러가 발생하는 경우가 종종 있다. controller.go:804] Service "default/cloud-l3-service1" does not have any active Endpoint. 위 에러는 쿠버네티스 클러스터 서비스에서 디플로이먼트를 찾지 못할 때 발생하는 에러이며, 보통 서비스의 selector.app 값이 디플로이먼트의 app값과 불일치 하는 경우에 자주 발생한다. 그렇기 때문에 서비스 적용을 위한 yaml 작성 시 디플로이먼트 yaml과 매칭되게 작성이 필요하다. 필자의 경우는 아래와 같이 서비스 yaml 파일 들여쓰기를 잘못써서 위와 같은 에러가 발생했다. service.yaml(에러 발생) : apiVersion: v1 kind.. 2020. 7. 26.
쿠버네티스 클러스터에 React 서비스 컨테이너 배포 이번 글에서는 CentOS(On-Premise환경)내 구축된 쿠버네티스 클러스터 위에 React 서비스를 컨테이너로 배포하는 방법에 대해 알아볼 것이다. 보통 Web 서비스는 Scale-out 관련 요구사항이 없기 때문에 컨테이너화 하는 경우는 드물다고 들었지만(?), 스터디 프로젝트를 하며 쿠버네티스를 공부하면서 Web 서비스도 컨테이너화 하여 쿠버네티스 클러스터에 적용해 보았기에 이렇게 블로그로 남긴다. (갑자기 존댓말 해서 이상한데 혹시라도 다른 사례가 있으시다면 댓글로 남겨주시면 큰 도움이 될 것 같습니다. 감사합니다.) 1. 사전 준비사항 React로 개발된 소스 1본 CentOS(On-Premise환경)내 구축된 쿠버네티스 클러스터 CI/CD 파이프라인(로컬pc - gitlab - jenkin.. 2020. 1. 21.
쿠버네티스 Ingress 개념 및 적용방법 이번 글에서는 Ingress의 정의 및 On-Premise환경(클라우드가 아닌 자체 서버를 사용한 경우)에서 Ingress를 어떻게 사용하는지에 대해 알아볼 것이다. 1. Ingress란 무엇인가? 1-1. Ingress 정의 쿠버네티스 Ingress란 HTTP(S) 기반의 L7 로드밸런싱 기능을 제공하는 컴포넌트이다. Ingress는 외부에서 쿠버네티스 내부로 들어오는 네트워크 요청을 어떻게 처리할지 결정하며, 쉽게 말해 외부에서 쿠버네티스에서 실행중인 Deployment와 Service에 접근하기 위한 관문과 같은 역할을 담당한다. 쿠버네티스 서비스는 기본적으로 L4 레이어로 TCP 단에서 Pod를 로드밸런싱한다. 그런데 MSA(마이크로 서비스 아키텍쳐)의 경우 쿠버네티스 서비스 하나가 MSA 서비스.. 2020. 1. 20.
쿠버네티스 시작하기(12) - Prometheus와 Grafana 연동으로 모니터링 대쉬보드 구축하기 지난 장에서는 Prometheus & Node-Exporter & AlertManager를 활용한 모니터링 시스템을 구축하였다. 하지만 Prometheus로는 지표(Metric)정보를 확인하기는 많이 불편했다. 따라서 이번 장에서는 지표정보를 좀 더 쉽게 볼 수 있게 Prometheus(프로메테우스)와 Grafana(그라파나)를 연동시켜 모니터링 대쉬보드를 구축할 것이다. 1. Grafana란 무엇인가? 그라파나(Grafana)란 지표(metric)정보를 분석/시각화하는 Open source 툴이다. 주로 인프라 정보 및 App 분석 데이터를 시각화하기 위한 대쉬보드로 주로 사용된다. 그라파나는 Graphite, Prometheus, Elasticsearch, InfluxDB와 같은 시계열데이터베이스를 .. 2020. 1. 17.