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
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
'DevOps' 카테고리의 다른 글
k8s 지속적 제공(Continuous Delivery) argoCD (1) 구축 (0) | 2023.05.07 |
---|---|
ubuntu k8s 포트 사용체크 (0) | 2023.05.07 |
오라클클라우드 프리티어를 이용한 k8s 구축 (3) kubespray 설치 (0) | 2023.05.04 |
오라클클라우드 프리티어를 이용한 k8s 구축 (2) ansible 설치 (0) | 2023.05.03 |
클라우드 인스턴스 key 없이 ip와 비밀번호만으로 접속하기 (0) | 2023.05.03 |