mac m1 기준 세팅입니다.
링크 과정을 마친 후 clone으로 스냅샷을 만들어두시길 추천드립니다.
sudo passwd root
으로 비밀번호 설정하고
su -
wget -qO- http://get.docker.com/ | sh
apt-get update
apt-get install -y apt-transport-https ca-certificates curl
curl -fsSL https://pkgs.k8s.io/core:/stable:/v1.29/deb/Release.key | sudo gpg --dearmor -o /etc/apt/keyrings/kubernetes-apt-keyring.gpg
만약 경로가 없다는 예외가 발생하면 도커 설치 확인해볼 것
도커를 설치했는데도 동작하지 않는다면
sudo mkdir -p /etc/apt/keyrings
명령으로 강제 생성하거나 다시 시도할 것
echo 'deb [signed-by=/etc/apt/keyrings/kubernetes-apt-keyring.gpg] https://pkgs.k8s.io/core:/stable:/v1.29/deb/ /' | sudo tee /etc/apt/sources.list.d/kubernetes.list
apt-get update
apt-get install -y kubelet kubeadm kubectl
apt-mark hold kubelet kubeadm kubectl
systemctl daemon-reload
systemctl restart kubelet
kubectl apply -f https://docs.projectcalico.org/manifests/calico.yaml
weave 설치 시 에러가 계속 발생해서 calico를 사용하기로 했습니다.
kubeadm init
error execution phase preflight: [preflight] Some fatal errors occurred:
[ERROR CRI]: container runtime is not running: output: time="2024-01-06T12:01:16Z" level=fatal msg="validate service connection: validate CRI v1 runtime API for endpoint \"unix:///var/run/containerd/containerd.sock\": rpc error: code = Unimplemented desc = unknown service runtime.v1.RuntimeService"
, error: exit status 1
[preflight] If you know what you are doing, you can make a check non-fatal with `--ignore-preflight-errors=...`
To see the stack trace of this error execute with --v=5 or higher
rm /etc/containerd/config.toml
systemctl restart containerd
후 재시도
만약 예외가 user is not running as root
이라면 su -
진입해서 명령어 작성할 것
마스터에서 init이 끝나면 kubeadm join
으로 시작하는 명령어가 나온다. 이를 복사해서 노드에 붙여넣으면 된다.
위와 같은 예외 발생 시 해결법 입력 후 재시도한다.
만약 명령어를 잊었다면 다음과 같이 작성한다.
kubeadm token list
를 통해 'token'을 획득한다.
openssl x509 -pubkey -in /etc/kubernetes/pki/ca.crt | openssl rsa -pubin -outform der 2>/dev/null | \
를 통해 'discovery-token-ca-cert-hash'를 획득한다.
sudo kubeadm join {마스터 노드 ip}:6443 --token {획득한 token} --discovery-token-ca-cert-hash sha256:{획득한 discovery-token-ca-cert-hash}
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
입력해서 kube 명령어 등록
kubectl get nodes -o wide
source <(kubectl completion bash)
echo "source <(kubectl completion bash)" >> ~/.bashrc
source <(kubeadm completion bash)
echo "source <(kubeadm completion bash)" >> ~/.bashrc
참고
https://kubernetes.io/docs/setup/production-environment/tools/kubeadm/install-kubeadm/
https://confluence.curvc.com/pages/viewpage.action?pageId=98048155