전체 글 126

[Kubernetes Study - 05] 기본 실습 (3) - AKS를 이용한 내부 클러스터 통신

인프런에서 쿠버네티스 강의를 듣는데, 강의 환경은 VM 3개를 띄워서 1대는 마스터 노드, 나머지 2대는 워커노드로 사용을 한다. 이번 강의에서 실습한 내용은 아래와 같다 Pod에 Service를 붙이기 Master Node에서 curl로 Cluster IP를 호출한다 해당 IP의 9000번 포트에 접근하여 hostname을 url 매개변수로 넘겨주면 9000번 포트에 올라가 있는 Pod의 호스트 네임이 출력된다. (Pod의 이미지의 내용이 이렇다) 우선 각 오브젝트들의 매니페스트 정보는 다음과 같다 pod.yaml apiVersion: v1 kind: Pod metadata: name: pod-1 labels: app: pod spec: nodeSelector: kubernetes.io/hostname..

DevOps/Kubernetes 2021.01.22

[Kubernetes Study - 03] 기본 실습 (1) - yaml 파일 작성 및 Pod 내 컨테이너 접속

쿠버네티스의 가장 기본이 되는 yaml 파일 작성 및 Pod 안에 있는 컨테이너에 접속하는 방법을 알아보자 현재 Azure의 AKS를 활용하여 클러스터를 구축한 상황이다. 하나 짚고 넘어갈 것은, AKS를 사용하여 구축한 클러스터에서 Master Node는 Azure가 되고, AKS를 생성할 때 만든 노드들이 전부 Worker Node가 된다. 호스팅되는 Kubernetes 서비스인 Azure는 상태 모니터링 및 유지 관리 같은 중요 작업을 처리합니다. Kubernetes 마스터는 Azure에서 관리됩니다. 에이전트 노드만 관리하고 유지하면 됩니다. 관리되는 Kubernetes 서비스, AKS가 무료이므로 마스터가 아니라 클러스터 내의 에이전트 노드에 대해서만 지불합니다. Azure Kubernetes ..

DevOps/Kubernetes 2021.01.21

[Kubernetes Study - 02] 기본 개념 이해

참고 블로그 : 조대협의 블로그 쿠버네티스 #2 - 개념 이해 (1/2) 쿠버네티스 #2 개념 이해 (1/2) 조대협 (http://bcho.tistory.com) 쿠버네티스를 공부하면서 가장 헷갈리는 부분이 용어와 컨셉이다. 이 컨셉만 잘 이해하면 쿠버네티스를 쉽게 이해하고 사용할 수 있지 bcho.tistory.com 오브젝트 구성요소 기본적인 구성단위가 되는 기본 오브젝트 기본 오브젝트를 생성하고 관리하는 컨트롤러 추가정보인 메타정보 오브젝트 스펙 : 오브젝트의 특성을 기술한 것. yaml이나 json으로 스펙 정의 (manifest file) 기본 오브젝트 종류 Pod : 컨테이너화 된 애플리케이션 Service : 로드밸런서 Volume : 디스크 Namespace : 패키지명 Pod 쿠버네티스..

DevOps/Kubernetes 2021.01.19

[Level 2 프로그래머스] 카카오 기출, 2020 KAKAO BLIND RECRUITMENT - 괄호 변환(Python 파이썬)

코딩테스트 연습 - 괄호 변환 카카오에 신입 개발자로 입사한 콘은 선배 개발자로부터 개발역량 강화를 위해 다른 개발자가 작성한 소스 코드를 분석하여 문제점을 발견하고 수정하라는 업무 과제를 받았습니다. 소스를 컴 programmers.co.kr 카카오 기출문제이다. 괄호 관련된 문제가 약해서 풀어보려는데, 역시나 실수가 많이 나왔다. 막상 다 풀고보면 문제에 있는 말 그대로를 구현하는 것인데.. 아직 구현력이 부족한 듯 하다. 문제 조건 입력이 빈 문자열인 경우, 빈 문자열을 반환합니다. 문자열 w를 두 "균형잡힌 괄호 문자열" u, v로 분리합니다. 단, u는 "균형잡힌 괄호 문자열"로 더 이상 분리할 수 없어야 하며, v는 빈 문자열이 될 수 있습니다. 문자열 u가 "올바른 괄호 문자열" 이라면 문자..

Python 파이썬 - 2차원 리스트 90도 회전 (zip 메서드 활용)

문제를 풀다보면 배열을 시계방향으로 90도로 회전하는 문제들이 많다. ex) 백준 18808번 스티커 붙이기 예를 들어 3x4 리스트를 시계방향으로 90도씩 회전하면 아래와 같이 만들어진다. 총 4번의 회전이 끝나면 360도가 되어 원래 모양으로 되돌아 온다. 이를 파이썬에서는 2가지 방법으로 구현할 수 있다. 일반적인 방법 import copy _list = [[1,2,3], [4,5,6], [7,8,9], [10,11,12]] n = len(_list) m = len(_list[0]) result = [[0]* n for _ in range(m)] for i in range(n): for j in range(m): result[j][n-i-1] = _list[i][j] _list = copy.deep..

