이세개발
article thumbnail

 

containerd 설치 (Container Runtimes)

인스턴스 3개 전부

sudo apt-get install containerd -y

sudo mkdir -p /etc/containerd

containerd config default | sudo tee /etc/containerd/config.toml

sudo systemctl stop containerd

sudo apt install curl

curl -LO https://github.com/containerd/containerd/releases/download/v1.7.0/containerd-1.7.0-linux-arm64.tar.gz
curl -LO https://github.com/containerd/containerd/releases/download/v1.7.0/containerd-1.7.0-linux-amd64.tar.gz


tar xvf containerd-1.7.0-linux-arm64.tar.gz
tar xvf containerd-1.7.0-linux-amd64.tar.gz

rm containerd-1.7.0-linux-arm64.tar.gz
rm containerd-1.7.0-linux-amd64.tar.gz


sudo cp bin/* /usr/bin/

sudo systemctl start containerd

rm -rf bin

sudo systemctl status containerd --lines 1

 

네트워크 설정

인스턴스 3개 전부

sudo modprobe br_netfilter

cat <<EOF | sudo tee /etc/modules-load.d/k8s.conf
br_netfilter
EOF

cat <<EOF | sudo tee /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF

#echo 'net.bridge.bridge-nf-call-iptables = 1' | sudo tee -a /etc/sysctl.conf

SOURCE_FILE="/etc/sysctl.conf"
LINE_INPUT="net.bridge.bridge-nf-call-iptables = 1"

grep -qF "$LINE_INPUT" "$SOURCE_FILE"  || echo "$LINE_INPUT" | sudo tee -a "$SOURCE_FILE"

sudo echo '1' | sudo tee /proc/sys/net/ipv4/ip_forward

cat /proc/sys/net/ipv4/ip_forward

sudo sysctl --system

 

 

KUBEADM, kubelet, kubectl 설치

3개 인스턴스 전부설치 control_plane 이 아닌 나머지 노드들은 kubectl 은 설치 안해도 됨

# k8s 설치시작

sudo apt-get update
sudo apt-get install -y apt-transport-https ca-certificates curl

sudo curl -fsSLo /etc/apt/keyrings/kubernetes-archive-keyring.gpg https://packages.cloud.google.com/apt/doc/apt-key.gpg

echo "deb [signed-by=/etc/apt/keyrings/kubernetes-archive-keyring.gpg] https://apt.kubernetes.io/ kubernetes-xenial main" | sudo tee /etc/apt/sources.list.d/kubernetes.list

sudo apt-get update
sudo apt-get install -y kubelet kubeadm kubectl
sudo apt-mark hold kubelet kubeadm kubectl

 

control_plane 에서 설치

kubeadm config images list
kubeadm config images pull

## cidr은 편한대로 겹치지 않도록
sudo kubeadm init --pod-network-cidr=10.244.0.0/16



mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config

## 노드 출력
kubectl get nodes

## 만약 오류가 난다면 재시작후 해보기
reboot

kubeadm init 한 후에 나오는 토큰은 저장해 둔다

 

worker_node 에서 설치

kubeadm join @@@:6443 --token @@@ \
        --discovery-token-ca-cert-hash sha256:@@@

위에 저장해놓은것을 worker_node 연결할 인스턴스 ssh로 접속해서 입력한다.

 

SCP 를 사용하여 권한 전송한다

scp $HOME/.kube/config user@{ip}:/home/user/.kube
profile

이세개발

@print(name)

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!