전체 글 794

ArgoCD 10편 - App of Apps 패턴

App of Apps패턴이란? ArgoCD application을 모아서 관리하는 패턴을 app of apps패턴이라고 합니다. app of app패턴으로 구성된 application을 sync하면 여러 argoCD application을 생성합니다. 생성된 application은 바라보는 git에 저장된 쿠버네티스 리소스를 배포합니다. 언제 사용할까? 여러 application을 관리할 때 사용합니다. 대표적인 예가 공식문서에서 소개하는 cluster bootstrapping입니다. 새롭게 구축한 쿠버네티스 클러스터에 필요한 쿠버네티스 리소스를 빠르게 배포하는 것을 cluster bootstrapping이라고 부릅니다. 필요한 쿠버네티스 리소스를 application으로 정의하고 여러 applicati..

연재 시리즈 2022.12.06

테라폼 시리즈. 졸업과제 준비

영상: https://youtu.be/4hqu5eagYJQ 1. 아이디어 테라폼 스터디 졸업과제로 할까 고민 중, 요즘 개인공부로 로컬테스트할 때 불편했던 쿠버네티스 구축이 떠올랐습니다. 쿠버네티스 설치와 삭제가 쉬우면서 테스트에 필요한 환경을 자동화해보면 좋지 않을까라는 시작으로 자료조사를 시작했습니다. 2. 자료조사 2.1 쿠버네티스 생성 제일 먼저 로컬에서 설치할 수 있는 쿠버네티스 오픈소스를 찾았습니다. kubespray rancher desktop docker desktop kind 2.2 후보선택: kind 후보 중 kind가 설치와 삭제가 제일 간편하고 시간도 안걸려서 kind 공식문서를 훓어봤습니다. kind는 쿠버네티스 노드를 도커 컨테이너로 사용하는 독특한 오픈소스였습니다. 그리고 In..

연재 시리즈 2022.12.04

argoworkflow api/v1/workflow-events pending 이슈해결

이슈내용 argoworkflow 조회에서 workflow-events가 pending이어서... workflow조회가 안되는 이슈를 발견했습니다. 해결방법 proxy를 사용하는 경우 proxy버퍼링 옵션을 비활성화 해야 합니다. 저는 argoworkflow를 조회하기 위해 nginx(ingress controller아님)를 거치기 때문에 오류가 발생했습니다. nginx는 proxy_buffering옵션으로 버퍼링을 비활성화 했습니다. server { listen 80; server_name localhost; location / { proxy_buffering off; ... } } nginx buffer을 비활성화했더니 workflow가 잘 조회됩니다!. 참고자료 github issue: https:/..

[Helm] Error: INSTALLATION FAILED: rendered manifests contain a resource that already exists 에러 해결

로컬환경에서 helm을 이용하여 argocd를 설치하는 중에 스펠링을 틀려, 스펠링 수정후 다시 설치하니 이상한 오류를 만났습니다. helm install -n argocd -f values.yaml argocd argo/argo-cd 오류를 자세히 읽어보니 이미 정의된 argocd CRD의 immutable metadata 수정오류였습니다. 그래서 기존 argocd CRD를 삭제후에 helm install명령어를 실행했습니다. 다행히 잘 helm chart가 성공적으로 설치되었습니다. k delete crd applicationsets.argoproj.io applications.argoproj.io appprojects.argoproj.io

쿠버네티스 worker노드 삭제 후 다시 조인

쿠버네티스 worker노드를 삭제하고 다시 클러스터에 조인하는 방법을 정리했습니다. 1. worker노드 삭제 kubectl delete node명령어로 worker노드를 클러스터에서 제가합니다. kubectl delete node {worker node이름} 2. worker노드 초기화 다시 worker노드가 클러스터 조인하기 전에 환경을 깨끗하게 해야합니다. 쿠버네티스 설정을 전부 삭제합니다. kubeadm reset rm -rf /etc/kubernetes rm -rf /etc/cni 실행중인 컨테이너를 전부 삭제합니다. for i in $(crictl ps -a);do crictl stop $i; done for i in $(crictl ps -a);do crictl rm $i; done 3. w..