목록전체 글 (762)
우노
들어가기 앞서, 해당 포스팅에선, K8S Deployment로 정의한 Prometheus Container를 기본 설정 파일 및 Basic Auth가 적용된 웹 설정 파일을 기반으로 실행하는 방법에 대해서 다뤄보겠습니다. 관련 리소스는 Terraform으로 관리하고 있기 때문에, HCL 코드를 기반으로 설명하겠습니다. Basic Auth에 사용할 비밀번호 해싱 python3-bcrypt를 사용해 Basic Auth에 사용할 비밀번호를 해싱합니다. import getpass import bcrypt password = getpass.getpass("password: ") hashed_password = bcrypt.hashpw(password.encode("utf-8"), bcrypt.gensalt()) ..
들어가기 앞서, Terraform에서, 공식 K8S Provider가 지원하지 않는 리소스는 ‘kubernetes_manifest’를 사용해 정의할 수 있습니다. 물론, yaml 파일을 그대로 사용할 수는 없으며 yaml의 모든 필드를 HCL 양식에 맞게 수정해야합니다. 다행히도 built-in function인 'yamldecode()'나 ‘tfk8s’ 같은 Tool을 사용해 YAML에서 HCL로 자동 변환할 수도 있습니다. yaml 예제 apiVersion: v1 kind: ConfigMap metadata: name: test-config namespace: default data: foo: bar Terraform kubernetes_manifest 예제 resource "kuber..
들어가기 앞서, 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..