Skip to content

15기 여러분, 수고하셨습니다 #43

Description

@sysnet4admin

지난 금요일로 "AI로 배우는 쿠버네티스" 7회차가 모두 끝났습니다. 저녁 시간을 내어 끝까지 함께해 주셔서 감사합니다.
중간 발표와 프로젝트로 바쁜 시기였는데도 매 시간 질문을 주셔서 저도 진행하는 내내 즐거웠습니다.

[이번 기수에 올라온 이슈를 모두 보는 방법]

수업 중에 나온 질문은 그때그때 답을 드리고 나서 근거와 함께 저장소 이슈로 정리해 두었습니다.
이 글을 포함해 15기에는 30개가 올라와 있는데 지금 Issues 탭을 열면 이 글 하나만 보입니다. Issues 탭의 기본 검색 조건이 is:open이라 닫힌 이슈는 목록에 나오지 않기 때문입니다.

전부 보시려면 아래 주소로 들어가 보시기 바랍니다.

https://github.com/sysnet4admin/SSF/issues?q=milestone%3A%2215기%22

물론 직접 찾아보셔도 됩니다. Issues 탭에 들어가서 검색창에 기본으로 들어 있는 is:open을 지우고 milestone:"15기"를 넣으시면 같은 결과가 나옵니다.
닫힌 이슈도 내용은 그대로 남아 있으니 언제든 읽으실 수 있습니다.

이슈를 다시 찾아보실 때 순서를 하나 말씀드리면 지금 본인 프로젝트에서 막혀 있는 부분과 관련된 번호부터 보시는 편이 좋겠습니다.

덧붙여 저장소 오른쪽 위의 Star는 유튜브의 좋아요나 구독과 비슷한 기능이고 Watch를 함께 걸어 두시면 새 내용이 올라올 때 알림을 받으실 수 있습니다.
앞으로도 보실 생각이라면 두 개를 다 눌러 두시기 바랍니다.

[주말에 본 다큐멘터리 이야기]

지난 주말에 마이크로소프트가 공개한 "The Story of VS Code" 다큐멘터리를 봤습니다.
VS Code는 지금이야 개발자 대부분이 쓰는 편집기지만 처음부터 그렇게 널리 쓰이던 것은 아닙니다. 웹 브라우저에서 실행되는 편집기를 만들어 보자는 시도에서 시작해서 10년에 걸쳐 지금의 모습이 되었다는 이야기를 다룹니다.

https://youtu.be/kHL3XzjpT5w

이 다큐멘터리를 보면서 오래 살아남는 기술은 한 번에 완성되는 것이 아니라 계속 고쳐 가면서 쌓인다는 생각을 다시 하게 되었습니다.
이번 과정도 마찬가지여서 우리도 7회차에 걸쳐 Pod 하나에서 시작해서 Deployment와 Service를 얹고 ConfigMap과 Secret을 붙이고 마지막에 CI와 CD까지 이어 왔습니다.

그렇다면 이런 기술들을 어떻게 계속 따라갈 수 있을까요? 특별한 방법이 있지는 않고 관심을 두고 꾸준히 지켜보는 것이 전부라고 생각합니다.
새 도구가 나왔다는 이야기가 들리면 문서 첫 페이지라도 열어 보고 남이 만든 저장소가 있으면 구조라도 한 번 훑어보는 정도로 충분합니다.
그렇게 자주 보다 보면 처음 접하는 기술이라도 "아, 이건 예전에 본 그것과 비슷한 구조구나" 하고 알아보기까지 걸리는 시간이 점점 짧아집니다. 실제로 여러분도 쿠버네티스를 처음 배우기 시작했을 때보다 7회차에 ArgoCD를 다룰 때 훨씬 빨리 이해하실 수 있었습니다.

[사람이 직접 결정해야 하는 일]

요즘은 AI가 코드를 대신 써 주다 보니 앞으로 무엇을 준비해야 할지 막막하다는 이야기를 자주 듣습니다.
저도 그 걱정 자체가 근거 없다고 말씀드리지는 않겠습니다. 몇 년 전에 사람이 직접 하던 일 중 상당 부분은 이제 지시 한 줄로 끝나기도 합니다.

그런데 이번 7회차를 돌아보시면 AI에게 맡긴 작업과 여러분이 직접 정한 판단이 나뉘어 있었습니다.
매니페스트를 쓰고 명령을 만들어 준 것은 AI였지만 LoadBalancer로 외부에 노출할 것인지 ClusterIP로 둘 것인지, 이 값을 ConfigMap에 넣을 것인지 Secret으로 뺄 것인지, 클러스터를 지울 것인지 켜 둘 것인지를 정한 것은 여러분이었습니다.
마지막 시간에 받은 질문들도 전부 이 결정에 해당합니다. k3s를 쓸 것인지 관리형을 쓸 것인지, 한 번에 옮길 것인지 나누어 옮길 것인지가 모두 그런 질문이었습니다.

