분류 전체보기 (70) 썸네일형 리스트형 [CKA] Kubernetes Cluster Architecture 개요 Kubernetes Cluster Architecture 개요 Kubernetes의 목적 1. 자동화된 방식으로 컨테이너 형태로 애플리케이션을 호스팅하는 것 2. 애플리케이션 내의 서로 다른 서비스 간에 필요한 만큼 애플리케이션의 인스턴스를 쉽게 배포하고 통신을 쉽게 활성화 Kubernetes의 아키텍처는 선박에 비유할 수 있다. 예를 들어 두 종류의 배를 가지고 있다. 1. 컨테이너를 바다로 운반하고 제어하는 실제 작업을 수행하는 화물선 2. 화물선의 감시 및 관리를 담당하는 선박 컨테이너 형태로 애플리케이션을 호스팅하는 클라우드는 화물선으로 볼 수 있다. 클러스터의 작업자 노드는 컨테이너를 적재 할 수 있는 선박이다. 여기서 모니터링 장비를 제공하는 제어 선박은 1. 선박에 컨테이너를 적재 2. 적재.. Kubernetes(쿠버네티스) calico 설치 에러 Kubernetes(쿠버네티스) calico 설치 에러 docker(도커) - 19.03.9 버전 kubeadm - 1.19.1-00 버전 calico 설치중 에러가 나서 트러블슈팅을 진행하였다. $ kubectl apply -f https://docs.projectcalico.org/manifests/calico.yaml error: unable to recognize "https://docs.projectcalico.org/manifests/calico.yaml": no matches for kind "PodDisruptionBudget" in version "policy/v1" 칼리코 설치중 위와같은 에러가 난 경우는 버전 문제이다. 현재 PodDisruptionBudget api버전은 policy.. 젠킨스로 CI/CD 구현하기 젠킨스로 CI/CD 구현하기 젠킨스를 이용하여 CI/CD를 구성해보자 아이템(item)이란 새롭게 정의할 작업을 의미한다. CI/CD를 하려면 각각의 작업은 모두 필요하다. 만약 작업을 코드로 정의한 경우라고 해도 작업순서 정도는 알려줘야 한다. Freestyle project 스타일의 자유도가 높은 방식으로, 브라우저에서 사용자가 직접 설정값과 수행할 동작을 입력할 수 있다. 화면에 보이는 항목을 입력하면서 구성할 수 있어서 젠킨스와 관련된 경험이 부족한 사용자도 구성하기 쉽다는 장점이 있다. 하지만 과정이 복잡한 작업을 구성하기 어렵고, Freestyle로 생성한 아이템은 입력한 항목의 명세서를 별도로 저장하는 과정이 없으므로 작성한 내용을 공유하기 어렵다. Pipeline 젠킨스에서 지원하는 고유의.. 젠킨스 서비스어카운트(serviceaccount,sa)를 위한 권한 설정하기 jenkins 서비스 어카운트를 위한 권한 설정하기 실제로 젠킨스 에이전트 파드에서 쿠버네티스 API 서버 통신하려면 서비스 어카운트에 권한을 줘야한다. $ kubectl get serviceaccounts -n jenkins $ kubectl apply -f clusterrolebinding.yaml clusterrolebinding.yaml apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: name: jenkins-cluster-admin roleRef: apiGroup: rbac.authorization.k8s.io kind: ClusterRole name: cluster-admin subjects: - kind:.. 쿠버네티스에서 젠킨스 에이전트 구성 쿠버네티스에서 젠킨스 에이전트 구성 젠킨스 노드 관리 홈 화면에서 젠킨스 관리 > 노드 관리 메뉴로 이동한다. 신규 노드 에이전트 노드를 추가한다. 고정된 여러 대의 서버에서 에이전트 노드를 추가해야 할 때 필요하다. Configure Cloud 클라우드 환경 기반의 에이전트를 설정할 때 필요하다. 쿠버네티스 위에 설치된 젠킨스의 에이전트에 관한 설정도 이 메뉴에서 설정할 수 있다. Node Monitoring 에이전트 노드의 안정성을 위한 각종 모니터링과 관련된 사항을 설정할 수 있다. 노드 목록 현재 구성된 노드의 목록을 보여준다. 쿠버네티스상에 설치한 젠킨스는 작업이 진행될 때만 파드 형태의 에이전트가 생성되고 작업이 끝나면 파드가 사라지기 때문에 작업중이 아니라면 이 목록에는 젠킨스 컨트롤러 노드.. IaC 개요 # IaC ( Infrastructure as Code ) 란? 코드형 인프라 docker - docker compose kubernetes - manifest file (ex. yaml 파일) AWS - CloudFormation 기존의 인프라는 물리적인 형태를 제외하면 명령어, 쉘스크립트 등으로 구성, 관리, 운영 해왔다. 가상화로 컨테이너화 된 인프라들은 코드 형태로 인프라를 선언하고, 코드를 적용시켜 해당되는 인프라를 배포한다. 인프라를 코드로 표현하고 실행해서 시스템을 구성하고 관리, 운영 해왔다 (ex. 쉘스크립트) 자동화된 도구들이 많이 나왔고, 이런 가상환경들이 제공됨에 따라 iac 도구들이 탄생 # IaC 장점 1) 비용 절감 사람의 노력적인 측면에 인프라 관리를 수동적으로 하지 않아 다.. API (Application Programming Interface) 란? # API 등장 배경 API는1960년대 서로다른 하드웨어 부품마다 개발자가 하나하나 프로그램을 새롭게 작성하는것 보다 같은 일을 하는 하드웨어를 추상화 시켜 함수를 한번 사용하여 서로다른 화면에 출력하는 일을 쉽게 사용해주기 위해 생겨난 개념이다. 1980년대 "개인용 컴퓨터"의 명칭이 일반화 되기 시작하였고 그래픽 사용자 인터페이스 개념을 크게 보급시키는 데 성공시켜 windowOS나 macOS등 운영체제에서는 각각의 운영체제에서 동작할수있는 애플리케이션을 만들기 위하여 제공되었던 응용프로그램들이 API라는 단어로 사용되기 시작되었다. # API 란? API는 애플리케이션 소프트웨어를 구축하고 통합 하기 위한 정의 및 프로토콜 세트로, 애플리케이션 프로그래밍 인터페이스(Application Progr.. Vagrant 스냅샷(snapshot) 찍는법 Vagrant 스냅샷(snapshot) 찍기 vagrant로 만든 쿠버네티스 환경에서 공부를 하다가 초기화 할 일이 자주 생겨서 쿠버네티스 초기상태로 vagrant 스냅샷을 찍어보았다. vagrant 스냅샷 생성 # vagrant snapshot save {VM이름} {스냅샷이름} $ vagrant snapshot save k-control k-control1 vagrant snapshot save 명령어를 이용하여 스냅샷을 생성한다. 헬름 설치, 파드 생성등이 되지 않은 최초 쿠버네티스 환경으로 스냅샷을 생성하였다. vagrant 스냅샷 list 확인 # 스냅샷 리스트 확인 $ vagrant snapshot list vagrant 스냅샷 적용 현재는 helm 설치가 되어있고 repo가 등록된 상태이다... 젠킨스 플러그인 관리하기 - 쿠버네티스(kubernetes) 플러그인 설치하기 젠킨스는 실행되는 모든 기능을 플러그인으로 구현하도록 설계되어있다. 이렇게 설치한 플러그인들을 단독으로 사용하거나 여러개를 조합해 더 강력한 CI/CD 기능을 만들 수 있다. 이런 예로 쿠버네티스 위에 에이전트 파드를 설정할 수 있게 도와주는 메뉴인 Kubernetes 플러그인이 있다. 업데이트된 플러그인 목록 젠킨스에 설치된 플러그인 중에 업데이트된 플러그인이 있는 경우 최신 버전으로 올릴 수 있다. 이때 업데이트를 할 수 없는 플러그인은 보안 취약점이 발견 됐거나 플러그인의 버전이 젠킨스 호환 버전이 아닌 경우에는 설치할 수 없다. 설치 가능 설치되지 않은 플러그인을 검색해 현재 젠킨스에서 해당 기능을 추가할 수 있다. 설치된 플러그인 목록 현재 젠킨스에 설치돼 있는 플러그인 정보를 확인할 수 있으며.. 젠킨스 컨트롤러 설정하기(환경설정) 젠킨스 컨트롤러 설정하기 # 젠킨스 시스템 설정하기(환경설정) 시스템 메세지 젠킨스 메인 웹 페이지에 접속했을 때 나타나는 메시지를 입력한다. 이 메시지를 통해 사용자에게 젠킨스에 대한 소개나 간단한 안내를 할 수 있다. # of executor 동시에 빌드를 수행할 수 있는 실행기의 개수를 설정하는 옵션으로서 이 옵션은 컨트롤러 노드에서 몇 개 까지의 빌드를 실행할 수 있을지 설정할 수 있다. 현재 설치된 젠킨스의 경우 에이전트 파드를 통해 빌드 작업을 생성하므로 이 옵션을 0으로 설정하는것이 바람직하다. Label 노드를 구분할 수 있는 레이블을 지정한다. 이렇게 설정한 레이블을 통해 Usage 옵션을 사용하면 특정 작업을 어떤 노드에서 작업할지 결정할 수 있다. Usage 젠킨스의 빌드 작업에 대해.. 이전 1 2 3 4 5 6 7 다음