sudo swapoff /swap.img
sudo sed -i -e '/swap.img/d' /etc/fstab
가상 메모리를 사용하지 않도록 한다.
curl -fsSL <https://get.docker.com> -o get-docker.sh
sudo sh get-docker.sh
Docker container로 할 거니까 Docker 설치
sudo systemctl restart docker
sudo systemctl enable docker
Docker를 CRI로 하기 위한 plugin(cri-dockerd
)설치
(현재 Kubernetes는 공식적으로 Docker를 지원하지 않는다.)
git clone <https://github.com/Mirantis/cri-dockerd.git>
sudo wget <https://storage.googleapis.com/golang/getgo/installer_linux>
sudo chmod +x ./installer_linux
sudo ./installer_linux
sudo source ~/.bash_profile
cd cri-dockerd
sudo mkdir bin
sudo go build -o bin/cri-dockerd
sudo mkdir -p /usr/local/bin
sudo install -o root -g root -m 0755 bin/cri-dockerd /usr/local/bin/cri-dockerd
sudo cp -a packaging/systemd/* /etc/systemd/system
sudo sed -i -e 's,/usr/bin/cri-dockerd,/usr/local/bin/cri-dockerd,' /etc/systemd/system/cri-docker.service
sudo systemctl daemon-reload
sudo systemctl enable cri-docker.service
sudo systemctl enable --now cri-docker.socket
sudo systemctl restart docker && sudo systemctl restart cri-docker
sudo systemctl status cri-docker.socket --no-pager
Docker Cgroup 변경
cat << EOF | sudo tee /etc/docker/daemon.json
{
"exec-opts": ["native.cgroupdriver=systemd"],
"log-driver": "json-file",
"log-opts": {
"max-size": "100m"
},
"storage-driver": "overlay2"
}
EOF
Kernel Forwarding , kube-proxy설정 (= pod의 통신, overlay network)
cat <<EOF | sudo tee /etc/modules-load.d/k8s.conf
br_netfilter
EOF
iptable이 오버레이 네트워크의 트래픽을 수용하도록 설정
cat <<EOF | sudo tee /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF
뭔지 몰름
sudo apt install -y apt-transport-https ca-certificates curl
sudo curl -fsSLo /usr/share/keyrings/kubernetes-archive-keyring.gpg <https://packages.cloud.google.com/apt/doc/apt-key.gpg>
echo "deb [signed-by=/usr/share/keyrings/kubernetes-archive-keyring.gpg] <https://apt.kubernetes.io/> kubernetes-xenial main" | sudo tee /etc/apt/sources.list.d/kubernetes.list
sudo apt update
sudo apt upgrade -y
sudo apt install -y kubelet kubeadm kubectl
꼭 master에서만 kubectl을 해야 되는 건 아님