패스트캠퍼스 캐시백 챌린지 46일차
kubectl, kustomize, minikube 설치와 관련된 클립을 수강하는식으로 챌린지를 진행하였다. yaml 파일에서 어떤식으로 유기적으로 연결되어 동작하는지 잘 설명해주셔서 쉽게 이해갔던 것 같다. t3 small 요금제를 사용하는것이 용량이 살짝 부족할 수도있다고 하고 command로도 경고를 주지만 실습하는데에는 문제가 발생하지 않아서 사용해도 된다고 한다. 다음 포스팅은 도커 이미지/컨테이너 및 라이프사이클에 관련된 내용을 포스팅 할 예정이다.
Kubectl 소개
- Kubernetes를 위한 Command line 도구
- Kubernetes의 API 서버와 통신하여 사용자 명령을 전달할 수 있음
Kubectl 설치 (Ubuntu)
- 공식 가이드 라인 : https://kubernetes.io/docs/tasks/tools/install-kubectl-linux/#install-using-native-package-management
- https://github.com/tedilabs/fastcampus-devops/tree/main/3-docker-kubernetes/env
마찬가지로 따로 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 애드온 비활성화
패스트캠퍼스 [직장인 실무교육]
프로그래밍, 영상편집, UX/UI, 마케팅, 데이터 분석, 엑셀강의, The RED, 국비지원, 기업교육, 서비스 제공.
fastcampus.co.kr
* 본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성되었습니다.