더북(TheBook)

master_node.sh

  1. #!/usr/bin/env bash
  2.  
  3. # init kubernetes
  4. kubeadm init --token 123456.1234567890123456 --token-ttl 0 \
  5. --pod-network-cidr=172.16.0.0/16 --apiserver-advertise-address=192.168.1.10
  6.  
  7. # config for master node only
  8. mkdir -p $HOME/.kube
  9. cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
  10. chown $(id -u):$(id -g) $HOME/.kube/config
  11.  
  12. # config for kubernetes's network
  13. kubectl apply -f \
  14. https://raw.githubusercontent.com/sysnet4admin/IaC/master/manifests/172.16_net_  calico.yaml

4~5번째 줄: kubeadm을 통해 쿠버네티스의 워커 노드를 받아들일 준비를 합니다. 먼저 토큰을 123456.1234567890123456으로 지정하고 ttl(time to live, 유지되는 시간)0으로 설정해서 기본값인 24시간 후에 토큰이 계속 유지되게 합니다. 그리고 워커 노드가 정해진 토큰으로 들어오게 합니다. 쿠버네티스가 자동으로 컨테이너에 부여하는 네트워크를 172.16.0.0/16(172.16.0.1~172.16.255.254)으로 제공하고, 워커 노드가 접속하는 API 서버의 IP를 192.168.1.10으로 지정해 워커 노드들이 자동으로 API 서버에 연결되게 합니다.

8~10번째 줄: 마스터 노드에서 현재 사용자가 쿠버네티스를 정상적으로 구동할 수 있게 설정 파일을 루트의 홈디렉터리(/root)에 복사하고 쿠버네티스를 이용할 사용자에게 권한을 줍니다.

13~14번째 줄: 컨테이너 네트워크 인터페이스(CNI)인 캘리코(Calico)의 설정을 적용해 쿠버네티스의 네트워크를 구성합니다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.