Kubernetes/Kubernetes 연습

VM 이용해서 Kubernetes 설치하기 - 3

바코더 2021. 6. 20. 19:40

이제 container runtime이 설치 되었으면 kubernetes 를 설치할 차례다.

https://kubernetes.io/ko/docs/setup/production-environment/tools/kubeadm/install-kubeadm/

 

kubeadm 설치하기

이 페이지에서는 kubeadm 툴박스를 설치하는 방법을 보여준다. 이 설치 프로세스를 수행한 후 kubeadm으로 클러스터를 만드는 방법에 대한 자세한 내용은 kubeadm을 사용하여 클러스터 생성하기 페이

kubernetes.io

공식 사이트의 순서대로 각각 kubelet,kubectl,kubeadm 을 설치한다.

그리고 kubeadm init 을 하면 node가 생성되는데, 여기서 싱글 node로 마스터를 구성해서 사용할 생각이면 아무런 option 없이 kubeamd init 을 하고 추가 작업을 해줘도 되지만, 만일 클러스터로 kubernetes를 구성하려고 하면 control-pane 의 endpoint 를 share할수 있게 만들어야 한다. 즉 모든 node에서 master node 로 접근할 수 있어야 하는데 여기서 pod network 가 필요하다.

일단 pod network addon 으로 calico를 선택해서 작업을 진행해보자.

https://docs.projectcalico.org/getting-started/kubernetes/quickstart

 

Quickstart for Calico on Kubernetes

Install Calico on a single-host Kubernetes cluster for testing or development in under 15 minutes.

docs.projectcalico.org

위의 사이트의 공식 doc 대로 따라하면 되는데, 

1.sudo kubeadm init --pod-network-cidr=192.168.0.0/16

kubeadm init이 끝난다음, 나오는 로그를 꼭 보고 kubeadm join으로 시작되는 명령어를 기록해 둬야한다. kubeadm 끝났으면 계속 진행하자. 

2.mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config

id 는 현재 로그인된 유저의 아이디를 적으면 된다. ex) sudo chown test1:~/.kube/config

3.kubectl create -f https://docs.projectcalico.org/manifests/tigera-operator.yaml

4.kubectl create -f https://docs.projectcalico.org/manifests/custom-resources.yaml

그리고 그 뒤에 작업들을 완료해주면 된다.

그후 kubectl get nodes -o wide 로 현재 생성된 노드를 확인하면 master node가 생성된걸 볼수 있다. 이제 worker node를 구성하면 된다. master node와 마찬가지로 docker를 설치하고 cgroup을 systemd 로 고정한 뒤, kubeadm init 이 끝나고 나왔던 kubeadm join ~ 을 써준다.

설치 후 마찬가지로 kubectl get nodes -o wide 를 해보면 kubeadm init 만 했을때와 다르게 node가 2개로 늘어난 걸 볼수있다. 그런데 worker node 의 status가 notReady 상태인걸 볼수 있을텐데. 이는 init을 했을때와 마찬가지로 .kube/config 를 세팅해줘야 하기 때문이다. 그래서 master node의 .kube/config 를 복사해서 wokernode에 config 파일을 만들어주었다.

scp $masternode server ip:$workernode server ip:/$HOME/.kub/config 

sudo chown $(id -u):$(id -g) $HOME/.kube/config

이후 권한 설정까지 마치고, calico 설정까지 해주고 난 후 kubectl get node를 해보면 worker 와 master node가 ready 상태가 된 걸 확인할 수 있다.