전체 글 38

[GCP] Container Registry에 image push 하기.

gcloud SDK 와 Docker가 설치 되어 있는 PC에서 진행하는 것을 전제로 합니다. 먼저 GCP 웹 콘솔에서 [API 및 서비스] 항목에 들어가 아래 GCR API를 활성화 해 줍니다. 아래 명령어로 gcloud 인증을 사용하도록 도커를 구성 합니다. $ gcloud auth configure-docker 그 다음 아래 명령어를 통해 가지고 있는 이미지에 태깅을 해 줍니다 $ docker tag [SOURCE_IMAGE] gcr.io/[PROJECT-ID]/[IMAGE:TAG] GCR에 PUSH(업로드) 해 줍니다. $ docker push gcr.io/[PROJECT-ID]/[IMAGE:TAG]

IT/GCP 2022.06.14

[Kafka] 폐쇄망에 3 Node로 카프카 클러스터 구성하기

카프카 클러스터를 구성하기 위해 먼저 VM(CE)를 구성 해 준다. 총 4대의 VM이 필요하며 이 중 3대는 카프카 클러스터 구성용, 1대는 SSH 접속을 위한 Public IP가 부여된 VM이다. 폐쇄망 VM과 공개망 VM을 만드는 것은 따로 상세히 기술하지는 않는다. 주의 할 점은 카프카 클러스터 구성용 VM에는 각각 30GB의 외부 볼륨이 붙는다. 아래 사진 한장으로 설명을 대체 한다. 각 서버에 SSH로 접속하기 위해 edge 서버에서 몇가지 작업을 해야한다. 아래 순서대로 진행 한다. kafka 클러스터용 VM에 SSH로 접속하기 위한 키 생성 및 키 배포 작업. 클러스터용 VM에 외부 볼륨 마운트 후 kafka 계정 생성 작업. 편리한 SSH 접속을 위한 Script 작성 폐쇄망에 VM 3대에..

IT/Kafka 2022.05.30

[Linux] GCE에 Volume Mount 하기.

카프카 클러스터 구성을 위해 카프카 설치 영역과 데이터/로그 들이 모이는 영역을 분리해주는 작업을 하려고 한다. 계정 생성 등의 작업도 포함되어 있지만 주로 Volume Mount 쪽에 초점이 맞춰져 있다. 먼저 PV를 생성하고 VG안에서 LV를 나누는 순서로 구성한다. # 현재 Mount 된 Disk 목록 조회 g_cloud@kaf-com-dev-msq1:/$ sudo fdisk -l Disk /dev/loop0: 55.53 MiB, 58212352 bytes, 113696 sectors Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 5..

IT/Linux 2022.05.26

[Kafka] 아파치 카프카 로그 경로 바꾸기.

클라우드 운영 환경에서 로그 관리의 용이함을 위해 Kafka 애플리케이션의 Log를 Mount한 Volume 한곳에 모아두는 과정에서 이상한 점을 발견한다. Kafka에서 수집되어지는 로그 종류는 총 3 가지 정도로 보여지는데, 로그 위치를 지정 할 수 있는 옵션이 설정 파일들을 뒤져봐도 2 가지 밖에 없다는 것이다. 첫 번째는 server.properties 파일의 log.dirs 옵션이다. 이 로그 경로는 Kafka 애플리케이션의 자체 로그가 아니라 토픽, 파티션 정보등 Data가 저장되는 경로라고 이해 하는 것이 더 적합하다. 두 번째는 zookeeper.properties 파일의 dataDir 옵션이다. zookeeper에 관련된 로그들이 저장되는 경로이다. 세 번째로 kafka 애플리케이션의 로..

IT/Kafka 2022.05.25

[Kubernetes] Kubernetes DNS를 이해 해 보자.

