kubeadm 기반 클러스터 구성 연습
설치가이드
- Master Node: kubeadm, kubectl, CRI 필요
- Worker Node: kubeadm, kubelet, CRI 필요
- 스냅샷을 떠가면서 진행하는것을 추천 (중간에 잘못될시 스냅샷으로 빠르게 복원가능)
- 클러스터 구축후 CNI 구현체를 설치해야 pod을 띄울수 있음
설치에 참고한 중요 자료
- https://computingforgeeks.com/deploy-kubernetes-cluster-on-ubuntu-with-kubeadm/#12-step-7-add-worker-nodes
주요 포인트
swap 비활성화
sudo sed -i '/ swap / s/^\(.*\)$/#\1/g' /etc/fstab
# confirm disabled swap space
sudo vim /etc/fstab
sudo swapoff -a
sudo mount -a
free -h
커널 모듈 활성화 및 커널 파라미터 수정
# union file system을 위해 사용
sudo modprobe overlay
# 노드에서 팟 사이의 NAT에 필요
sudo modprobe br_netfilter
# nat 파라미터 설정
sudo tee /etc/sysctl.d/kubernetes.conf<<EOF
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
net.ipv4.ip_forward = 1
EOF
# 커널 리로드
sudo sysctl --system
주요 트러블 슈팅
방화벽, selinux 비활성화 체크
- selinux permissive 로 설정
Multi cri socket found
- https://velog.io/@kbw0226/KubernetesMulti-CRI-socket-found
- –cri-socket /run/cri-dockerd.sock 옵션으로 소켓 직접 지정
- https://it-hangil.tistory.com/5
# pod 대역은 노드 네트워크 대역과 겹치지 않게
sudo kubeadm init --pod-network-cidr=10.14.0.0/16 --apiserver-advertise-address=192.168.76.129 --cri-socket /run/cri-dockerd.sock
주요 Commands
# join 시에도 --cri-socket 지정
kubeadm join 192.168.76.129:6443 --token 6ob5rt.2k7zz3nj9hocg8a9 \
--discovery-token-ca-cert-hash sha256:6782c2419a0a49e15eb1c0400b3be5138f7f10eda3869cce5b6bf4db95c6e30e
--cri-socket /run/cri-dockerd.sock
참고자료
- https://kubernetes.io/docs/setup/production-environment/tools/kubeadm/create-cluster-kubeadm/
- https://computingforgeeks.com/deploy-kubernetes-cluster-on-ubuntu-with-kubeadm/#12-step-7-add-worker-nodes
- https://computingforgeeks.com/install-mirantis-cri-dockerd-as-docker-engine-shim-for-kubernetes/
- https://andrewpage.tistory.com/23
Leave a comment