1. 수업 소개

이번 학기 클라우드 프로그래밍 수업에서는 Kubernetes를 중심으로 컨테이너 관리와 운영 기술을 학습하였다. 처음에는 Kubernetes가 매우 복잡하게 느껴졌지만, 매주 실습을 진행하면서 직접 명령어를 입력하고 결과를 확인해 보니 점차 구조를 이해할 수 있었다. 특히 단순히 이론만 배우는 것이 아니라 실제 클러스터 환경에서 애플리케이션을 배포하고 관리해 보면서 클라우드 서비스 운영 과정을 경험할 수 있었다.


2. 9주차 실습 - Pod와 Deployment

9주차에는 Kubernetes에서 컨테이너를 실행하는 가장 기본적인 방법인 Pod와 Deployment에 대해 학습하였다.

실습에서는 kubectl 명령어를 사용하여 Pod를 생성하고 상태를 확인해 보았다. 처음에는 Pod와 컨테이너의 차이를 잘 이해하지 못했지만 직접 생성 과정을 확인하면서 Kubernetes는 컨테이너를 직접 관리하는 것이 아니라 Pod를 통해 관리한다는 것을 알게 되었다.

실습 중 Pod 상태가 바로 실행되지 않아 당황했지만, 이미지 다운로드가 완료된 후 정상적으로 실행되는 것을 확인하였다. 이 과정을 통해 Kubernetes가 컨테이너를 생성하고 관리하는 기본 구조를 이해할 수 있었다.


3. 10주차 실습 - ConfigMap과 Secret

10주차에는 애플리케이션 설정을 관리하는 ConfigMap과 Secret에 대해 학습하였다.

실습에서는 환경 변수를 추가하고 ConfigMap을 생성하여 애플리케이션에 설정 값을 전달하는 과정을 수행하였다. 이전에는 프로그램 내부에 직접 설정을 작성하는 방식만 알고 있었는데, Kubernetes에서는 설정과 프로그램을 분리하여 관리할 수 있다는 점이 인상적이었다.

실습 과정에서 ConfigMap을 수정했는데 바로 반영되지 않는 문제가 발생하였다. 이후 Deployment를 다시 적용하자 변경된 설정이 정상적으로 적용되었다. 이를 통해 설정 관리의 중요성과 운영 환경에서의 활용 방법을 이해할 수 있었다.


4. 11주차 실습 - Multi-Container Pod

11주차에는 하나의 Pod 안에서 여러 개의 컨테이너를 함께 사용하는 방법을 학습하였다.

실습을 진행하면서 여러 컨테이너가 하나의 네트워크와 저장 공간을 공유할 수 있다는 점을 확인하였다. 특히 하나의 컨테이너가 생성한 파일을 다른 컨테이너가 읽을 수 있는 구조가 매우 흥미로웠다.

처음에는 공유 볼륨 설정이 제대로 되지 않아 파일을 확인할 수 없었지만 설정을 다시 확인한 후 정상적으로 동작하였다. 이번 실습을 통해 실제 서비스 환경에서 Sidecar 패턴이 왜 사용되는지 이해할 수 있었다.


5. 12주차 실습 - Helm 활용

12주차에는 Kubernetes 애플리케이션을 보다 쉽게 배포하고 관리할 수 있는 Helm을 학습하였다.

실습에서는 Helm을 설치하고 Repository를 추가한 뒤 애플리케이션을 검색하고 배포하는 과정을 수행하였다. 이전까지는 여러 개의 YAML 파일을 직접 관리해야 했지만 Helm을 사용하니 훨씬 간단하게 애플리케이션을 설치할 수 있었다.

실습 중 Repository 업데이트 과정에서 오류가 발생하기도 했지만 네트워크 상태를 확인한 후 다시 실행하여 문제를 해결하였다. Helm이 실제 운영 환경에서 널리 사용되는 이유를 직접 체험할 수 있었다.


6. 13주차 실습 - 중앙화된 로그 관리

13주차에는 Fluentd와 Elasticsearch를 이용한 중앙화된 로그 관리 시스템을 학습하였다.

실습을 통해 여러 Pod에서 발생하는 로그를 수집하고 저장하는 과정을 확인하였다. 이전에는 단순히 로그를 확인하는 수준이었지만, 이번 실습을 통해 대규모 서비스에서는 로그를 한 곳에 모아 관리하는 것이 중요하다는 사실을 알게 되었다.

실습 중 일부 로그가 수집되지 않는 문제가 발생했지만 설정 파일을 다시 확인한 후 정상적으로 수집할 수 있었다. 이번 실습을 통해 장애 분석과 서비스 모니터링에 로그 관리가 매우 중요하다는 점을 배울 수 있었다.


7. 14주차 실습 - RBAC 권한 관리

14주차에는 Kubernetes 보안을 위한 RBAC(Role-Based Access Control)를 학습하였다.

실습에서는 ClusterRole과 RoleBinding을 확인하고 사용자 권한을 설정하는 과정을 수행하였다. 이전에는 관리자 권한만 생각했지만 실제 운영 환경에서는 사용자마다 필요한 권한만 부여하는 것이 중요하다는 사실을 알게 되었다.

실습 과정에서 일반 사용자가 리소스에 접근하지 못하는 문제가 발생하였지만 RoleBinding을 추가한 후 정상적으로 접근할 수 있었다. 이를 통해 최소 권한 원칙과 Kubernetes 보안 관리 방법을 이해할 수 있었다.


8. 느낀 점 및 결론

이번 학기 Kubernetes 실습을 통해 단순히 이론을 학습하는 것이 아니라 실제 클라우드 환경에서 애플리케이션을 운영하는 과정을 경험할 수 있었다. 처음에는 명령어도 낯설고 오류도 많이 발생했지만, 문제를 직접 해결하면서 Kubernetes에 대한 이해도가 크게 향상되었다.

특히 Pod 배포, 설정 관리, 다중 컨테이너 운영, Helm 패키징, 로그 관리, 권한 관리까지 단계적으로 학습하면서 Kubernetes의 전체적인 운영 과정을 이해할 수 있었다. 앞으로 클라우드 서비스나 DevOps 분야를 공부할 때 이번 실습 경험이 큰 도움이 될 것이라고 생각한다.

Logo

脑启社区是一个专注类脑智能领域的开发者社区。欢迎加入社区,共建类脑智能生态。社区为开发者提供了丰富的开源类脑工具软件、类脑算法模型及数据集、类脑知识库、类脑技术培训课程以及类脑应用案例等资源。

更多推荐