후기 | 2023 Cloud Study Jam 수료 후기(Kubernetes in Google Cloud

    ~ 개발진스 ~

     

    1. Kubernetes in Google Cloud란?

    구글에서 제공하는 Google Cloud Skills Boost 교육 과정 중 하나로 도커 컨테이너부터 Google Kubernetes Engine 쿠버네티스 클러스터로 배포하는 방법, 어플리케이션 업데이트에 따른 CI/CD 방법을 배울 수 있다.
     
    교육과정은 하단의 링크를 참고
    https://www.cloudskillsboost.google/quests/29

    Google Cloud의 Kubernetes | Google Cloud Skills Boost

    강사가 1일 동안 직접 강의하는 본 강좌는 수강생들에게 도커 컨테이너에서의 작업, 해당 작업을 Google Kubernetes Engine에서 제공하는 쿠버네티스 클러스터로 배포하는 방법 및 증가한 트래픽에 대

    www.cloudskillsboost.google

    2. 어떤 것을 기대하며 이 과정을 신청했을까?

    2-1. 수료 기념품

    솔직히 처음 클라우드 스터디 잼을 신청했을 때, 큰 기대를 하지 않았다. 영어로 되어 있고, 클라우드 관련 코스인데 내가 과연 수료할 수 있을까?라고 생각했다. 어렵다고 생각하니까 안 할 생각만 하게 되는 거 같았다. 그런데 스터디 안내 ppt 마지막 장표를 보고 엄청나게 동기 부여가 되었다. 바로 수료 기념품 때문이다. 사람 마음이 참 웃긴게 수료 기념품 받고 싶다는 생각이 드니 어떻게 수료할 수 있지?로 바뀌었다. 😂 

    꼭 받고 싶어서 캡쳐까지 해두었다.

     

    2-2. 도커, 쿠버네티스 입문

    재직중인 곳은 클라우드 솔루션 회사이다. 그러다 보니 자연스럽게 클라우드 환경에 관해 관심을 갖게 되었는데, 도커, 쿠버네티스, 레플리카셋등 매일 같이 듣는 용어들에 대해 알아가보고 싶었다. 설명하지는 못하더라도 들었을 때 아 저거 클라우드 스터디 잼에서 들어봤는데! 할 수 있는 정도의 수준의 지식을 갖고 싶었다. 그러니까 도커, 쿠버네티스 찍.먹 해보고 싶었다.
     

    2-3. 구글에서 제공하는 교육 과정 경험

    테크니컬 라이팅에도 관심이 있는데, 구글에서 제공하는 교육 과정은 어떤 식으로 구성 되어있는지 알고 싶었다. 어떤 용어를 어떤 식으로 사용하고, 어느 정도의 수준까지를 학습자에게 알려주는지가 궁금했다. 
     

    2-4. 스터디원들과 스터디

    스터디하며 각자 모르는 부분에 대해 이야기하고 찾아보며 코스에서 막혔던 부분이나 새롭게 접한 용어를 이해하고 싶었다. 
     

    3. 그리고 무엇을 느꼈을까?

    구글구글이다!
    그리고 나처럼 도커, 쿠버네티스를 처음 접하는 사람들에게 이 코스를 추천하고 싶다.

     

    4. 주차별 후기

    4-1. 1주차

    Introduction to Docker

    💡 시간제한(1시간)이 있어서 집중하고 실습할 수 있었다. 도커 허브 push & pull를 사용해서 도커 이미지를 도커 허브에 올리고 이를 직접 호출해서 실행시키는 과정을 배울 수 있었다.

    - 도커 데몬은 로컬에서 이미지를 찾을 수 없는 경우 기본적으로 퍼블릭 레지스트리에서 이미지를 검색한다.
    - Dockerfile에서 "."는 현재 디렉터리를 의미하므로 Docker 파일이 있는 디렉토리 내에서 다음 명령을 실행해야 한다.
     

    4-2. 2주 차

    Kubernetes Engine: Qwik Start

    - 클러스터는 1개 이상의 클러스터 마스터 머신과 노드라는 여러 가상 머신으로 구성된다.
    - 노드란 클러스터를 구성하기 위해 필요한 Kubernetes 프로세스를 실행하는 Compute Engine 가상 머신(VM) 인스턴스이다.
    - 클러스터를 만든 후 클러스터와 상호작용하려면 사용자 인증 정보가 필요하다.
     

    니코쌤 개념 강의

    더보기

    쿠버네티스가 대세가 된 이유 3가지!

    도커 컨테이너 하나 죽으면 쿠버네티스가 자동을 실행해 줌 → 모니터링 기능

    쿠버네티스가 컨테이너의 신규 버전을 차례로 업데이트해줌 → 무중단

     

    쿠버네티스 장점 3가지

    1. 컨테이너 관리

    2. 로드밸런싱

    3. 롤링 업데이트

     

    4-3. 3주 차

    Kubernetes를 통한 클라우드 조정

    💡 시간 초과 되지 않는 것에 급급하여 이해하기 전에 복붙 * 복붙의 연속이었다. 서비스 만들기부터 시작해서 이해가지 않는 내용들 투성이었지만, 그래도 끝까지 읽어는 봤다. 이런 거대한 개념을 처음부터 이해하려고 하다니.. ^^! 조금씩 천천히 친해지자 찍.먹하는게 이번 스터디 목표니까!
    명령어설명
    kubectl create컨테이너의 단일 인스턴스 실행
    kubectl get pods실행중인 컨테이너 확인
    kubectl expose Kubernetes 외부로 노출
    kubectl get services 서비스를 나열
    (ExternalIP 필드가 채워지는 데는 몇 초 정도 소요될 수 있다.
     kubectl get services 계속 입력하면 ExternalIP 필드가 채워짐)

    - 파드는 1개 이상의 컨테이너가 포함된 모음을 나타내며, 네트워크 네임스페이스도 공유한다. -> 즉, 파드는 IP 주소를 1개씩 갖고 있다.
     

    4-4. 4주 차

    Kubernetes Engine으로 배포 관리

    - Canary 배포 : 작은 규모의 일부 사용자에게만 변경 사항을 릴리스하여 새로운 릴리스와 관련된 위험을 완화할 수 있다.
    - Blue/Green 배포 : 배포를 모두 완료한 후에 부하 분산기를 수정하여 새 버전을 가리키도록 하는 것이 유리한 경우에 사용한다.
    이전의 'blue' 버전용 배포와 새로운 'green' 버전용 배포를 만들어 업데이트 'blue' 버전에 기존 hello 배포를 사용하면 라우터 역할을 하는 서비스를 통해 배포에 액세스 하게 된다. 새 'green' 버전이 가동 및 실행되면 서비스를 업데이트하여 이 버전을 사용하도록 전환된다.
     

    4-5. 5주 차

    Kubernetes Engine에서 Jenkins로 지속적 배포

    💡 simple-app를 simple-app, 로 젠킨스 프로젝트 이름을 잘못 만들어서 삽질했다 ㅠ… 2시간 만에 끝났다.
    이번 기회에 Kubernetes용 Jenkins Cloud 구성을 할 수 있었다. 이 단계를 완료하면 저장소에서 브랜치를 식별하고 기존과 비교하여 변경된 사항이 없는지 확인하게 된다.

    뇌피셜이지만 소스코드를 커밋 후 푸시하면 기존 소스 코드와 다르기 때문에 젠킨스에서 이를 감지하고 변경된 버전으로 빌드하여 프로비저닝 된 클러스터에 배포되는 것 같다.

    또한, 개발 브랜치에서 테스트 한 이후에 카나리아(사용자 트랙픽 중 일부만 수용하는 사이트) 환경에 우선적으로 배포하여 이상 유무를 확인하고 프로덕션에 배포하는 과정을 실습할 수 있었다.

    - Helm은 Kubernetes 애플리케이션을 쉽게 구성하고 배포할 수 있게 해주는 패키지 관리자이다.
     
     

    5. 기대했던 것 중에서 아쉽거나 앞으로 해보고 싶은 것이 있다면?

    목표달성 여부느낀 점
    수료 기념품

    수료 완료!

    마지막 Lab까지 끝내니 뱃지를 받았다. 참 별 거 아닌데 기분이 너무 좋다. 시간 내서 공부하면서 배운 것도 많았는데, 수료까지 하니까 정말 정말 뿌듯하다.
    도커, 쿠버네티스 입문단어가 들리기 시작했다.

    그린, 블루, 카나리, 레플리카셋등과 같은 용어들이 들리기 시작했다. 아직 배울게 산더미이지만, 조금씩 차근차근 하다보면 성장하겠지! 영어로 된 코스라 쫄 필요 없었다. 지원언어 중에 한국어도 있었다. 처음에는 시간 제한이 있는 줄 모르고 읽어보지도 않고 바로 Start Lab! 눌렀는데, 2주차부터는 시작 전에 전체적인 내용을 한국어로 읽어보고, 영어로 실습했다. 하지만, 시간 제한 때문에 명령어를 직접 입력하지 않고 복붙했던 건 아쉬웠다. 복붙했음에도 시간 초과로 인해 처음부터 다시 시작한 Lab들이 있었으니 당연한 거 같기도 하다. 시간 초과되면 접속 정보가 만료되어 해당 Lab을 처음부터 다시 해야한다.
    구글에서 제공하는 교육 과정 경험:wq까지 알려주는 친절한 쌤

    동영상 강의 없이 실습으로 진행하는 코스라서 걱정을 했다. 다행스럽게도 발생할 수 있는 에러 메세지는 이런 게 있고, 이걸 해결하려면 이렇게 해봐~ 같이 알려줘서 좋았다. 예를 들어 kubectl get services 명령어로 실행중인 서비스를 확인할 수 있는데, ExternalIP 필드가 채워지는 데는 시간이 소요될 수 있다.등과 같이 입문자에게 친절하게 알려줘서 좋았다. 안 알려줬으면 왜 안 뜨지..? 하면서 당황 했을 거 같다. vi 편집기 나갈 때 :wq로 나가라고 하는 것도 알려준 걸 보면 터미널 환경이 익숙하지 않은 학습자들도 어렵지 않게 수료할 수 있을 거 같다고 생각했다. 
    스터디원들과 스터디혼자 하다보니 혼자하게 되었다.

    평일 오후에는 운동을 가서, 주말에 공부를 하였는데 주말이다 보니 시간 맞는 스터디원을 구하기 어려웠다. 주말에 가능한 스터디원이 있다고 해도 내가 시간이 안되니 아쉽지만 혼자 하게 되었다. 다른 공부도 하다보니까 이 스터디에 많은 시간을 할애할 수 없고, (이해가 가지는 않지만) 당장 수료하는데 지장은 없다보니 혼자서 완주하게 되었다. 

     

    6. 5주간의 여정을 마치며

    아직 이해가 잘 되지 않는 부분도 많지만, 5주 만에 이 개념을 다 깨닫는 건 쿠버네티스에 대한 예의가 아닌 것 같다.(뻔뻔!)
    그래도 목표했던 쿠버네티스를 찍어 먹어 볼 수 있어서 유익했고, 그리고 뿌듯했다. 바쁠 것 같은데.. 수료 못할 것 같은데..? 접수하지 말까..? 했던 과거의 나..😌 역시 사람은 안 하려면 어떻게든 안 하고, 하려면 어떻게든 한다. 빨리 모자가 왔으면 좋겠다. 자, 이제 코테 인강 들으러 가자

    728x90

    댓글