IT 118

[Kubernetes] Kubernetes Study: "기본 오브젝트 - Service"

Prologue 본 포스트는 인프런 쿠버네티스 스터디 그룹에서 진행하는 스터디 자료의 일환으로 작성하였습니다. 기본적으론 [대세는 쿠버네티스] 강의를 보고 내용을 정리합니다. 그리고 제 경험이나 이해를 곁들여 포스트를 작성했습니다. 그동안 공식 문서나 블로그 포스트, CKA 강의 등 다양한 경로로 쿠버네티스를 익혀왔지만, 한국어로 잘 정리된 강좌를 한번 듣고 깔끔하게 다듬어보는 시간을 가지면 좋겠다는 생각이 들었습니다. 강의와는 조금 다를 수 있지만, 쿠버네티스 공식 문서를 보고 내용을 정리해보겠습니다. 이번 포스트에선 "기본 오브젝트 - Service"를 다뤄봅니다. Service 서비스는 파드 집합에서 실행중인 애플리케이션을 네트워크로 노출하는 방법입니다. 앞서 설명드렸듯, 파드는 재생성이 되면 클러..

IT/Kubernetes 2021.06.27

[Kubernetes] Kubernetes Study: "기본 오브젝트 - Pod"

Prologue 본 포스트는 인프런 쿠버네티스 스터디 그룹에서 진행하는 스터디 자료의 일환으로 작성하였습니다. 기본적으론 [대세는 쿠버네티스] 강의를 보고 내용을 정리합니다. 그리고 제 경험이나 이해를 곁들여 포스트를 작성했습니다. 그동안 공식 문서나 블로그 포스트, CKA 강의 등 다양한 경로로 쿠버네티스를 익혀왔지만, 한국어로 잘 정리된 강좌를 한번 듣고 깔끔하게 다듬어보는 시간을 가지면 좋겠다는 생각이 들었습니다. 강의와는 조금 다를 수 있지만, 쿠버네티스 공식 문서를 보고 내용을 정리해보겠습니다. 이번 포스트에선 "기본 오브젝트 - Pod"를 다뤄봅니다. Kubernetes Object 공식 문서에 따르면 쿠버네티스 오브젝트는 쿠버네티스 시스템에서 영속성을 가지는 오브젝트이며, 쿠버네티스는 클러스..

IT/Kubernetes 2021.06.27

[Kubernetes] 깔끔하게 kubeadm reset 하기

Prologue 클러스터를 잘못 구축했을 때, 이거 저거 생각할 필요 없이 클러스터를 날려버리고 싶었습니다. 단순히 kubeadm을 이용해 배포하는 단계부터 다시 시작하고 싶었기 때문입니다. 예전에 찾아둔 방법인데, 이제야 공유합니다. kubeadm을 이용해 클러스터를 구축했을 때 사용할 수 있는 방법이니 참고해주세요! Docker Reset # Docker 초기화 $ docker rm -f `docker ps -aq` $ docker volume rm `docker volume ls -q` $ sudo umount /var/lib/docker/volumes $ sudo rm -rf /var/lib/docker/ $ sudo systemctl restart docker kubeadm Reset # kub..

IT/Kubernetes 2021.06.22

[Kubernetes] kubeadm을 이용해 Kubernetes 클러스터를 구축해보자

프롤로그 지난 포스트 "[containerd] containerd를 CRI 런타임으로 하는 Kubernetes 클러스터를 구축해보자" 에 이어서 이번엔 Kubernetes 클러스터를 구축해보겠습니다. 본 포스트에선 이미 CRI 런타임이 설치되어 있다고 가정하고 kubeadm을 이용해 클러스터를 구축합니다. 만약 CRI 런타임이 설치되어 있지 않다면, 위 포스트를 참고하여 CRI 런타임부터 설치해주세요! 추가로, 이 포스트는 개발 환경에서 사용하기 위해 간단하게 구축하는 방법을 소개합니다. 실제 프로덕션 환경에서 사용하셔서는 안 됩니다! 추가에 추가로, 가장 간단하게 로컬에 Kubernetes 클러스터를 구축하는 방법은 minikube를 사용하시거나 docker for mac 등을 사용하셔서 해당 프로그램..

IT/Kubernetes 2021.06.21

[IT Wiki] Github 커밋에 VERIFIED 태그 다는 법(macOS)

프롤로그 언젠가 예전부터 사용하던 맥북프로에서 커밋했을 땐, 아래처럼 예쁜 VERIFIED 마크가 붙어서 나왔는데, 최근에 주력으로 사용하고 있는 맥 미니에서 커밋을 하면 태그가 붙어 있지 않은 것을 볼 수 있었습니다. 처음에는 그냥 참고 넘길까 했는데, 보다보니 없으면 뭔가 내가 비선별인원이 된 기분이라 확인 받은 사람 대열에 동승하기 위해 오늘 작업을 하게 되었습니다. 요구사항 이 포스트에서 다루는 환경은 macOS입니다. 다른 환경에서 사용하고 계신 경우, 불편하시더라도 추가적인 구글링을 통해 꼭 원하시는 성과를 얻으시길 기원합니다! GPG Key 설정하기 큰 흐름은 여기를 따라갑니다. 다른 글들도 많이 봤는데, 계속 에러가 나서 직접 수정한 부분도 있습니다. GNUPG, PINENTRY-MAC 설..