- 쿠버네티스 클러스터에 kube-system이라는 Namespace에는 kube-dns라는 Service 타입의 오브젝트가 떠있음. - 새로운 Service를 생성하게되면(svc-web이라는 서비스를 생성하였고 그 서비스의 IP는 10.96.100.100 이라 가정) 그 서비스의 정보인 [svc-web : 10.96.100.100] 이라는 정보가 kube-dns에 등록 되어짐. - 즉 svc-web.default.svc.cluster.local에 연결 해달라는것은 10.96.100.100에 연결해 달라는 것과 같다. - kube-dns 그 자체도 하나의 Service 타입 오브젝트이기 때문에 자체적인 Cluster IP를 가지고 있는데 그 IP는 보통 10.96.0.10 인 경우가 많다. - 모든 Po..

IT/Kubernetes 2022.05.24

[Kubernetes] 쿠버네티스 컨텍스트 명령어 정리.

GCP GKE에서 여러 클러스터를 운영하다 보니 자주 쓰게되는 context 관련 명령어를 정리 한다. $ kubectl config current-context # 현재 컨텍스트 확인 $ kubectl config use-context var@one-dev-**** # var 계정으로 one-dev-cluster1에 연결 $ kubectl config use-context gke_one-dev-******_asia-northeast1-a_one-prod-**** $ kubectl config view # config 파일 출력 $ kubectl config get-contexts # context들 조회

IT/Kubernetes 2022.05.04

[GCP] Googlc Cloud CLI 를 설치하고 CI/CD 파이프라인 구축하기.

1. Google Cloud SDK 설치하기. 참조 : https://cloud.google.com/sdk/docs/downloads-interactive?hl=ko Google Cloud CLI 설치 프로그램 사용 | Google Cloud CLI 문서 의견 보내기 Google Cloud CLI 설치 프로그램 사용 Google Cloud CLI는 지원되는 플랫폼별로 설치 프로그램을 제공하며 대화형 또는 비대화형으로 배포할 수 있습니다. 대화형 설치 설치 프로그램을 사용 cloud.google.com # Windows에 내장된 Power Shell을 이용하여 진행 해도 되지만, 이 글에서는 VS Code에 Power Shell 터미널을 띄워서 진행 합니다. 1) VS Code를 관리자 권한으로 실행 합니..

IT/GCP 2022.04.20

[GCP] GCE에 Volume Mount 하기.

참조 : https://cloud.google.com/compute/docs/disks/add-persistent-disk?hl=ko $ sudo mkfs.ext4 -m 0 -E lazy_itable_init=0,lazy_journal_init=0,discard /dev/sdb # /dev/sdb는 마운트 할 스토리지 디바이스를 의미 $ sudo mount -o discard,defaults /dev/sdb /home/g-cloud/kafkadata # /home/g-cloud/kafka는 mount 할 디렉토리를 의미한다. $ sudo chmod a+w /home/g-cloud/kafkadata # VM 재시작시 자동 마운트 구성 $ sudo cp /etc/fstab /etc/fstab.backup $..

IT/GCP 2022.04.13

[GCP] GCE VM에 SSH 접속하기.

Xshell 을 이용하여 GCP Compute Engine 인스턴스에 접속하는 방법 입니다. 우선 생성된 인스턴스의 외부 IP가 필요합니다. Xshell에서 새로만들기 → 세션 을 선택하여 [연결] 탭의 [호스트] 에 접속할 인스턴스의 외부 IP를 입력합니다. [사용자 인증] 탭에서 사용자 이름은 g-cloud로 입력한다. 인증 방법은 Public Key를 체크하고 [설정]을 클릭한다. [찾아보기] 클릭 후 [생성] 키 생성 키 이름을 입력하고 암호는 선택적으로 입력한뒤 [마침]을 클릭 클릭 후 생성된 key 값을 전체 복사 합니다. 메타데이터에서 [수정] 을 클릭하고 복사한 키 값 맨 뒤에 g-cloud를 붙여준뒤 저장합니다. 이후 Xshell로 접속하면 접속이 잘 됩니다.

IT/GCP 2022.04.07