목록분류 전체보기 (766)
우노
들어가기 앞서, Kubernetes의 Service는 특정 Pod에 네트워크 트래픽을 라우팅하는 역할을 합니다. Service는 라벨 셀렉터(spec.selector)를 통해, 해당 라벨과 동일한 라벨(spec.template.metadata.labels)을 가지고 있는 Pod에게 네트워크 트래픽을 라우팅하게 됩니다. 하지만, 라우팅 설정에 사용되는 라벨 관련 필드는 다양하기 때문에 헷갈릴 수 있습니다. service spec.selector (Service가 어떤 Pod에 라우팅할지 정하기 위한 라벨 셀렉터) deployment metadata.labels (Deployment에 할당되는 라벨) spec.selector.match_labels (Deployment가 어떤 Pod를 관리할지 정하기 위한 ..
들어가기 앞서, Airflow 환경 airflow-stable helm chart를 사용해 GKE에 airflow가 설치된 상황 문제 상황 DAG에서 Airflow REST API를 호출하고 싶음 해결 방법 DAG는 Worker에서 동작하고, Airflow REST API 서버는 Webserver에서 동작하기 때문에 DAG에서 Airflow REST API를 호출하고 싶다면 Worker에서 Webserver로 REST API 내부 호출이 가능해야합니다. 따라서, basic auth를 사용해 Pod간 내부 호출을 할 수 있도록 API 관련 Airflow Configuration을 변경했습니다. 기타 Worker Pod에서 Webserver Pod에 접근하기 위해 Webserver Pod의 Service를 ..
들어가기 앞서, 해당 포스팅에선 Terraform을 통해 kubernetes_config_map 자원 생성 후 kubernetes_deployment 내부에 kubernetes_config_map 파일을 마운팅하는 방법에 대해서 다뤄보겠습니다. kubernetes_config_map 자원 생성 resource "kubernetes_config_map" "example_config_map" { metadata { name = "example-config-map" } data = { "config-file.txt" =
들어가기앞서, Airflow는 Airflow CLI를 사용해, Airflow에 설정된 Configuration을 확인할 수 있습니다. Airflow CLI 전체 Configuration 목록 확인 $ airflow config list 특정 Configuration Option 확인 # airflow config get-value [Section] [Option] $ airflow config get-value core executor SequentialExecutor $ airflow config get-value metrics statsd_host localhost 참고 사이트 https://airflow.apache.org/docs/apache-airflow/stable/cli-and-env-var..
에러 코드 generic::permission_denied: user does not have impersonation permission on the trigger service account specified: 문제 상황 특정 사용자가 Cloud Build에 할당되어 있는 Service Account를 대신해 수동 실행할 수 있는 권한이 없어서 에러가 발생하는 상황입니다. 해결 방법 사용자 계정에 아래 역할을 할당하면 됩니다. “roles/iam.serviceAccountUser” 해당 역할은 “iam.serviceAccounts.actAs” 권한을 포함하고 있으며, “iam.serviceAccounts.actAs” 권한은 사용자가 다른 사용자 계정처럼 다른 역할을 수행할 수 있도록 허용하는 권한입니다.
들어가기 앞서, “gcloud auth login”과 “gcloud auth application-default login”은 Google Cloud SDK의 두 가지 다른 인증 방법을 설정하는 명령어입니다. 해당 포스팅에선 각각의 사용 목적에 대해서 다뤄보겠습니다. gcloud auth login 직접 GCP 리소스와 상호작용할 때 사용하는 명령어입니다. 리소스 직접 액세스, Google Cloud SDK를 통한 GCP API 호출 등 gcloud auth application-default login 로컬 개발 환경에서 애플리케이션과 Google Cloud 서비스가 상호작용할 때 사용하는 명령어입니다. 동작 해당 명령어를 실행하면 브라우저 창이 열리고 Google 로그인 페이지로 리디렉션됩니다. 여기..
문제 상황 Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running? (Details: [2] No such file or directory) docker ps 명령어를 통해 docker 정상 작동을 확인했음에도 불구하고, IntelliJ에서 Docker 연결이 불가능한 상황 해결 방법 터미널에서 아래 명령어를 실행합니다. # {name}에는 자신이 macOS에 설정한 값을 넣는다. sudo ln -s /Users/{name}/.docker/run/docker.sock /var/run/ 이후, Settings → 빌드, 실행, 배포 → Docker → 아래와 같이 재설정합니다. 참고 htt..
들어가기 앞서, kubectl set image 명령어는 Kubernetes에서 사용되며, 이미 존재하는 Pod의 이미지를 업데이트하는 데 사용됩니다. 해당 포스팅에선, kubectl set image 명령어의 기본 사용 방법과 예시를 다뤄보겠습니다. kubectl set image 명령어 kubectl set image deployment/ = deployment-name : 이미지를 업데이트하려는 Deployment의 이름입니다. container-name : 업데이트하려는 컨테이너의 이름입니다. new-image : 새 이미지의 이름과 태그를 지정합니다. 예시 kubectl set image deployment/myapp-deployment myapp-container=myapp:v2 myapp-d..
; 하나의 라인에 주어진 명령어들을 성공, 실패와 관련 없이 전부 실행합니다. ls ; pwd || 첫 번째 명령어가 실패하면 두 번째 명령어를 실행합니다. 첫 번째 명령어가 성공하면 두 번째 명령어는 실행되지 않습니다. echo "first" || echo "second" && 첫 번째 명령어가 성공적으로 실행되면 두 번째 명령어를 실행합니다. 첫 번째 명령어가 실패하면 두 번째 명령어는 실행되지 않습니다. make && make install | 한 명령어의 출력을 다른 명령어의 입력으로 전달할 때 사용합니다. ps -ef | grep python > 명령어의 출력을 파일로 리다이렉션합니다. 파일이 이미 존재하면 덮어씁니다. echo abcde > test.txt >> 명령어의 출력을 파일로 리다이렉..
들어가기 앞서, 컨테이너 생성 시, Dockerfile 하단 지시문(CMD, ENTRYPOINT)을 통해 컨테이너 실행 상태를 유지해주지 않는다면, 컨테이너는 생성된 뒤 실행 상태를 유지하지 않고 종료됩니다. 따라서, 해당 포스팅에선 컨테이너 실행 상태를 유지할 수 있는 간단한 지시문을 다뤄보겠습니다. 지시문 예제 FROM ubuntu CMD ["sh", "-c", "tail -f /dev/null"] tail 로그 파일 또는 텍스트 파일의 내용을 보여주는 명령어입니다. f tail 명령어의 옵션 중 하나로, 파일의 내용을 실시간으로 모니터링하고 파일에 새로운 내용이 추가될 때마다 화면에 표시합니다. /dev/null 표준 출력(standard output)을 버릴 때 사용되는 특별한 파일입니다. 이 파..