1. 쿠버네티스 환경의 종류
- 로컬 쿠버네티스
- 물리 머신 한 대에 구축
- 미니큐브 (Minikube)
- Docker Desktop for Mac / Windows
- kind (Kubernetes in Docker)
- and more..
- 물리 머신 한 대에 구축
- 쿠버네티스 구축 도구
- 온프레미스/클라우드에 클러스터 구축
- 큐브어드민 (kubeadm)
- 랜처 (Rancher)
- 온프레미스/클라우드에 클러스터 구축
- 관리형 쿠버네티스 서비스
- 퍼블릭 클라우드의 관리형 서비스로 제공하는 클러스터 사용
- Google Kubernetes Engine (GKE)
- Azure Kubernetes Service (AKS)
- Elastic Kubernetes Service (EKS)
- 퍼블릭 클라우드의 관리형 서비스로 제공하는 클러스터 사용
쿠버네티스는 환경에 따라 일부 사용할 수 없는 기능이 있지만, 기본 적으로 CNCF 가 제공하는 인증 프로그램인 쿠버네티스 적합성 인증 프로그램을 준수하게 되어있기 때문에, 동일하게 동작한다.
2. 로컬 쿠버네티스
Docker Desktop for Mac 환경에서 Preference 를 설정하는 것 만으로도 간단하게 Kubernetes 환경을 만들 수 있지만
책에서 소개하는 kind (Kubernetes in Docker) 를 선택하도록 하겠다.
(minikube 도 나중에 한번 해볼 생각임)
# homebrew 로 설치
$ brew install kind
# kind 버전 확인
$ kind version
kind v0.11.1 go1.17.2 darwin/arm64
이후 kind.yaml 을 실행해본다.
# kind create cluster --config kind.yaml --name kindcluster
apiVersion: kind.x-k8s.io/v1alpha4
kind: Cluster
nodes:
- role: control-plane
- role: control-plane
- role: worker
- role: worker
- role: worker
책과 매뉴얼의 예시대로 control-plane 을 여러개 두고 해봤으나, 2개 까지 일 때만 정상적으로 동작했었다.
네트워크 문제가 있는 것 같은데 자세한 이유는 모르겠다.. 3개부터는 왜 안되는걸까?
그러던 중 문제를 해결했다.
기존 CPUs 갯수가 4개 였으나, 8대로 늘리니 정상 실행되는 것을 볼 수 있었다.
(결국엔 리소스 문제였다니...)
https://github.com/kubernetes-sigs/kind/issues/1020
여러개의 쿠버네티스 클러스터(minikube, docker-desktop, kind) 를 설치했더라도 컨텍스트 전환으로 변경 가능하다
kubectl config use-context kind-kindcluster
현재 생성된 node 를 확인한다.
$ kubectl get nodes
NAME STATUS ROLES AGE VERSION
kind-alpha-cluster-control-plane Ready control-plane,master 6m33s v1.21.1
kind-alpha-cluster-worker Ready <none> 6m2s v1.21.1
kind-alpha-cluster-worker2 Ready <none> 6m2s v1.21.1
kubectl 명령어를 통해 현재 context 가 무엇인지 알 수 있다.
$ kubectl config current-context
kind-kindcluster
이후 생성한 kind 클러스터를 삭제한다.
$ kind delete cluster --name kindcluster
Deleting cluster "kindcluster" ...
이 밖에도 쿠버네티스를 사용하는 다양한 방법들이 있지만 추후 정리해보기로 한다.
Google Kubernetes Engine (GKE) 환경에서 진행해볼 듯 하다.
'Dev > Kubernetes' 카테고리의 다른 글
[Kubernetes & Docker] 4-1. GCP 에서 다시 한번 환경 설정 (0) | 2022.02.14 |
---|---|
[Kubernetes & Docker] 3-2. GKE 환경 셋팅 (0) | 2022.02.14 |
[Kubernetes & Docker] 2. 쿠버네티스 소개 (0) | 2022.02.14 |
[Kubernetes & Docker] 1. 도커 복습 (0) | 2022.02.13 |
[Kubernetes & Docker] 0. Docker Tutorial 다시 보기 (0) | 2022.01.22 |