AWS Settings - yeardream-de-project-team4/k8s_project GitHub Wiki
# ๋ชจ๋ ๋
ธ๋ ๋์ผํ ssh public key ์ฌ์ฉ
ssh-keygen -t rsa
cat >> ~/.ssh/authorized_keys < ~/.ssh/id_rsa.pub
# docker ์ค์น
sudo apt-get install ca-certificates curl gnupg
sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
sudo chmod a+r /etc/apt/keyrings/docker.gpg
echo \
"deb [arch="$(dpkg --print-architecture)" signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
"$(. /etc/os-release && echo "$VERSION_CODENAME")" stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
sudo usermod -aG docker $USER
# ๋ธ๋ฆฟ์ง ๋คํธ์ํฌ ์ธํฐํ์ด์ค์ ๋ํ ํธ๋ํฝ์ด iptables ๊ท์น์ ์ํด ์ฒ๋ฆฌ๋๋๋กํจ
sudo modprobe br_netfilter
sudo sysctl net.bridge.bridge-nf-call-iptables=1
# ์ปค๋์ด ์ฒ๋ฆฌํ๋ ํจํท์ ์ธ๋ถ๋ก ํฌ์๋ฉ(IP forwarding)๊ฐ๋ฅ
sudo sysctl net.ipv4.ip_forward=1
sudo vim /etc/sysctl.conf
# ์๋ ๋ ์ค ์ถ๊ฐ
# net.bridge.bridge-nf-call-iptables = 1
# net.ipv4.ip_forward = 1
sudo mkdir -p /etc/containerd
containerd config default | sudo tee /etc/containerd/config.toml > /dev/null
sudo vim /etc/containerd/config.toml
# SystemdCgroup = true ์ค์
sudo systemctl restart containerd
sudo systemctl enable containerd
# active (running) ์ฒดํฌ
sudo systemctl status containerd
# ์ฟ ๋ฒ๋คํฐ์ค ์ค์น
sudo apt-get update
sudo apt-get install -y apt-transport-https ca-certificates curl
sudo mkdir -p /etc/apt/keyrings
echo "deb [signed-by=/etc/apt/keyrings/kubernetes.gpg] https://apt.kubernetes.io/ kubernetes-xenial main" | sudo tee /etc/apt/sources.list.d/kubernetes.list
curl -fsSL https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo gpg --dearmor -o /etc/apt/keyrings/kubernetes.gpg
sudo apt-get update
sudo apt-get install -y kubelet=1.25.6-00 kubeadm=1.25.6-00 kubectl=1.25.6-00
sudo apt-mark hold kubelet kubeadm kubectl
# ์ค์นํ์ธ
sudo -i
kubelet --version
kubeadm version
kubectl version --output=yaml
# ์ฌ๊ธฐ์ AMI ๋ก ์ค๋
์ท
์ธ๋ฐ์ด๋ ๊ท์น
์ ํ: SSH
์์ค: ๋ด IP
์ค๋ช
: ์ธ์คํด์ค์ ์ ์ํ๊ธฐ ์ํด 22๋ฒ ํฌํธ ๊ฐ๋ฐฉ
์ ํ: ๋ชจ๋ ํธ๋ํฝ
์์ค: ํ์ฌ ๋ณด์๊ทธ๋ฃน
์ค๋ช
: ์ธ์คํด์ค๊ฐ ํต์ ์ ์ํด ๋ณด์๊ทธ๋ฃน๋ด ๋ชจ๋ ํธ๋ํฝ ๊ฐ๋ฐฉ
# root ๊ณ์ ์ผ๋ก ์งํ, ํ์ฌ root ๊ณ์ ์ด ์๋๋ผ๋ฉด sudo -i ๋ก root ๊ณ์ ์ผ๋ก ์ง์
# ํธ์คํธ์ด๋ฆ ์ค์
sudo hostnamectl set-hostname [๋ง์คํฐ ๋
ธ๋ ์ด๋ฆ]
# ๋ง์คํฐ ๋
ธ๋ ์ค์
kubeadm config images pull --cri-socket /run/containerd/containerd.sock
# ํด๋ฌ์คํฐ ์์ - [์ค์!] ์คํ ํ ๋์ค๋ ํด๋ฌ์คํฐ join ๋ฉ์ธ์ง ๋ฐ๋ก ์ ์ฅ (kubeadm join ~~)
kubeadm init --apiserver-advertise-address=[๋ง์คํฐ๋
ธ๋ private ip] --pod-network-cidr=192.168.0.0/16 --cri-socket /run/containerd/containerd.sock
# ์๋ฌ๋ฐ์์ ์๋ ๋ ๋ช
๋ น์ด ์คํ ํ ๋ค์ ์๋
# sudo modprobe br_netfilter
# sudo sysctl net.bridge.bridge-nf-call-iptables=1
# root ๊ณ์ ์์ ๋์ด
exit
# config ์ค์
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
# calico ์ค์น
kubectl create -f https://raw.githubusercontent.com/projectcalico/calico/v3.26.1/manifests/tigera-operator.yaml
curl https://raw.githubusercontent.com/projectcalico/calico/v3.26.1/manifests/custom-resources.yaml -O
kubectl create -f custom-resources.yaml
# ๋ชจ๋ pod ์ STATUS๊ฐ running ์ด ๋ ๋๊น์ง ๋๊ธฐ. ์ดํ control + c ๋ก exit
watch kubectl get pods -n calico-system
# ๋
ธ๋ ํ์ธ
kubectl get node
# [์ต์
] ๋ง์คํฐ ๋
ธ๋์๋ pod ๋ฅผ ๋์ธ ์ ์๊ฒ ์ค์
kubectl taint nodes --all node-role.kubernetes.io/control-plane-
# <none > ์ด ์ถ๋ ฅ๋์ด์ผํจ
kubectl describe node [๋ง์คํฐ ๋
ธ๋ ์ด๋ฆ] | grep Taints
# helm ์ค์น
curl -fsSL -o get_helm.sh https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3
chmod 700 get_helm.sh
./get_helm.sh
# ํธ์คํธ์ด๋ฆ ์ค์
sudo hostnamectl set-hostname [์์ปค ๋
ธ๋ ์ด๋ฆ]
# ์ฟ ๋ฒ๋คํฐ์ค config ์ค์
mkdir -p $HOME/.kube
scp -p ๋ง์คํฐ๋
ธ๋์ ์ @๋ง์คํฐ๋
ธ๋ip:~/.kube/config ~/.kube/config
# root ๊ณ์ ์ง์
sudo -i
# ๋ฐ๋ก ์ ์ฅํด๋์๋ kubeadm join ~ ๋ช
๋ น์ด ์คํ
kubeadm join ~~~
# ์๋ฌ๋ฐ์์ ์๋ ๋ ๋ช
๋ น์ด ์คํ ํ ๋ค์ ์๋
# sudo modprobe br_netfilter
# sudo sysctl net.bridge.bridge-nf-call-iptables=1
# ๋ง์คํฐ ๋
ธ๋์์ kubectl get node ๋ก ๋
ธ๋ ์ถ๊ฐ ํ์ธ