이렇게 사람이 직접 결정해야 하는 일은 없어지지 않습니다. 오히려 AI가 만들어 주는 코드의 양이 늘어날수록 그중에 무엇을 받아들이고 무엇을 되돌릴지 골라야 하는 경우가 더 자주 생깁니다.
그리고 그 결정을 하려면 동작 원리를 알고 있어야 합니다. Pod가 왜 종료됐는지 짐작이 돼야 AI가 내놓은 답이 맞는지 판단할 수 있고 요금이 어디서 나오는지 파악하고 있어야 클러스터를 켜 둘지 말지 정할 수 있습니다.

그래서 앞으로 공부하실 때도 도구 사용법을 외우기보다 그 도구가 실제로 어떻게 동작하는지에 시간을 쓰시면 좋겠습니다.
도구는 자주 바뀌지만 동작 원리는 훨씬 천천히 달라지고 원리를 알고 있으면 새 도구가 나와도 며칠이면 따라갈 수 있습니다. 그러다 보니 이번 과정에서도 매 회차 "왜 이렇게 되는가"를 계속 물어봤습니다.

[이어서 볼 책 두 권]

마지막 시간에 부록으로 책 두 권을 적어 두었는데 그 두 권을 조금 더 말씀드리겠습니다.
이번 과정에서 다룬 내용은 "AI 시대에 개발자가 알아야 할 인프라 구성 배포 with 클로드 코드"의 1장에서 3장에 해당합니다. 클러스터를 만들고 앱을 올리고 CI와 CD를 붙이는 데까지 진행했습니다.
지금 배운 내용에서 그대로 이어지는 부분이 4장이고 관측 가능성(Observability)을 다룹니다. 서비스가 느려졌을 때 어디가 느린지 찾아보는 방법인데, 이번 수업에서 podName만 보고 짐작하던 동작 상태를 지표와 로그로 확인하는 단계라고 보시면 됩니다.

https://github.com/sysnet4admin/_Book_GitAIOps

그에 반해 클라우드를 쓰지 않고 노트북에서 클러스터를 직접 만들어 보고 싶으시다면 "컨테이너 인프라 환경 구축을 위한 쿠버네티스/도커"가 맞습니다.
베이그런트(Vagrant)로 가상 머신을 실행해서 클러스터를 구성하고 젠킨스(Jenkins)와 프로메테우스(Prometheus)까지 함께 만들어 봅니다. 이번 과정에서 GKE를 쓰느라 건너뛴 부분을 하나씩 만들어 보게 됩니다.

https://github.com/sysnet4admin/_Book_k8sInfra

두 저장소 모두 실습 코드는 공개되어 있어서 구조만 훑어보셔도 도움이 됩니다.
다만 왜 그 구조를 골랐는지 그리고 중간에 걸리는 문제를 어떻게 푸는지는 책에 적어 두었으니, 이어서 해 보실 생각이라면 책과 함께 보시는 편이 수월합니다.

[마지막으로]

7회차 동안 다룬 내용은 쿠버네티스 전체에서 보면 아주 일부입니다.
다만 클러스터를 직접 만들어서 앱을 올리고 고장을 내 보고 되돌려 보고 Git에 push하면 자동으로 배포되는 것까지 한 번 끝까지 해 보셨습니다. 이 경험을 해 본 사람과 그렇지 않은 사람은 다음에 무언가를 배울 때 속도에서 굉장히 큰 차이가 납니다.

질문에 답을 드리는 것은 마지막 시간까지였습니다. 저장소와 이슈는 다음 기수에도 그대로 쓰기 때문에 없어지지 않고 언제든 다시 보실 수 있지만 새로 올라오는 내용에는 답을 남기기 어렵습니다.
그래서 앞으로 막히는 부분은 여러분이 직접 푸셔야 하는데, 사실 이번 수업에서 연습한 것이 바로 스스로 문제를 좁혀 가는 이 방법입니다. 무엇이 문제인지 추려 내고 AI에게 물어본 다음 그 답이 맞는지 확인하는 순서를 일곱 번 거쳐 보셨으니 이제 혼자서도 하실 수 있습니다.

모두 고생 많으셨습니다. 좋은 결과 있으시기를 바랍니다. :)

감사합니다.
조훈 드림.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions