쿠버네티스 초기 설치 및 설정 내용 정리
- 쿠버네티스를 셋팅하고 운영하기 위한 환경은
1.온프레미스 인프라 직접 설치 운영
2.클라우스 인스턴스내 설치 운영
3.클라우드에서 제공하는 매니지드 쿠버네티스 이용
등의 방법이 있으며 본 블로그에서는 1번 온프레미스 GPU서버에서 직접 설치하고 셋팅하는것을 전제로 한다.
# swapoff -a
일반적인 서버 클러스터 환경에서도 쿠버네티스를 쉽게 설치할 수 있는 관리도구
# curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | apt-get add -
# cat <<EOF > /etc/apt/sources.list.d/kubernetes.list
deb http://apt.kubernetes.io/ kubernetes-xenial main
EOF
# 모든 노드에 도커 설치
# wget -q0- get.docker.com | sh
# 모든 노드에 쿠버네티스에 필요한 패키지 내려받기
# apt-get install -y kubelet kubeadm kubectl kubernetes-cni
# 쿠버네티스의 특정 버전 지정시
# apt-get install kubelet-1.13.5-00 kubeadm kubectl kubernetes-cni
# 사용 가능한 버전 확인
# apt-cache policy kubelet
root@kube-master1:/# kubeadm init --apiserver-advertise-address [MASTER_IP] --pod-network=cidr=192.168.0.0/16
초기화 완료 후 출력되는 결과를 각각 마스터 노드와 워커 노드에서 실행
쿠버네티스 컨테이너간 통신을 위해 flannel, weaveNet 등 여러 오버레이 네트워크 사용 가능하지만 calico 를 기준으로 네트워크 플러그인을 설치
root@kube-mater1:~# kubectl apply -f https://docs.projectcalico.org/v3.8/manifests/calico.yaml
3의 단계에서 --pod-network-cidr 설정 값에 따라 calico.yaml 파일을 사용하는 명령어를 다음과 같이 사용해야 한다.
예) --pod-network-cidr 옵션에 10.244.0.0/16을 입력한 경우
# wget https://docs.projectcalico.org/v3.8/manifests/calico.yamlo
# sed -i -e 's?192.168.0.0/16?10.244.0.0/16?g' calico.yaml
# kubectl apply -f calico.yaml
root@kube-master1:~# kubectl get pods --namespace kube-system
root@kube-master1:~# kubectl get nodes
# kubeadm reset
참고자료
용찬호, 『시작하세요!도커/쿠버네티스: 친절한 설명으로 쉽게 이해하는 컨테이너 관리』, 위키북스(2020)