코딩테스트에서 자주 쓰는 C++ STL 라이브러리, 자료구조, 알고리즘 정리(6) - 최소신장트리, MST(Feat. Kruskal)

MST(Minimum Spanning Tree) - Kruskal MST는 최소 신장 트리로, 신장 트리를 의미하는 Spanning Tree는 그래프 내의 모든 정점을 포함하는 트리를 의미한다. 이 중 가중치가 최소가 되는 트리가 최소 신장 트리 MST 이다. MST를 구현하는 방법에는 대표적으로 Prim 알고리즘과 Kruskal 알고리즘이 있다. 여기서는 Kruskal 알고리즘을 사용하였다. 통신망, 도로망, 유통망 등에서 길이, 구축 비용, 전송 시간등을 최소로 구축하려는 경우 사용된다 최소 스패닝 트리란? 스패닝 트리란 방향이 없는 그래프에서 모든 노드를 포함하면서, 순환되는 경로를 제거한 형태이다. 이 스패닝 트리에서 가중치의 합을 최소로 만드는 스패닝 트리를 '최소 스패닝 트리(Minim..

Jenkins를 사용하여 GitHub에서 Azure Kubernetes Service로 배포(2) - Jenkins와 GitLab 연동

자습서 - Jenkins를 사용하여 GitHub에서 Azure Kubernetes Service로 배포 GitHub 및 CD(지속적인 배포)에서 AKS(Azure Kubernetes Service)까지의 CI(연속 통합)를 위해 Jenkins를 구성하는 방법을 알아봅니다. docs.microsoft.com 이번 포스팅은 자습서 중 자동화된 빌드를 위한 Jenkins 빌드 작업 및 GitHub 웹후크를 만듭니다. CI/CD 파이프라인을 테스트하여 GitHub 코드 커밋에 따라 AKS에서 애플리케이션을 업데이트합니다. 해당 부분을 위한 사전 작업이다. 물론 GitHub 대신 GitLab을 사용한다. 또한 이 포스팅은 꼭 AKS를 사용하지 않더라도 대부분 구성되어 있는 CI/CD 파이프라인에서 사용되는 부분이..

DevOps/CICD 2021.01.15

Nginx 정리 (1) - 설치 및 기본 디렉토리 구조

설치 방법 Ubuntu 18.04 기준이다. docs에 자세히 나와 있으니 변경사항 또는 다른 OS사용시 참고하면 좋을 듯 하다 nginx: Linux packages nginx: Linux packages Supported distributions and versions nginx packages are available for the following Linux distributions and versions: RHEL/CentOS Version Supported Platforms 7.4+ x86_64, ppc64le 8.x x86_64, aarch64/arm64 Debian Version Supported Plat nginx.org sudo apt install curl gnupg2 ca-certi..

BackEnd/Server 2021.01.15

Jenkins 오류 해결 - '역방향 프록시 설정이 잘못된 것으로 파악되었습니다' (with nginx reverse proxy)

Ubuntu 18.04 LTS의 Azure VM에 젠킨스 서버를 로컬로 설치해서 사용중이다. 기존에는 VM에 할당받은 public IP 주소에 젠킨스 default port만 뚫어서 사용했는데, 현재는 도메인을 할당받고 nginx로 프록시 서버를 구축하여 사용중이다. 구성과정 포스팅은 여기를 참고하면 된다. Jenkins 서버에 nginx reverse proxy를 구성하고 나니 Jenkins 관리 화면에서 아래와 같은 오류 알림창이 떴다 문제 원인 Reverse proxy 설정을 해줬으니 8080으로는 바로들어 오게 하면 안된다. 클라이언트 요청이 80포트로 들어오고 nginx가 8080 포트로 보내줘야 하는데, Jenkins URL 정보에는 8080 포트로 직접 들어오는 public IP 주소가 매핑..

DevOps/CICD 2021.01.15

코딩테스트에서 자주 쓰는 C++ STL 라이브러리, 자료구조, 알고리즘 정리(5) - 최소신장트리, MST(Feat.Prim)

MST(Minimum Spanning Tree) MST는 최소 신장 트리로, 신장 트리를 의미하는 Spanning Tree는 그래프 내의 모든 정점을 포함하는 트리를 의미한다. 이 중 가중치가 최소가 되는 트리가 최소 신장 트리 MST 이다. MST를 구현하는 방법에는 대표적으로 Prim 알고리즘과 Kruskal 알고리즘이 있다. 여기서는 Prim 알고리즘을 사용하였다. 통신망, 도로망, 유통망 등에서 길이, 구축 비용, 전송 시간등을 최소로 구축하려는 경우 사용된다 관련 문제 백준 1197번 최소 스패닝 트리 백준 1922번 네트워크 연결 기본 개념 하나의 정점에서 시작 간선의 가중치의 합이 최소이다 사이클이 포함되어서는 안된다. 시간 복잡도 O(ElogV) --> E : 간선의 개수, V : 정점의 ..