사전 설정(Ubuntu 18.04 LTS 인스턴스로 진행)
1. Master node 준비
Master node의 컴퓨팅 사양이 너무 낮으면 설치 중 아래와 같은 에러가 발생할 수도 있으니 Master node의 vcpu는 기본 2개가 있는 인스턴스로 진행한다
2. Worker node 준비
Worker node로 사용할 인스턴스 2개를 준비한다(vcpu 사양은 임의로 선택 가능)
3. 보안그룹 설정
Master node와 Worker node 인스턴스 보안그룹 설정 시 모든 인바운드 트래픽을 허용으로 설정한다
Docker 설치
도커와 연계하여 쿠버네티스를 사용할 경우
(Master node와 Worker node 둘 다 설치)
# apt-get update
# apt install docker.io docker
쿠버네티스 저장소 추가
(Master node와 Worker node 둘 다 설치)
# curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | apt-key add -
OK
# cat <<EOF > /etc/apt/sources.list.d/kubernetes.list
> deb http://apt.kubernetes.io/ kubernetes-xenial main
> EOF
쿠버네티스에 필요한 패키지 내려받기(q다음에 대문자 O)
(Master node와 Worker node 둘 다 설치)
# apt-get update
# wget -qO- get.docker.com | sh
주의) 명령어를 실행하면 에러 메세지가 출력될 것이다. 반드시 한 번 더 명령어를 실행한다
에러메세지
한 번 더 명령어를 실행하면 정상적으로 패키지를 내려받을 수 있을 것이다
# wget -qO- get.docker.com | sh
kubeadm 설치
(Master node와 Worker node 둘 다 설치)
# apt-get install -y kubelet kubeadm kubernetes-cni
(특정 버전의 쿠버네티스를 설치하려면)
# apt-get install -y kubelet=1.13.5-00 kubeadm kubectl kubernetes-cni
쿠버네티스 클러스터 초기화(Master node에서 실행)
호스트IP에는 외부IP가 아닌 내부IP를 입력
# kubeadm init --apiserver-advertise-address <호스트IP> --pod-network-cidr=192.168.0.0/16
초기화가 완료되고 나면 아래와 같은 출력 결과를 확인할 수 있다. 빨간색 박스 안에 있는 명령어는 Master node에서 입력하고, 파란색 박스 안에 있는 명령어는 Worker node로 이용할 가상머신에서 실행한다
워커노드 등록(Worker node에서 실행)
# kubeadm join 10.17.1.48:6443 --token xk2n1n.6sdsq1ac7pw8d2em \
> --discovery-token-ca-cert-hash sha256:ea7692db15a9719020b82e4d69f0577df211f11f41600055d2e19fde718dcd52
워커노드 등록 확인(Master node에서 실행)
워커노드 2개가 정상적으로 등록된 것을 확인 할 수 있다
# kubectl get nodes
컨테이너 간 통신을 할 수 있는 네트워크가 설치되어 있지 않기 때문에 "STATUS"가 NotReady로 되어있을 것이다
컨테이너 간 통신을 위한 컨테이너 네트워크 설치(Master node에서 실행)
네트워크 설치를 완료하면 "STATUS"가 Ready로 바뀐다
# kubectl apply -f https://docs.projectcalico.org/v3.8/manifests/calico.yaml
# kubectl get nodes
만약 클러스터 초기화 단계에서 "--pod-network-cidr"에서 192.168.0.0/16이 아닌 별도의 IP대역을 입력했다면
calico.yaml에는 기본IP 대역이 192.168.0.0/16으로 설정되어 있기 때문에 변경해주는 작업이 필요
# wget https://docs.projectcalico.org/v3.8/manifests/calico.yaml
# sed -i -e 's?192.168.0.0/16?10.245.0.0/16?g' calico.yaml
# kubectl apply -f calico.yaml
Worker node 제거
STATUS가 계속 "NotReady"이면 Worker node가 정상적으로 등록되지 못한 경우이므로 노드를 제거하고 새로 추가한다
# kubectl delete node ip-10-17-1-184
'쿠버네티스' 카테고리의 다른 글
kops를 이용해 AWS에 쿠버네티스 설치 (0) | 2021.04.28 |
---|---|
쿠버네티스 디플로이먼트(Delpoyment) 사용하기 (0) | 2021.04.27 |
구글 클라우드(GCP)에 쿠버네티스 연동하기 (0) | 2021.04.26 |
쿠버네티스 라벨을 이용한 레플리카셋 설정 (0) | 2021.04.26 |
쿠버네티스 Pod(포드) 사용하기 (0) | 2021.04.26 |