OS : Ubuntu 20.04 desktop
구성 : master1, node1, node2
권장 메모리 : 최소 2GB
초기 설치 패키지 : openssh-server curl vim tree
참고 : https://docs.docker.com/engine/install/ubuntu/
1) repository를 최신화 합니다.
#apt-get update
2) HTTPS로 repository를 접근하여 사용할 수 있도록 패키지를 다운 받습니다.
#apt-get install -y ca-certificates curl gnupg lsb-release
3) Docker 공식 GPG key를 등록합니다.
#curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
4) 안정적인 repository를 사용하기 위해 명령어로 설정
#echo \ "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu
이제 등록된 repository를 사용하여 Docker를 설치합니다.
#apt-get update
#apt-get install -y docker-ce docker-ce-cli containerd.io
#systemctl status docker
#swapoff -a && sed -i '/swap/s/&/#/' /etc/fstab
#ufw disable
#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 sysctl --system
참고 : https://kubernetes.io/ko/docs/setup/production-environment/tools/kubeadm/install-kubeadm/
1) apt-get update && sudo apt-get install -y apt-transport-https ca-certificates curl
2) curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add -
cat <<EOF | sudo tee /etc/apt/sources.list.d/kubernetes.list
deb https://apt.kubernetes.io/ kubernetes-xenial main
EOF
3) apt-get update
4) apt-get -y install kubelet kubeadm kubectl
5) apt-mark hold kubelet kubeadm kubectl (패키지 변경 방지)
6) systemctl daemon-reload
7) systemctl restart kubelet
8) systemctl status kubelet 을 한 뒤, kubelet이 실행이 안된다면 아래와 같이 하기
§ sudo mkdir /etc/docker
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
§ systemctl enable docker
§ systemctl daemon-reload
§ systemctl restart docker
§ systemctl status kubelet
-> node에서 할 경우, kubelet이 실행 안될 수 있다. 여기까지 한 후, join을 하면 된다.
-> kubernetes cluster 이미지를 가져와서 초기화 설치를 진행한다.
중간에 적혀 있는 것처럼 아래에 그대로 진행하자. 그리고 제일 아래에는 join을 위한 토큰 키이기 때문에 기록하자.
#mkdir -p $HOME/.kube
#sudo cp -i /etc/kubernetes/admin.conf HOME/.kube/config #sudo chown $(id -u):(id -g) $HOME/.kube/config
쿠버네티스 위브넷은 쿠버네티스의 모든 네임스페이스의 네트워크 정책 어노테이션을 자동으로 모니터링한다.
#kubectl apply -f "https://cloud.weave.works/k8s/net?k8s-version=$(kubectl version | base64 | tr -d '\n')"
설치 확인>
#kubectl get pod --all-namespaces
아까 기록하라 했던 양식을 고대로 복붙하자.
#kubeadm join 10.100.0.104:6443 --token w15f2h.cvpjuo73ex0a1g9a --discovery-token-ca-cert-hash sha256:4f2277f0db4708acc70569ca9583485ec6459349625a87fc7dc2958ce4afc8d5
• Bash
source <(kubectl completion bash)
echo "source <(kubectl completion bash)" >> ~/.bashrc