IT/IT WIKI 2021.06.20

[containerd] containerd를 CRI 런타임으로 하는 Kubernetes 클러스터를 구축해보자

Prologue 사내에서 테스트 용도로 사용할 쿠버네티스 클러스터가 필요해서 급하게 VM을 만들고 구축을 하려던 참이었습니다. 이전에 올렸던 글에서 소개드린 것처럼, 1.20 릴리즈부터는 Docker가 Deprecated 되었다는 것이 생각나서, 이참에 containerd로 클러스터를 구축해보자는 생각이 들어 이렇게 진행하게 되었습니다. 본 포스트에서는 Ubuntu 18.04 위에서 containerd를 설치합니다. Kubernetes 클러스터 구축 과정은 별도의 포스트로 다룰 예정이니 참고해주세요! 그리 어렵지 않으니 쉽게 따라하실 수 있습니다. Kubernetes 클러스터 구축 과정을 다룬 포스트가 올라왔습니다. 여기를 참조해주세요! containerd 설치를 위한 사전 작업 우선 containerd..

IT/containerd 2021.06.19

[Kubernetes] Helm Chart 만들기

Prologue 일반적으로 Kubernetes Manifest 파일은 정적인 형태입니다. 따라서 데이터를 수정하기 위해선 파일 자체를 수정해야 합니다. 잘 관리를 한다면야 큰 어려움은 없겠지만, 문제는 CI/CD 등 자동화된 파이프라인을 구축해서 애플리케이션 라이프사이클을 관리할 때 발생합니다. 보통 애플리케이션 이미지를 새로 빌드하게 되면, 빌드 넘버가 변경됩니다. 이렇게 되면 새로운 이미지를 사용하기 위해 Kubernetes Manifest의 Image도 변경되어야 합니다. 하지만 Kubernetes Manifest를 살펴보면, 이를 변경하기 쉽지 않다는 것을 깨닫게 됩니다. Image Tag가 별도로 존재하지 않고 Image 이름에 붙어있기 때문입니다. 이를 자동화 파이프라인에서 변경하려면, sed..

IT/Kubernetes 2021.06.18

[DevOps] Jenkins Pipeline이 종료되지 않는 경우

Prologue 평화롭게 파이프라인 구성을 위한 테스팅을 진행하던 중, 갑자기 파이프라인이 종료되지 않는 문제가 발생했습니다. 스택 오버 플로우를 찾아보니, "Script Console"에서 명령줄을 넣어 실행하면 종료된다고 합니다. 하지만 그리 쉽게 문제가 해결되지 않았고, 좀 더 내려보다 보니, 직접 파이프라인 빌드 디렉터리를 삭제하고 Jenkins를 재시작하는 방법을 소개하는 답변이 있었습니다. 제 경우에는 이 해결 방법이 딱 맞아서, 이번 포스트에서는 이 내용을 소개하고자 합니다. 해결 방법 우선 Jenkins 서버에 SSH로 접속합니다. 만약 Docker 등으로 실행한 경우라면, docker exec 명령어 등을 사용해서 붙습니다. 만약 /bin/bash 또는 sh가 제공되지 않는다면, 아래 명..

IT/DevOps 2021.06.14

[Kubernetes] kubectx를 활용해서 멀티 클러스터를 관리하자

Prologue 사내에서 사용하던 클러스터가 1개라 그동안은 멀티 클러스터 관리에 그다지 관심을 두지 않았습니다. 하지만 개발용 클러스터와 실사용 클러스터를 분리하고 제 로컬에 있는 데스크탑 클러스터까지 사용하게 되다보니 이제는 멀티 클러스터 관리의 필요성을 절실히 느끼게 됐는데요. 로컬에서 작업을 할 때 빈번히 클러스터의 전환이 필요했고 더불어 네임스페이스의 전환도 필요했습니다. 매번 -n blahblahblah 를 타이핑하는 건 수고로운 일이니까요. 오늘 포스트에서는 kubectx를 이용한 클러스터 간 전환을 간편하게 만들어보는 작업을 해보겠습니다. kubectx kubectx는 클러스터 간의 전환을 쉽고 빠르게 할 수 있게 해주는 플러그인입니다. v0.9.0 이전까지는 bash를 이용해 구현되었고,..

IT/Kubernetes 2021.06.13

[DevOps] ArgoCD Best Practice

Prologue 최근 들어, 팀 내부의 CI/CD 파이프라인을 구축하기 위해 다양한 오픈 소스 툴을 살펴보고 있습니다. ArgoCD는 CD 쪽 파트를 담당하는 훌륭한 도구입니다. 하지만 이런 도구를 활용할 때 어떻게 하면 더 효율적으로 사용할 수 있는지는 좀 더 공부가 필요한 상황입니다. 특히 오늘 포스트에서 소개하는 내용이 그러한데요. 얼마전까지는 애플리케이션의 소스 코드 레포지토리에 ArgoCD가 이용할 매니페스트 파일도 함께 관리했습니다. 하지만, 경험적으로 알게 된 사실은, 이렇게 하게 되니 매니페스트 파일만 수정했을 뿐인데도 CI가 자동으로 발생하는 상황이 벌어졌습니다...🥲 이러한 상황을 막기 위해 ArgoCD 공식 문서에서도 매니페스트 파일과 소스 코드 레포지토리를 분리할 것을 권고하고 있는..

IT/DevOps 2021.06.12
반응형