전체 글 794

jenkins 파이프라인 파라미터(입력변수)

파라미터란? 젠킨스 파이프라인이 실행 될 때, 변수를 입력받을 수 있습니다. 입력변수를 파라미터라고 부릅니다. 설정방법 파이프라인에 parameters로 입력변수를 설정합니다. 입력변수를 타입, 변수이름, 디폴트값을 설정해야 합니다. 타입은 공식문서를 참고시길 바랍니다. 아래 예제는 문자열타입인 string을 사용했습니다. 공식문서 링크: https://www.jenkins.io/doc/book/pipeline/syntax/#available-parameters pipeline { agent any parameters { string(name : 'message', defaultValue : 'hello world', description : '') } stages { stage('Hello') { st..

Fastapi 설정관리

영상: https://youtu.be/9eRDT-XfTlU 설정관리 방법 Fastapi는 Pydantic패키지를 이용하여 설정을 클래스로 관리할 수 있습니다. 예제코드 링크: https://fastapi.tiangolo.com/advanced/settings/#pydantic-settings Dependency Injection 설정로드는 의존성 주입(Dependency Injection)을 하는 것을 추천합니다. 테스트 코드를 작성할 때 설정을 변경할 수 있는데, 의존성 주입을 사용하면 쉽게 설정을 변경할 수 있습니다. 또한, 코드를 처음 보는 사람도 의존성 주입을 확인하여 설정이 어디스 로드되는지 쉽게 확인할 수 있습니다. 예제코드 링크: https://github.com/sungwook-practi..

Metallb를 사용하는 환경에서 jenkins와 harbor 구성

개요 jenkins pod에서 도커이미지를 harbor에 업로드해야 합니다. harbor는 도메인으로 관리합니다. 구성 1. ingress controller를 loadbalancer타입으로 설정합니다. 2. harbor는 ingress로 도메인을 노출합니다. harbor도메인은 harbor.example.com입니다. 3. jenkins pod에서 hostalias를 사용하여 harbor도메인을 ingress controller loadbalancer IP로 할당합니다. harboar.example.com 4. jenkins pod에서 docker push합니다. docker push harbor.example.com/alpine:latset

쿠버네티스 coredns에서 cname설정

쿠버네티스 pod에서 cname을 설정하고 싶다면 coredns configmap을 설정하면 됩니다. 아래 예제는 pod안에서 example.com을 요청하면 example.default.svc.cluster.local서비스 도메인을 리턴합니다. 참고자료: https://support.huaweicloud.com/intl/en-us/usermanual-cce/cce_01_0361.html $ kubectl edit configmap coredns -n kube-system apiVersion: v1 data: Corefile: |- .:5353 { bind {$POD_IP} ... rewrite name example.com example.default.svc.cluster.local ... }

centos 리눅스 저장소 설정

/etc/yum.repos.d 디렉터리에 daum.repo를 생성합니다. 참고자료: https://storycode.tistory.com/343 vi /etc/yum.repos.d/daum.repo [base] name=CentOS-$releasever - Base baseurl=http://ftp.daum.net/centos/7/os/$basearch/ gpgcheck=1 gpgkey=http://ftp.daum.net/centos/RPM-GPG-KEY-CentOS-7 [updates] name=CentOS-$releasever - Updates baseurl=http://ftp.daum.net/centos/7/updates/$basearch/ gpgcheck=1 gpgkey=http://ftp.dau..

토요일에 일하면서 알게된것

마주쳤던 문제 인프라 엔지니어가 아니여서 redhat리눅스 다룬 경험이 없었는데, 주말 출근하면서 redhat리눅스 새로운 것을 알게 되었습니다. redhat리눅스 저장소는 라이센스 구독이 있습니다. 그래서 라이센스 구매를 하지 않으면 리눅스 패키지를 설치하지 못합니다. 해결 참고자료: https://storycode.tistory.com/343 저장소 주소를 centos저장소로 설정하여 리눅스 패키지를 다운로드 받았습니다. 주소는 daum으로 설정했습니다. vi /etc/yum.repos.d/daum.repo [base] name=CentOS-$releasever - Base baseurl=http://ftp.daum.net/centos/7/os/$basearch/ gpgcheck=1 gpgkey=ht..

회고모음 2023.02.05

쿠버네티스 pod생성 과정 디버깅

영상: https://youtu.be/ijdO1NwB2cQ 시작하며 쿠버네티스 pod가 어떻게 생성되는지 궁금해서 로그를 분석했습니다. 그리고 쿠버네티스 공식문서를 읽고 컨셉에 대해 이해하려고 했습니다. 선수지식 이 글을 이해하기 위해 쿠버네티스 component들이 무엇이 있는지 알아야 합니다. pod를 생성하기 위해 많은 쿠버네티스 component들이 생성과정에 참여하기 때문입니다. 링크: https://kubernetes.io/docs/concepts/overview/components/ 공식문서에 소개된 것처럼 component는 control-plane과 worker로 분류됩니다. control-plane component는 kube-system namespace에 실행됩니다. control-..