마스터노드 설정할 부분
- kubeadm init --pod-netowork-cidr =[ip대역] : pod 네트워크 설정
- kubeadm init --apiserver-advertise-address =[API Server주소] : 마스터노드의 api서버주소 설정
- (추가)kubeadm init --control-plane-endpoint : 모든 마스터노드에 대한 공유 엔드포인트 설정
워커노드 설정할 부분
- kubeadm join : 워커노드를 마스터노드에 결합 (워커노드에서 실행)
1. pod 네트워크 설정
pod가 서로 통신할 수 있도록 pod네트워크 애드온 설치
kubeadm은 CNI(Container Network Interface)기반의 애드온(플러그인) 필요
CNI 플러그인 종류 ex) Flannel, Calico
현재 테스트환경 : Flannel 플러그인 사용
1) pod Network 초기화
pod network를 연결할 ip대역설정
현재 테스트는 pod 네트워크로 Flannel을 사용할 '예정'이기 때문에 10.244.0.0/16 지정
sudo kubeadm init --pod-network-cidr=10.244.0.0/16
10.244.0.0/16 : Flannel 플러그인에서 기본적으로 권장하는 네트워크 대역
일부러 호스트 네트워크로 잘 사용하지 않는 대역을 권장하는 것
만약 호스트 네트워크에서 10.244.0.0/16 을 사용하면 다른 값으로 설정
successfully 밑에 나온말 따라하기
- 클러스터 설정파일 복사하기
-(워커)노드 추가하는 명령어 복사하기
마지막에 kubeadm join 으로 시작하는 명령어
2) pod network 추가 (Flannel 플러그인)
추가하기 이전, 클러스터 노드정보 확인 (NotReady)
kubectl get nodes
현재 테스트는 pod 네트워크로 Flannel을 사용
그래서 Flannel 플러그인추가
sudo kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
클러스터 노드정보 : Ready
3) iptables 설정
CNI 플러그인이 작동하기 위한 요구사항
sudo sysctl net.bridge.bridge-nf-call-iptables=1
브릿지 되어 있는 ipv4트래픽을 iptables 체인으로 전달할 수 있도록 명령어 실행
4) 방화벽 확인
방화벽 규칙이 UDP 8285, 8472 포트의 트래픽을 허용하는지 확인
UDP 8285 : Flannel 플러그인이 UDP백엔드를 사용해서 캡슐화된 패킷을 보내는 포트
UDP 8472 : 커널이 vxlan 백엔드를 사용해서 캡슐화된 패킷을 보내는 포트
2. API Server 주소설정
지금 설정하는 노드가 '마스터 노드'로 동작할 것이라고 kubeadm에게 알려줘야함
1) 자신 네트워크 인터페이스 확인
ifconfig
마스터노드의 ip주소(10.0.0.207) 를 API서버에 대한 주소값으로 설정
또는 ip addrs show
<여기서부터 안댐>
2) api 서버주소 설정
kubeadm init --apiserver-advertise-address=10.0.0.207
private / public ip 둘다 안댐ㅠㅠ
어떤 주소를 API 서버주소로 설정해야하지?
pod 확인
워커노드
마스터노드를 생성하고나서 마지막에 노드를 추가하는 명령어
kubeadm join 10.0.0.207:6443 --token 9caxvv.5t1v933kw8nytmwl \
--discovery-token-ca-cert-hash sha256:b79ed7484c1fd66d88bdee6dff15e7c7f0f4367f402da7bccc3af4427465484e
출처
https://medium.com/finda-tech/overview-8d169b2a54ff
https://hiseon.me/linux/ubuntu/ubuntu-kubernetes-install/
'🌴 DevOps > Docker & K8s' 카테고리의 다른 글
쿠버네티스로 외부통신하기(3/3) - LoadBalancer (0) | 2020.05.24 |
---|---|
쿠버네티스로 외부통신하기(2/3) - NodePort (0) | 2020.05.24 |
쿠버네티스로 외부통신하기(1/3) - ClusterIP/Kube-Proxy (0) | 2020.05.24 |
쿠버네티스 환경구성(kubeadm.ver)(3/5) - 패키지 설치 (0) | 2020.05.18 |
쿠버네티스 환경구성(kubeadm.ver)(2/5)- 쿠버네티스/docker 설치 (0) | 2020.05.18 |
쿠버네티스 환경구성(kops.ver) - kops 명령어 TroubleShooting (0) | 2020.05.18 |