(PKOS) 3주 차 – GitOps


PKOS 연구 소개

이 게시물은 가다에서 작성했습니다. 프로덕션 Kubernetes 온라인 연구(PKOS) 연구 내용 정리.

이 PKOS 연구에서 연구, 연구 개요 자료 및 과제(이 게시물)는 모두 책입니다. 콘텐츠 기반 이동.


공부 3주차 소개

이번 셋째 주에는 GitOps에서 사용되는 Harbour, ArgoCD 및 GitLab에 대해 배웁니다.

그림과 같이 다음과 같습니다.


이미지 출처:

실험실 환경 제공

  • kops-ec2 : 요새용(t3.small)
  • 컨트롤 플레인: 마스터 노드
  • node1 : 작업자 노드
  • noed2 : 작업자 노드


항구

로컬 환경에서 사용할 수 있는 컨테이너 이미지 저장소입니다.


하버는 2020년 CNCF를 졸업하는 프로젝트입니다.

운영 수준에서는 RBAC(Role-Based Access Control), 취약성 스캐닝(Vulnerability Scanning) 및 이미지 서명을 지원합니다.

https://github.com/goharbor/harbor

CSP에서 제공하는 Docker Hub 및 이미지 스토리지와 같은 외부 솔루션을 사용할 수 있지만 스토리지, 네트워크 및 보안상의 이유로 많은 회사에서 컨테이너 이미지 스토리지로 로컬 온프레미스 환경을 선호합니다.

예상보다 많은 기업들이 보안상의 이유로 Harbor를 사용하고 있습니다.

훈련

# 사용 중인 리전의 인증서 ARN 확인

aws acm list-certificates –query ‘CertificateSummaryList().CertificateArn()’ –출력 텍스트

CERT_ARN=`aws acm list-certificates –query ‘CertificateSummaryList().CertificateArn()’ –output text`

echo “alb.ingress.kubernetes.io/certificate-arn: $CERT_ARN”

# 포트를 설치

투구 저장소 포트 추가 https://helm.goharbor.io

헬름 포트/포트 가져오기 –untar –version 1.11.0

vim ~/harbor/values.yaml

———————-

# AWS를 사용할 것이므로 certSource를 제외합니다.

Expose.tls.certSource=없음

# 호스트 지정

Expose.ingress.hosts.core=harbor.soojinoncloud.com

Expose.ingress.hosts.notary=notary.soojinoncloud.com

# 컨트롤러와 클래스 이름 얻기

Expose.ingress.controller=alb

expon.ingress.className=alb

# Ingress에 주석 추가

alb.ingress.kubernetes.io/scheme: 인터넷 액세스 가능

alb.ingress.kubernetes.io/대상 유형: ip

alb.ingress.kubernetes.io/listen-ports: ‘({“HTTPS”:443}, {“HTTP”:80})’

alb.ingress.kubernetes.io/certificate-arn: ${CERT_ARN} # 고유한 값 입력

# 포트 콘솔(?)에 접속할 URL을 입력합니다.

외부URL=https://harbor.soojinoncloud.com

———————-

포트 연결 성공


프로젝트 생성



인증서 삽

첫째, SSL이 연결되지 않았습니다.


알고 보니 내가 가지고 있던 ACM 인증서는 soojinoncloud.com용이었는데 Harbor.soojinoncloud.com용 인증서는 없었다.

ACM 인증서를 처음 발급받았기 때문에,

이 기회 덕분에 (이 인증서에 다른 이름을 추가) 해야 한다는 것을 처음 깨달았습니다.

깃랩



아르고 CD






명확한 자원


1단계: Helm 차트 삭제

# argocd 삭제
kubectl delete application -n argocd rabbitmq-helm  # 미 삭제되어 있을 경우 삭제
helm uninstall -n argocd argocd
kubectl delete ns argocd

# gitlab 삭제
helm uninstall -n gitlab gitlab
kubectl delete pvc --all -n gitlab
kubectl delete ns gitlab

# harbor 삭제
helm uninstall -n harbor harbor
kubectl delete pvc --all -n harbor
kubectl delete ns harbor

2단계: kOps 클러스터 및 AWS CloudFormation 스택 삭제

kops delete cluster --yes && aws cloudformation delete-stack --stack-name mykops