istio란 Service간의 연결을 proxing이라는 방법으로 제어하는 오픈소스소프트웨어입니다. https://istio.io/docs/ 1. WHY istio ? - Service의 Micro화로 인해 service의 양과 상호 연결의 복잡도가 증가하여 Service들을 효율적으로 관리할 필요가 발생 - Service Mesh란? Service를 발견->연결->모니터링하는것을 말합니다. - istio의 탄생 배경 -> netflix가 service mesh 오픈소스 공개하였으나 사용하기 매우 복잡 -> java spring framework으로 추상화하여 사용하기 쉽게 만듬. 그러나 java만 적용 가능. -> Software계층이 아닌 infra계층에서 service mesh를 해결하려는 시도 즉..
1. mongodb 설치 helm chart로 설치하는 방법을 가이드합니다. helm 설치는 helm설치하기를 참조하세요. 1) 준비 - 작업디렉토리 생성 $ mkdir ~/install/mongodb $ cd ~/install/mongodb - helm chart registry추가 $ helm repo add bitnami https://charts.bitnami.com/bitnami $ helm repo ls $ helm repo update - helm values.yaml 다운로드 $ helm inspect values bitnami/mongodb > mongo.yaml 2) mongo.yaml을 아래를 참조하여 수정 아래는 stand alone으로 설치할때의 예입니다. master-slave로..
Eclipse Che는 Local이 아닌 Server상의 IDE(통합개발환경)이며 web browser를 이용하여 사용합니다. 각 개발 언어별로 필요한 개발환경이 제공되므로 Local에 복잡하게 개발환경을 구성할 필요 없습니다. Che라는 이름의 어원은 wikipedia에 따르면 대부분의 개발을 우크라이나의 Cherkasy(체카시)라는 도시에서 했기 때문이랍니다. The name "Che" is based on the fact that most of the development is done in Cherkasy (Ukraine). 아래 예제는 java spring Boot, nodejs express에 대한 workspace를 구성한 모습입니다. 왼쪽에서 Stacks를 클릭하면, 제공되는 개발언어가 나..
kubectx cluster 전환을 쉽게 해주는 툴-helps you switch between clusters back and forth: kubens namespace 전환을 쉽게 해주는 툴-helps you switch between Kubernetes namespaces smoothly: 아래 github들어가서 자세한 설명을 참조하세요. 설치는 아래와 같이 하시면 됩니다. 1. https://github.com/ahmetb/kubectx 오픈 2. kubectx파일의 내용을 복사하여, kubectx파일 생성 3. kubens파일의 내용을 복사하여, kubens파일 생성 4. 실행파일 속성 추가 및 복사 chmod +x kubectx kubens sudo mv kubectx /usr/local/b..
마이크로서비스의 설계 방법론인 DDD(Domain Driven Design)에 대해 제가 가진 지식과 그간의 경험을 기반으로 정리하였습니다. 이 글을 읽기 전에 먼저 일하는 방식 변화를 이끌고 있는 애자일, 마이크로서비스, 데브옵스, 클라우드에 대해 기본적인 이해를 하실것을 권장 합니다. https://happycloud-lee.tistory.com/261?category=8322466 일하는 방식 변화 핵심만 빠르게 이해하기: 애자일, 마이크로서비스, 데브옵스, 클라우드 새로운 변화의 물결 학습 목표 마이크로서비스가 최근에 왜 주목 받고 있는지 거시적 관점인 일하는 방식 변화의 측면에서 이해하는 것이 목표입니다. 이를 위해 일하는 방식 변화가 왜 필요한 happycloud-lee.tistory.com ..
git 공부하기 git의 핵심만 빠르게 이해하고 싶으면 아래 글을 참조하세요. rogerdudler.github.io/git-guide/index.ko.html git - 간편 안내서 - 어렵지 않아요! rogerdudler.github.io git에 대한 체계적인 공부를 하시려면 아래 교재를 이용하세요. backlog.com/git-tutorial/kr/ 누구나 쉽게 이해할 수 있는 Git 입문~버전 관리를 완벽하게 이용해보자~ | Backlog 누구나 쉽게 알 수 있는 Git에 입문하신 것을 환영합니다. Git을 사용해 버전 관리를 할 수 있도록 함께 공부해봅시다! backlog.com 상황별로 사용하는 명령어를 예를 들어 설명합니다. 1. git server에 project를 만들거나 기존에 있는 ..
Tekton trigger는 이벤트의 Payload(이벤트 내용의 필요 데이터)를 읽어, Trigger Template에 파라미터를 넘겨 적절한 k8s 리소스가 생성되게 하는 툴입니다. 활용예로서 git에 소스가 푸시되면 Tekton pipeline이 구동되게 할 수 있습니다. 아키텍처 - TriggerBindings: 들어온 이벤트나 웹 요청에서 필요한 데이터(payload)를 추출하기 위한 로직 제공 - TriggerTemplates: 1) 어떤 k8s리소스를 생성할지와, 2) TriggerBindings에서 추출된 데이터를 어떻게 사용할지를 정의 - EventListeners: TriggerBindings와 TriggerTemplates를 연결함. 아래가 도움말인데, 잘 이해가 안되는 부분이 있어 ..
아래 소스를 test-condition.yaml로 저장하십시오. apiVersion: tekton.dev/v1alpha1 kind: PipelineResource metadata: name: pipeline-git spec: type: git params: - name: revision value: master - name: url value: https://github.com/tektoncd/pipeline --- apiVersion: tekton.dev/v1alpha1 kind: Task metadata: name: list-files spec: inputs: resources: - name: workspace type: git steps: - name: run-ls image: ubuntu comm..
Pipeline Resource의 유형은 아래와 같습니다. - Git: Git repository - PullRequest: - Image - Cluster - Storage - CloudEvent 유형별로 이해해 보도록 합시다. 1. Git gitlab, github와 같은 형상관리 저장소 리소스입니다. apiVersion: tekton.dev/v1alpha1 kind: PipelineResource metadata: name: git-hello1 namespace: tekton spec: type: git params: - name: revision value: master - name: url value: https://gitlab.com/happycloudpak/hello1 위 예는 gitlab의..
Pipeline과 Pipelinerun의 관계는 아래와 같습니다. - PipelineRun은 PipelineResource를 참조할 수 있습니다. - PipelineRun은 Pipeline을 실행하면서 파라미터를 넘길 수 있습니다. - Pipeline은 여러개의 Task를 가질 수 있습니다. * Pipeline에서 정의된 Task는 PipelineRun에 의해 Pipeline이 실행되면서 수행되기 때문에 Taskrun은 정의하지 않습니다. 그럼 예제를 통해 알아 보도록 하겠습니다. 1. Pipeline YAML 작성 아래 소스로 tutorial-pipeline.yaml파일을 생성합니다. apiVersion: tekton.dev/v1alpha1 kind: Pipeline metadata: name: tut..
kubectl 명령은 매우 많이 사용하는데, 매번 전체 명령을 치는데 불편하게 느껴질겁니다. 줄인 명령어를 만드는 방법에는 symbolic link와 alias가 있습니다. 1) symbolic link 먼저, kubectl이 어디에 있는지 확인합니다. $ which kubectl 보통 /usr/bin디렉토리에 있을겁니다. 아래와 같이 'k'라는 alias를 symbolic link를 사용하여 생성합니다. $ ln -s /usr/bin/kubectl /usr/local/bin/k $ ls -al /usr/local/bin 아래 예제와 같이 이제는 k라는 명령으로 kubectl 명령을 이용할 수 있습니다. 2) alias $ alias k=kubectl 영구적으로 설정하려면 시작 shell에 추가합니다. ..
Task와 Taskrun의 관계는 아래와 같습니다. - Taskrun은 Resource를 참조할 수 있습니다. - Taskrun은 Task를 실행하면서 parameter를 넘길 수 있습니다. - Task는 여러개의 Step을 가질 수 있습니다. 그럼 간단한 예제를 이용하여 Task와 Taskrun을 이해해 보도록 합시다. 예제 Task는 2개를 만들어 보도록 하겠습니다. 1) build-image: gitlab의 hello1 project의 소스를 가져와 image를 생성한 후 docker.io에 push합니다. - container image는 docker가 아닌 kaniko라는 툴을 사용합니다. - image의 경로(예: happycloudpak/hello1:0.1.2)는 파라미터로 받아 동적으로 바..
도움말 : https://github.com/tektoncd/pipeline/blob/master/docs/install.md 1. 사전준비 Kubernetes 클러스터가 있어야 합니다. 아래를 참조하여 kubernetes 클러스터를 생성하십시오. k8s는 v1.11이상이어야 합니다. https://happycloud-lee.tistory.com/35?category=832243 2. 설치 1) tekton pipeline설치 - Openshift/Minishift에 설치 $ oc login -u system:admin * Minishift에서는 oc login -u admin:admin으로 로그인합니다. 'tekton-pipelines-controller'라는 service account에 'anyui..
Tekton은 YAML파일로 CI/CD Pipeline을 작성하는 오픈소스툴입니다. YAML파일로 되어 있기 때문에 Jenkins와 같은 다른 CI/CD툴과 같이 사용할 수 있습니다. 사용도움말은 아래 링크에 있습니다. https://github.com/tektoncd/pipeline/tree/master/docs 왜 Tekton이라고 지었는지는 모르겠으나, 추측하건대 고대그리스어에서 '목수', '기술자'를 의미하는 tektōn(τέκτων)에서 유래한것 같습니다. Tekton architecture Tekton은 5가지 유형으로 구성되어 있습니다. - Task : 실제 수행을 정의하는 리소스 타입으로 여러 step을 정의할 수 있습니다. - Pipeline: Task의 실행 순서를 정의하는 리소스 타입..
먼저 편의를 위해 Group과 User환경변수를 선언합니다. $ export u= $ export g= 먼저 계정이 소속될 그룹을 만듭니다. $ addgroup $g 아래 명령어로 User를 생성하고, 위에서 만든 그룹에 추가합니다. $ adduser $u && usermod -g $g $u docker명령을 sudo를 쓰지 않고 하려면 생성된 user를 docker그룹에 추가합니다. $ usermod -aG docker $u 제대로 설정되었는지 확인합니다. $ id $u sudo명령을 사용할 수 있도록 작업합니다. $ vi /etc/sudoers 저장할 땐 wq! 로 강제 저장합니다.
kubernetes클러스터를 구성한 후, 자신이 사용할 VM에 사용 환경을 하는 방법을 설명합니다. 작업순서는 아래와 같습니다. 1. docker와 kubectl 설치하기 2. 사용할 OS계정 생성하기 3. k8s클러스터 접근 설정하기 4. 다른 k8s클러스터로 접근 설정 바꾸기 1. docker와 kubectl 설치하기 root 권한으로 실행합니다. 1) docker 설치 # yum install -y yum-utils device-mapper-persistent-data lvm2 # yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo # yum install docker-ce -y # systemct..
kubernetes v1.16버전이 나오면서 더 이상 지원되지 않는 API(예:extentions/v1beta1)들이 있습니다. v1.18에서는 완전히 없어진답니다. https://kubernetes.io/docs/setup/release/notes/ 따라서 기존에 yaml파일들은 수정이 필요합니다. 사실 오픈소스로 공개된 많은 helm chart들도 문제가 발생합니다. 일단, 임시로 이 API들을 계속 사용하는 방법은 아래와 같습니다. Master Node에서 수행 $ vi /etc/kubernetes/manifests/kube-apiserver.yaml 아래와 같이 --runtime-config에 계속 사용할 API들을 추가함 --runtime-config=apps/v1beta1=true,apps/v..
지금까지는 gitlab에 chart file을 올리고 그 chart file을 이용하여 배포를 하였습니다. 이번에는 chartmuseum에 이미 등록되어 있는 chart를 이용해 배포를 해 보겠습니다. 이렇게 하기 위해서는 Jenkins pipeline에서 gitlab에서 가져온 소스에 chart file이 있는지 검사하고, 있다면 이전 글에서와 같이 chart file로 배포하고, 없다면 chartmuseum에 로그인한 후 chart를 가져와 배포해야 합니다. 이번에는 sonarQube를 이용한 소스정적검사와 microScanner를 이용한 image 보안취약성 검사까지 포함시켰습니다. 이 부분은 devops의 실습편을 참고하시기 바랍니다. https://happycloud-lee.tistory.com..
이전 글에서 배포시에는 helm chart로 기존에 배포한 모든 리소스(deployment, service, ingress 등)를 지우고 다시 chart를 설치하였습니다. 실제 운영시에 이렇게 배포하면 잠깐의 서비스 중단이 발생합니다. https://happycloud-lee.tistory.com/10?category=832245 4. Helm chart 이용 Jenkins CI/CD Pipeline: 기본 작성중... 사전준비 - VM준비하기 https://happycloud-lee.tistory.com/11?category=832251 - helm 설치 https://happycloud-lee.tistory.com/3?category=832245 - CI/CD사전툴설치 https://happyclou..
Jenkins에서 인증정보를 담고 있는 credentials파일은 아래와 같이 관리할 수 있습니다. 좌측메뉴에서 Credentials 메뉴를 클릭합니다. 'System'이라는 메뉴가 하위에 표시될겁니다. 우측에 보면 처음에는 Global credentials(unrestrected) Domain만 나올겁니다. 용도별로 구별하여 credential을 관리하고 싶으면 왼쪽 메뉴에서 [Add domain]을 누르십시오. 기존 Domain의 credential을 관리하려면 우측에서 Domain을 클릭하십시오. - 기존 credential을 수정 또는 삭제하려면 우측 목록에서 맨 왼쪽 아이콘을 클릭하십시오. - 새로운 credential을 추가하려면 왼쪽메뉴에서 [Add credentials]을 선택하십시오.
- Total
- Today
- Yesterday
- 애자일
- 돌봄경제
- 호모프롬프트
- 육각형인간
- micro service
- 도파밍
- 버라이어티가격
- AXON
- 분초사회
- Event Sourcing
- 스핀프로젝트
- 스포티파이
- spotify
- agile
- SAGA
- 요즘남편 없던아빠
- API Composition
- CQRS
- 마이크로서비스
- 리퀴드폴리탄
- 디토소비
- 마이크로서비스 패턴
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |