반응형

전체 글 150

쿠버네티스 클러스터 내 DNS 주소 변경

저 같은 경우 k8s 클러스터에서 ArgoCD를 설치하였는데, 제가 생성한 GitLab Repository를 등록하는 데, Error가 나왔습니다. Error를 정리 해보면,CoreDNS에서 제가 생성한 GitLab의 도메인을 찾지 못하여 ArgoCD에서 Repository를 등록하지 못하는 에러가 나왔었습니다. 그래서 CoreDNS의 ConfigMap을 수정하여 다음과 같은 에러를 해결했습니다.CoreDNS ConfigMap 수정# kubectl edit configmaps -n kube-system coredns 위 명령어를 입력 해주면 아래 이미지와 같이 나옵니다. 여기서 저는 forward . 부분에 제가 사용하는 DNS 서버의 IP를 입력 해주었더니만 ArgoCD에서 정상적으로 제가 생성한 Gi..

쿠버네티스 2024.07.26

Gitlab-runner 사용해서 Gradle 빌드 해보기

이번엔 Gitlab-runner 사용해서 Gradle 빌드 해보겠습니다.1. Gitlab Project에 build 할 때 필요한 파일 업로드저 같은 경우에는 Gitlab에서 Project를 하나 생성을 한 후에 빌드에 필요한 파일들을 모두 올려두었습니다.  2. 원격 서버에 SSH 키 생성 및 Pipeline 변수 설정.gitlab-ci.yml 파일로 Run Pipeline 하기 전에 원격 서버(10.10.92.10)에서 해주어야 할 일이 있습니다. 1. SSH 키 생성$ ssh-keygen -t rsa -b 4096 위 명령어를 입력하면 두 개의 파일이 생성 됩니다.id_rsa (개인 키)id_rsa.pub (공개 키) 2. 서버의 인증된 키에 공개 키 추가앞서 생성된 공개 키를 원격 서버(10.10..

Pipeline 2024.07.25

Harbor 설치

https://goharbor.io/docs/2.0.0/install-config/installation-prereqs/Harbor 설치 관련 내용은 위 사이트에서 참조하였습니다.1. Harbor 설치 전 요구 사항Harbor를 설치하기 전, 필요한 사항들을 알아보도록 하겠습니다.Harbor 하드웨어 요구사항자원최소사양권장사양CPU2 CPU4 CPUMem4 GB8 GBDisk40 GB160GB소프트웨어 요구사항소프트웨어버전Docker 엔진Version 17.06.0-ce 이상Docker ComposeVersion 1.18.0 이상Openssl최신버전 추천Network Ports아래에서 요구하는 포트를 사용할 수 있어야 합니다.PortProtocol443HTTPS4443HTTPS80HTTP2. Harbor..

도커 2024.07.23

쿠버네티스 라이브니스 프로브, 데몬셋 이란?

라이브니스 프로브(liveness probe)란?쿠버네티스에서 컨테이너가 살아 있는지, 죽어있는지 확인 할 수 있게 해준다.라이브니스 프로브에는 3가지 메커니즘이 존재합니다.HTTP GET 프로브, 지정한 IP 주소, 포트, 경로에 HTTP GET 요청을 통해 컨테이너의 상황을 확인 합니다.TCP 소켓 프로브, 컨테이너의 지정된 포트에 TCP 연결을 시도하여 컨테이너의 상황을 확인 합니다.Exec 프로브, 컨테이너 내의 임의의 명령을 실행하고 명령의 종료 상태 코드를 확인 하여 컨테이너의 상황을 확인 합니다.ex) HTTP GET 프로브 방식apiVersion: v1kind: Podmetadata: name: kubia-livenessspec: containers: - image: luksa/kub..

Terraform 404 error 해결

Terraform 으로 SCP 에서 인프라를 구성하던 도중404 에러가 나와서 확인 해본 결과Terraform 코드로 생성한 인프라에서 수동으로 변경된 사항이 있는 경우에 404 에러가 나온다.저는 Virtual_machine 하나를 수동으로 삭제를 해서 계속 404 에러가 나왔었습니다.해결 방법현재 Terraform 코드로 구성된 환경 확인 명령어terraform state listterraform state list 명령어를 입력하여 terraform apply 명령어를 입력하여 구성한 환경과 다른 점을 찾아 줍니다.  위의 이미지에는 없지만, 저 같은 경우에는 virtual_machine을 제가 수동으로 SCP 콘솔에서 지웠어서 terraform state에서 수동으로 지워주었더니 정상적으로 동작을..

Terraform 2024.07.01

쿠버네티스 네임스페이스 변경

쿠버네티스에서는 네임스페이스 별로 pod, service 등등 자원이 나뉘는데, 특정 네임스페이스에 있는 자원들을 조회하려면ex) # kubectl get pods -n test 위와 같이 네임스페이스를 명시해줘야한다. (기본적으로는 default 네임스페이스)뒤에 -n 옵션 후 네임스페이스를 명시하는 것이 귀찮다면, 기본적으로 default 네임스페이스를 다른 네임스페이스로 변경 할 수 있다.예를 들어 ansible-awx 라는 네임스페이스를 default 네임스페이스 대신 하고 싶다면,# kubectl config set-context --current --namespace ansible-awx 위와 같이 커맨드를 입력을 해주면 변경된다. 변경 후 확인 방법은, 아래의 커맨드를 입력해주면 된다.# k..

쿠버네티스 2024.06.27

Gitlab runner 사용해서 CI 해보기

이번에 해볼 것은 Gitlab runner 사용해서 docker 이미지 빌드하고 harbor 레지스트리에 추가 해보도록 하겠습니다.config.toml 파일 수정우선 Gitlab runner에서 docker 명령어를 사용하기 위해서 /etc/gitlab-runner/config.toml 파일을 수정해줍니다.[[ruuners]] executor = "shell" => "docker" [runners.docker] tls_verify = false image = "docker:24.0.5" privilieged = true config.toml 파일을 수정해준 다음 Gitlab-runner를 재시작 해줍니다.(저 같은 경우에는 docker 컨테이너로 gitlab-runner 서비스를 실행해주었기 때..

Pipeline 2024.06.14

Kubernetes 네임스페이스 별 자원할당

이번엔 네임스페이스 별로 자원할당량을 설정해주고 serviceaccount에해당 네임스페이스에 대한 권한만 부여하여 자원을 나눠서 사용해보도록 하겠습니다.1. Namespace 생성우선 Namespace를 생성 해줍니다.# kubectl create namespace ex) kubectl create namespace test2. Service Account 생성네임스페이스를 사용할 Service Account를 생성 해줍니다.# kubectl create serviceaccount -n ex) kubectl create serviceaccount test-sa -n test3. Role 정의Service Account에 넣어줄 권한을 정의해주는 Role을 생성 해줍니다.apiVersion: rbac...

쿠버네티스 2024.06.11

쿠버네티스 Metrics 설치

이번엔 쿠버네티스 클러스터에 Metrics 설치를 해보겠습니다.우선 githup에서 metrics-server 설치를 위한 코드를 받아오겠습니다. # git clone https://github.com/kubernetes-sigs/metrics-server.git kubelets에서 제공하는 인증서를 무시하기 위해서 --kubelet-insecure-tls 옵션을 넣어줍니다.# cd metrics-server/manifest/base# vim deployment.yaml  그리고 이제 yaml 파일을 사용해서 배포 해줍니다.위치는 /metrics-server/manifests/base# kubectl apply -k .  설치 완료 후 확인# kubectl top nodes

쿠버네티스 2024.06.10
반응형