현재 구현하고 있는 Service의 경우 Redis를 사용해야 하기 때문에 Redis는 local에 설치하였다.
요즘 추세가 Kubernetes operator를 사용하여 설치하지만 Local Kubernetes를 이용해야 하고, Service type을 NodePort를 사용하여 IDE에서 테스트를 하고 싶었기 때문에 Helm chart를 이용하고 싶었다. 그리고 Github에 values.yaml를 저장해두면 설정 파일의 버전을 관리할 수 있으니 이 방법을 택했다.
현재 가장 잘 관리되고 있는 redis의 Helm chart는 bitnami에서 관리되는 Chart 이다. 아래 경로를 참조하기 바란다.
1인 개발을 위해서 환경을 꾸밀 때에는 많은 제약이 있다. 여유 자금이 많아서 서버를 사놓고 VM을 여러 개 설치하여 사용할 수 있겠지만, 난 가난한 가장으로 그러한 환경을 꾸밀 수가 없었다. 사실 현재 밴쿠버에서 유학생으로 있고 집도 좁아서 서버를 설치해 둘 공간도 없긴 하다. 그래서 최근 사양이 좋은 Laptop을 구매하였고 어떻게 개발환경을 꾸밀까 고민을 했었다.
kubernetes를 local로 설치할 경우 다양한 방법이 있다. Linux machine일 경우에는 더 많은 tool들을 사용할 수 있지만, 난 macOS 환경이라 제약이 좀 있었다.
대표적으로 모든 OS 환경에 사용할 수 있는 것이 minikube, kind, k3d, docker desktop kubernetes 등이 있다.
Kubernetes 설치가 아니라 실행이라고 적었다. 사실 이 툴을 이용하여 kubernetes를 설치하는 것이 아니라 실행해야 한다고 하는게 맞을 것 같다. 그만큼 간단하다는 얘기이다.
Settings 메뉴로 들어가면 Kubernetes Menu가 보인다. 클릭해보자.
처음은 `Enable Kubernetes` 가 Check되어 있지 않다. 그것을 체크를 해주고 설치를 하면 몇 분 후에 설치가 완료된다.
현재 나의 환경에는 v1.22.4가 설치되어 있다.
Kubernetes에 접근하기
kubernetes를 설치하고 나면 이제 이 cluster 환경에 접근이 가능해야 한다. 기본적으로 kubernetes의 authentication 정보는 `~/.kube/config` 에 저장이 된다. Docker desktop은 현재 PC를 master node로 하여 설치되므로, 설치가 완료되면 auth 정보가 해당 파일에 자동으로 저장된다. 너무 쉽다.
하지만 cluster 환경에 접근은 authentication으로만은 불가능하다. 기본적인 접근은 `kubectl`이라고 하는 Command Line Interface를 통해서 수행한다. 가장 기본이고 가장 많이 사용하는 것이므로 꼭 기억하자.
kubectl 설치하기
내 환경이 mac이므로 이것을 기준으로 설명하겠다. 나머지는 공식문서 Link로 대신한다.
$ kubectl cluster-info
Kubernetes control plane is running at https://kubernetes.docker.internal:6443
CoreDNS is running at https://kubernetes.docker.internal:6443/api/v1/namespaces/kube-system/services/kube-dns:dns/proxy
To further debug and diagnose cluster problems, use 'kubectl cluster-info dump'
오늘은 나의 개발환경의 가장 기본이 되는 kubernetes 설치에 대해서 확인해 보았다.