목록전체 글 (762)
우노
쉘 스크립트 생성 #!/bin/bash echo "첫 번째 파라미터: $1" echo "두 번째 파라미터: $2" echo "세 번째 파라미터: $3" echo "모든 파라미터 : $@" echo "파라미터 개수 : $#" 쉘 스크립트 실행 시 인자 전달 ./test.sh a b c #첫 번째 파라미터: a #두 번째 파라미터: b #세 번째 파라미터: c #모든 파라미터 : a b c #파라미터 개수 : 3
들어가기 앞서, 예제 코드를 통해, Github Workflows 파일의 주요 필드에 대해서 다뤄보겠습니다. 예제 코드 develop branch 업데이트 시, 태그 및 릴리즈를 자동 생성하는 코드입니다. # Workflow 이름입니다. name: Release Tag # 어떤 조건에 Workflow를 Trigger 시킬지를 의미합니다. on: # push(Branch or Tag), pull_request, schedule 등을 사용할 수 있습니다. push: branches: - develop # Workflow가 실행할 작업입니다. # 여러 Job이 있을 경우, 병렬 실행이 기본이며, 해당 예제에선 하나의 job만 있습니다. jobs: Test: # job을 실행할 환경입니다. runs-on: ub..
들어가기 앞서, 해당 포스트에선, Nginx 액세스 로그를 Json 형식으로 남기는 방법에 대해서 다뤄보겠습니다. Nginx 기본 로그 포맷 log_format main '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"'; Nginx Json 로그 포맷 설정 아래 코드를 참고해, nginx.conf 파일 내부 http 블락에 원하는 variables로 로그 포맷을 설정하면 됩니다. # Json 로그 포맷 설정 log_format nginxlog_json es..
들어가기 앞서, repository의 버전을 tag를 통해 관리하고 있을 경우, 업데이트(merge)마다 수동으로 tag를 생성한다면 매우 번거로운 작업이 됩니다. 따라서, 해당 포스트에서는 Github Actions을 활용해, Main Branch Merge 시 Tag/Release를 자동으로 생성하는 방법을 다뤄보겠습니다. 자동화 방법 해당하는 Repo의 .github/workflows 폴더에, 아래 yml 파일을 저장하면 됩니다. name: Release Tag on: push: branches: - main # main branch로 push될 때 아래 action이 실행됩니다. jobs: build: runs-on: ubuntu-latest steps: # 깃헙 코드 내려받기 - uses: ac..
들어가기 앞서, 일반적으로 Github Actions에서 보안이 중요한 환경변수들은 github secrets 기능을 사용해 관리합니다. 해당 포스트에선, github secrets을 통한 환경변수 사용 방법에 대해서 다뤄보겠습니다. Secrets 생성 방법 secrets를 등록하고 싶은 github repo에 접근합니다. 우측 상단 Settings > 좌측 하단 Secrets and variables > Actions 탭에 접근합니다. 우측 상단 New repository secret을 클릭합니다. 사용하고자하는 환경변수의 이름을 Name에, 값을 Secret에 작성합니다. Secrets 사용 방법 .github/workflows 내부 yml 파일에서 아래와 같이 사용할 수 있습니다. name: Tes..
git pull error 힌트: You have divergent branches and need to specify how to reconcile them. 힌트: You can do so by running one of the following commands sometime before 힌트: your next pull: 힌트: 힌트: git config pull.rebase false # merge 힌트: git config pull.rebase true # rebase 힌트: git config pull.ff only # fast-forward only 힌트: 힌트: You can replace "git config" with "git config --global" to set a defaul..
들어가기 앞서, 해당 포스트에서는, npm forever를 사용하여, Node.js 앱 종료 시 자동 재실행하는 방법에 대해서 다뤄보겠습니다. forever 설치 npm install forever -g forever 시작 (Node.js 앱 실행) 앱 파일들이 있는 경로로 이동한 뒤, 주석을 참고해 명령어를 실행합니다. # 파일을 직접 실행할 경우 forever start app.js # package.json의 scripts를 실행할 경우 forever start -c "npm run dev" ./ forever 관리 프로세스 확인 forever list forever 관리 프로세스 제거 forever stop "forever관리번호" forever 관리 프로세스를 제거할 뿐, 실제 프로세스는 남아있..
Label 사용자가 특정 객체를 구분하기 위해 사용하는 기능입니다. Controller들은 특정 Label에 해당하는 Pod들을 관리합니다. 생성된 이후 언제든지 수정이 가능하고, 코어 시스템에 직접적인 영향은 없습니다. Selector 특정 Label에 해당하는 객체를 관리하기 위해 사용하는 기능입니다. Annotation 쿠버네티스 시스템이 필요한 정보들을 표시하거나, 주석의 목적으로 사용하는 기능입니다. 일반적으로 쿠버네티스에 새로운 기능을 추가할 때 사용됩니다. 다음과 같은 메타데이터를 기록할 수 있습니다. 사용자 지시 사항 필드 이미지 정보 (타임 스탬프, 릴리즈 ID, 빌드 버전, git 브랜치, 이미지 해시, 레지스터리 주소 등) 디버깅에 필요한 정보 (이름, 버전, 빌드정보) 참고 http..
들어가기 앞서, 해당 포스트에서는, Kubernetes에서 Service 생성 시 사용되는 port 유형을 정리합니다. 매번 볼 때마다 헷갈려서.. Nodeport Node에 접근할 때 사용되는 포트입니다. Port Cluster 안에서 내부적으로 Service 객체에 접근하기 위해 사용되는 포트입니다. Targetport Service 객체로 전달된 요청을 Pod로 전달할 때 사용되는 포트입니다. 전체적인 서비스 흐름 NodePort -> Port -> TargetPort 순서로 트래픽이 전달됩니다. deployment.yml과 service.yml 예제 참고 https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=freepsw&logN..
Cloud Build Step이란? Cloud Build는 수행해야할 여러 테스크들을 빌드 구성 파일 내에 Step으로 정의할 수 있습니다. 정의된 각각의 Build Step은 동일한 Docker 컨테이너에서 순차적으로 실행됩니다. Build Step에서 사용하는 Builder 이미지는 Cloud Build에서 제공하는 이미지와 커뮤니티에서 제공한 이미지, 커스텀 이미지 등이 있습니다. Cloud Build 제공한 이미지 bazel, curl, docker, gcloud, git, go, gsutil, javac, kubectl, mvn, npm, wget, yarn 등 https://github.com/GoogleCloudPlatform/cloud-builders 커뮤니티에서 제공한 이미지 airflo..