Devops/Fastcampus 캐시백 챌린지

패스트캠퍼스 캐시백 챌린지 46일차

DEV_BLOG 2022. 6. 2. 20:44

수강 인증샷

kubectl, kustomize, minikube 설치와 관련된 클립을 수강하는식으로 챌린지를 진행하였다. yaml 파일에서 어떤식으로 유기적으로 연결되어 동작하는지 잘 설명해주셔서 쉽게 이해갔던 것 같다. t3 small 요금제를 사용하는것이 용량이 살짝 부족할 수도있다고 하고 command로도 경고를 주지만 실습하는데에는 문제가 발생하지 않아서 사용해도 된다고 한다. 다음 포스팅은 도커 이미지/컨테이너 및 라이프사이클에 관련된 내용을 포스팅 할 예정이다.

 

 

Kubectl 소개

  • Kubernetes를 위한 Command line 도구
  • Kubernetes의 API 서버와 통신하여 사용자 명령을 전달할 수 있음

 

Kubectl 설치 (Ubuntu)

마찬가지로 따로 kubectl 설치를 위한 Shell script를 만드셨다고 한다.

cat > install-kubectl.sh

#!/usr/bin/env bash
## INFO: <https://kubernetes.io/docs/tasks/tools/install-kubectl-linux/#install-using-native-package-management>

set -euf -o pipefail

# Install dependencies
sudo apt-get update && sudo apt-get install -y \\
  apt-transport-https \\
  ca-certificates \\
  curl \\
  gnupg \\
  lsb-release

# Add kubectl's official GPG key
curl -fsSL <https://packages.cloud.google.com/apt/doc/apt-key.gpg> | sudo gpg --dearmor -o /usr/share/keyrings/kubernetes-archive-keyring.gpg

# Set up the repository
echo "deb [signed-by=/usr/share/keyrings/kubernetes-archive-keyring.gpg] <https://apt.kubernetes.io/> kubernetes-xenial main" | sudo tee /etc/apt/sources.list.d/kubernetes.list

# Install kubectl
sudo apt-get update && sudo apt-get install -y kubectl

의존성을 설치하고 나서 쿠버네티스 공식 apt 공식 레포지토리를 추가하는 과정을 거치고 패키지 목록을 갱신하고 kubectl을 설치하는 과정을 거치면 된다.

 

 

Kustomize 소개

  • 쿠버네티스의 manifest 파일을 좀 더 효율적으로 관리할 수 있도록 도와주는 도구

(갑자기 manifest에 관한 내용을 찾아보다가 찾은 링크 : https://bsnippet.tistory.com/7 )

  • 다른 오픈소스 대용으로는 helm이라는 것도 있다고한다.

 

Kustomize 설치(Ubuntu)

cat > install-kustomize.sh

#!/usr/bin/env bash
## INFO: <https://kubectl.docs.kubernetes.io/installation/kustomize/binaries/>

set -euf -o pipefail

KUSTOMIZE_VERSION=v4.4.1

# Download kustomize binary
curl -s "<https://raw.githubusercontent.com/kubernetes-sigs/kustomize/kustomize/${KUSTOMIZE_VERSION}/hack/install_kustomize.sh>"  | bash

# Install to /usr/local/bin
sudo install -o root -g root -m 0755 kustomize /usr/local/bin/kustomize

 

minikube 소개

  • 간단하게 말해서 “작은 쿠버네티스”
  • 가상환경을 사용하여 쿠버네티스 클러스터를 구성
  • 드라이버(driver)를 선택하여 원하는 가상환경(docker,podman,visturalbox,parallels,vmware,hyperkit 등) 에서 구성 가능
  • 실제 운영환경에서는 쓰기 어렵지만 쿠버네티스 학습환경으로 활용하기 좋음

 

minikube 설치(ubuntu)

2개의 코어이상,2GB 메모리 이상,20GB 디스크용량, 인터넷연결원활, container혹은 vm 환경이 필요하다. Docker는 저번에 설치해주었으니 충족이 된다.

 

 

Binary Download를 통해 진행해주자!

 

cat > install-minikube.sh

#!/usr/bin/env bash
## INFO: <https://minikube.sigs.k8s.io/docs/start/>

set -euf -o pipefail

curl -LO <https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64>
sudo install minikube-linux-amd64 /usr/local/bin/minikube

 

쿠버네티스 클러스터 구성

minikube start -h

minikube에서 driver과 관련된 option이있다. 여기서 docker를 설정해주도록 하자.

 

minikube start --driver docker

 

도커드라이버를 기반으로 미니쿠베를 이용해 kubernetes 클리스터를 생성할 수 있다.

 

Docker 20.10.12 위에 Kubernetes v1.23이 준비되었으며,

Kubernetes에 필요한 인증서들과 키 발급이 되었다.

kubernetes의 master node 역할을 하는 plane을 부팅하고, rule들을 설정해주고있다.

 

 

kubectl이 kubernetes cluster과 통신하기 위해서는 설정파일이 필요하다. 해당 설정파일을 확인하자.

cat ~/.kube/config

yaml형식의 설정파일이 있는 것을 확인할 수 있다.

크게보면 Root key로 clusters,contexts,users 항목이 존재한다.

  • clusters

⇒ 접속하게 될 클러스터의 정보기입

  • contexts

⇒ 어떤 클러스터와 연결할지에 대한 클러스터 인증리스트

  • users

⇒ 인증사용자 정보

 

 

 

결국 context를 어떻게 설정하는가는 cluster 정보와 user에 대한 정보를 조합해서 어떤 클러스터에 어떠한 유저로 접속하는지에 대한 것이다.

현재 사용하고있는 context에 대한 정보가 current-context에 기입이 되고, minikube는 current-context 줄의 바로 윗줄에 name으로 설정되어있는 그것을 의미하게 된다.

 

kubectl get nodes

kubectl이 접속하게되는 클러스터의 노드정보를 확인할 수 있다.

node의 이름과 역할, 만들어진 시간을 확인할 수 있다.

 

minikube 기본 사용법

minikube status

⇒ 쿠버네티스 클러스터 상태 확인

 

minukube pause

⇒ 쿠버네티스 클러스터 일시중지

 

minikube stop

⇒ 쿠버네티스 클러스터 중지

 

minikube unpause

⇒ 쿠버네티스 클러스터 재개

 

minikube delete

⇒ 쿠버네티스 클러스터 삭제

 

minikube addons list

⇒ minikube 애드온 목록 확인

 

minikube ssh

⇒ 쿠버네티스 클러스터 노드에 SSH 접속

 

minikube addons enable [addon]

⇒ minikube 애드온 활성화

 

minikube kubectl ...

⇒ 쿠버네티스 클러스터 버전과 대응되는 kubectl 사용

 

minikube addons disable [addon]

⇒minikube 애드온 비활성화

 

 

 

 

https://bit.ly/3L3avNW

 

패스트캠퍼스 [직장인 실무교육]

프로그래밍, 영상편집, UX/UI, 마케팅, 데이터 분석, 엑셀강의, The RED, 국비지원, 기업교육, 서비스 제공.

fastcampus.co.kr

* 본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성되었습니다.