DevOps(kubernetes)

DevOps(kubernetes)

[Jenkins] Jenkins 파드에서 도커 이미지 빌드(2) Docker Agent yaml 및 PV, PVC 선언

Docker Agent Pod 구현위의 구성을 구현하기 위해서 도커 에이전트를 pipeline syntax 내부에 agent로 정의해주어야 한다 Docker Agent PV, PVCapiVersion: v1kind: PersistentVolumemetadata: name: docker-agent-pvspec: capacity: storage: 10Gi accessModes: - ReadWriteOnce local: path: /mnt/docker_new volumeMode: Filesystem nodeAffinity: required: nodeSelectorTerms: - matchExpressions: - key: kubernet..

DevOps(kubernetes)

[k8s] k8s 클러스터 CI/CD 파이프라인 아키텍처

인턴 과제를 수행하면서 만든 CI/CD 아키텍처입니다1. 인프라 환경에 대한 이해 2. 전체 아키텍처구축 방법Gitlab, Jenkins, ArgoCD는 클러스터 내부에 각각의 네임스페이스로 구성하여 구축Docker는 private hub를 이용했다.CI / CDCI : JenkinsCD : ArgoCD 1) Gitlab 소스코드 Repository 2) Jenkins 3. GitOps Repository 4. ArgoCD

DevOps(kubernetes)

[Jenkins] Jenkins 파드에서 도커 이미지 빌드(1) Docker Agent 파드 채택한 이유

이슈 : 도커 미설치Jenkins 파드에서 도커 이미지를 빌드하려고 했지만, 젠킨슨 파드 자체에 docker나 docker cli가 설치되어 있지 않았다. deployment에서 container init시에 docker을 설치해줄까 했지만 init시에 도커를 설치하는 방법 말고 다른방법 1. Jenkins 파드 내부에 도커 CLI 설치 및 노드의 docker.sock 마운트장점jenkins에 도커를 설치하지 않고, cli 설치만으로 docker 사용 가능하다단점노드의 docker 데몬의 완전한 권한을 파드가 받는 것이기 때문에 보안의 위험이 있다. 방법 2. Jenkins 파드 내부에 도커 설치 장점보안의 위험이 없음deployment를 수정하여 손쉽게 설정할 수 있다단점도커 이미지를 빌드하는 여러 개..

DevOps(kubernetes)

[Gitlab] Gitlab 파드 root 비밀번호 찾는법 / 비밀번호 재설정

1. 초기 비밀번호 찾기kubectl get secret -n [namespace 이름] [릴리즈 이름]-gitlab-initial-root-password -o jsonpath="{.data.password}" | base64해당 명령어로 secret 파일에서 base64 decoding을 진행하면 초기 비밀번호를 볼 수 있다초기 아이디는 root 이다 2. root 비밀번호 재설정root 계정으로 로그인 후 상단의 프로필에서 edit profile을누른다 해당 프로필의 Password 섹션에서 비밀번호를 재설정할 수 있다.

DevOps(kubernetes)

[Gitlab] root(admin)에서 user register 승인하기

1. User registerregister 버튼을 누르고 Sign up을 완료한다 로그인 불가능특별한 인증수단을 거치지 않았기 때문에 root의 승인이 있어야 가입이 가능하다 2. admin areaGitlab 페이지 하단의 Admin Area를 클릭한다 3. Users 섹션Users 섹션을 클릭한다 4. Users > 2FA Disaled2FA Disaled 섹션을 클릭한다 5. 승인하기register 신청한 가입자 우측 토글을 눌러 Approve을 진행하면 정상적으로 로그인이 가능하다

DevOps(kubernetes)

[ArgoCD] Gitlab repo 연동하는 법

1. Git repo 추가하기Settings > Repositories로 들어가서 connect repo를 누른다 1) Https로 연동https를 선택한다 2) Gitlab에서 url 복사연동할 gitlab repo의 url을 복사한다 3) 계정 정보 입력해당하는 git repository의 url과 해당 repo를 소유한 계정과 비밀번호를 입력한다 4) Http, verification 설정아래의 설정은 개발환경에 맞게 선택한다 5) 연동 완료Successful이 보이면 잘 연동된 것이다 2. Deploy, New appNew App을 클릭한다app name을 정의해주고, default로 설정한다Sync Policy는 자동으로 git repo가 업데이트 될때 혹은 수동으로 설정할 수 있다 1) Git..

DevOps(kubernetes)

[ArgoCD] k8s cluster와 연동하는법 [배스천 서버 Nodeport]

Admin 비밀번호해당 방법을 실행하기 전에 argocd 의 admin계정 password를 알고 있어야 한다kubectl -n argocd get secret argocd-initial-admin-secret -o jsonpath="{.data.password}" | base64 -d해당 명령어를 통해 decode된 admin의 initial password를 확인할 수 있다 적용할 클러스터 찾기kubectl config get-contexts 출력 예시위와 같은 정보가 나오는데 우리는 여기서 NAME에 해당하는 부분으코 클러스터를 추가할 것이다 방법 1 : Argocd 파드 내부에서 cluster Addkubectl exec -it bash먼저 argocd 파드 내부로 접속한다 argocd logi..

DevOps(kubernetes)

[k8s] 서비스 어카운트 트러블 및 SCC 부여

1. 에러 로그"intern-shared-secrets-3ea9052-" is forbidden : error looking up service account gitlab/intern-shared-secrets : serviceaccount "intern-shared-secrets" not foundgitlab이라는 네임스페이스에서 intern-shared-secrets 라는 ServiceAccount 를 찾을 수 없다는 로그파드를 생성할 때 각 파드에게 ServiceAccount를 부여하는데 해당 SA가 없어서 생기는 오류다 2. 해결방법해당 파드가 요구하는 SA를 생성하여 SCC(권한)를 부여해주면 된다1) Service Account 생성 명렁어kubectl create serviceaccount ..

되다
'DevOps(kubernetes)' 카테고리의 글 목록