우선 5일차 대신 5회차로 쓴 이유는
방학중에 이벤트가 많아서..ㅎㅎ 네 그렇게 됐습니다
전체 노드에 IP 할당, 네트워크 구성 끝
8번 노드는 SSH 설정을 잘못 건드린건지 무슨 방법을 써도 authorized_keys 적용이 안 되네요
이제 가장 큰 문제는 7번 노드의 이상입니다
분명히 HDD 교체도 해줬는데,, 뭐 어쩌자는건지
아마도 메인보드에 눈에 보이지 않는 부식이나 단선이 있는 것으로 추정되니
7번 노드는 그냥 버리고 나중에 안쓰는 메인보드를 갖다 붙여야겠네요
아무튼 네트워크 구성까지 마쳤으니 이제 control-plane에서
kubeadm init
만 해주면 된다고 생각했는데
수십번 본 오류인데 볼 때마다 화가 잔뜩 납니다
원인을 생각해보니
1. CRI
2. 서비스 재시작
3. systemd 설정
중에 하나일텐데 무슨 방법을 써도 돌아오지 않았습니다
여기서 굉장히 많은 시간을 헤메던 와중에 공식 문서를 찬찬히 다시 읽어보았는데
근데 왜 그걸 이제 알려줌
트러블슈팅하는 방법도 다 알려주면서
왜 이건 안 알려줬냐
암튼 그래서 containerd로 넘어가기로 했습니다
# 노드 반절 정도는 swapoff를 해주지 않았길래 그냥 공통으로 작성해버림
# https://kubernetes.io/docs/setup/production-environment/container-runtimes/
# 참고했음
swapoff -a
# 컨테이너드 가져오기
wget https://github.com/containerd/containerd/releases/download/v1.6.15/containerd-1.6.15-linux-amd64.tar.gz
#압축 해제
tar Cxzvf /usr/local containerd-1.6.15-linux-amd64.tar.gz
# 데몬 리로드, 컨테이너드 사용
systemctl daemon-reload
systemctl enable --now containerd
# runc 다운로드
wget https://github.com/opencontainers/runc/releases/download/v1.1.4/runc.amd64
# runc 설치
install -m 755 runc.amd64 /usr/local/sbin/runc
# cni plugin 다운로드
wget https://github.com/containernetworking/plugins/releases/download/v1.1.1/cni-plugins-linux-amd64-v1.1.1.tgz
#압축해제
mkdir -p /opt/cni/bin
sudo xzvf /opt/cni/bin cni-plugins-linux-amd64-v1.1.1.tgz
# 도커, 도커엔진, 컨테이너드, 런씨 그냥 싹다 삭제(k8s-도커 레퍼런스에서 이렇게 하라고 했는데
# 왜 이렇게 쓴건진 이해가 잘 안됨. 다운로드 하라고 해놓고 바로 삭제 ? 흠
# 이유를 아신다면 알려주시길 바래요
sudo apt-get remove docker docker-engine docker.io containerd runc
sudo apt-get update
# 다시 설치,, 도커 공식 문서 참고함
# https://docs.docker.com/engine/install/ubuntu/
sudo apt-get install \
ca-certificates \
curl \
gnupg \
lsb-release
sudo mkdir -p /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update
sudo chmod a+r /etc/apt/keyrings/docker.gpg
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-compose-plugin
sudo docker run hello-world
#IPv4 포워딩 및 iptables에서 브리지된 트래픽 확인
cat <<EOF | sudo tee /etc/modules-load.d/k8s.conf
overlay
br_netfilter
EOF
sudo modprobe overlay
sudo modprobe br_netfilter
# sysctl 파라미터 재부팅해도 유지되도록
cat <<EOF | sudo tee /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-iptables = 1
net.bridge.bridge-nf-call-ip6tables = 1
net.ipv4.ip_forward = 1
EOF
# sysctl 적용
sudo sysctl --system
# 컨테이너드 disabled_plugins 그냥 삭제해버림(cri 비활성화 오류 해결)
sudo sed -i '/disabled_plugins/d' /etc/containerd/config.toml
# 컨테이너드 재시작
systemctl restart containerd
# kubeadm join 당신의 조인 코드를 넣어주세요
주석에 달아놓은 것과 같이
굳이 설치하고 다시 지우는 이유는 모르겠지만
일단 그 부분은 시키는대로 해보았습니다
그랬더니
아 물론 10회 반복해서 나온 결과입니다
한번에 뚝딱 되지는 않아요
NotReady.. 이거 분명히 한달 전에도 이 문제로 머리가 아팠는데
잠시 고민해보니 CNI 설정을 하지 않은 것이 생각났습니다
WeaveNet 말고 Calico로 설치해보았습니다
전부 Ready 상태로 전환되었습니다
control-plane이 NotReady인 이유는
컨트롤 플레인에게 작업을 할당하지 않도록 초기 설정이 되어있는 것으로 알고 있습니다
자 클러스터 구성도 마쳤고 이제 서비스 배포를 실습해보도록 하겠습니다
부족한 점이 많으니 지적 부탁드립니다,,
이상입니다 감사합니다
'클러스터 부활' 카테고리의 다른 글
7회차 kubernetes 환경에서 jupyter hub 사용 (0) | 2023.01.17 |
---|---|
6회차 일단 신나서 글부터 쓰고 봄 (0) | 2023.01.16 |
4일차 - 조립 완료 (3) | 2023.01.05 |
3일차 - temporary failure in name resolution, network is unreachable (0) | 2023.01.02 |
클러스터 살리기 1일차 ~ 2일차 (2) | 2023.01.02 |