Bootcamp
[Kubernetes] 쿠버네티스 마스터 설정하기
K_Hyul
2024. 2. 1. 12:25
728x90
# k8s 다운로드 받을 수 있는 repository 설정
export OS=xUbuntu_22.04
export CRIO_VERSION=1.26
echo "deb https://download.opensuse.org/repositories/devel:/kubic:/libcontainers:/stable/$OS/ /"| sudo tee /etc/apt/sources.list.d/devel:kubic:libcontainers:stable.list
echo "deb http://download.opensuse.org/repositories/devel:/kubic:/libcontainers:/stable:/cri-o:/$CRIO_VERSION/$OS/ /"|sudo tee /etc/apt/sources.list.d/devel:kubic:libcontainers:stable:cri-o:$CRIO_VERSION.list
curl -L https://download.opensuse.org/repositories/devel:kubic:libcontainers:stable:cri-o:$CRIO_VERSION/$OS/Release.key | sudo apt-key add -
curl -L https://download.opensuse.org/repositories/devel:/kubic:/libcontainers:/stable/$OS/Release.key | sudo apt-key add -
sudo apt update
# cri-o 가 docker 보다 빠름 (같은 성질)
sudo apt install cri-o cri-o-runc -y
sudo systemctl enable --now crio
sudo systemctl status crio
## Add Kubernetes repositories
sudo apt-get install -y apt-transport-https ca-certificates curl
curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add
echo "deb https://apt.kubernetes.io/ kubernetes-xenial main" >> ~/kubernetes.list
sudo mv ~/kubernetes.list /etc/apt/sources.list.d
sudo apt-get update
export VERSION=1.26.0-00
sudo apt install -y kubelet=$VERSION
sudo apt install -y kubectl=$VERSION
sudo apt install -y kubeadm=$VERSION
sudo apt install -y kubernetes-cni
# 1.26으로 고정
sudo apt-mark hold kubelet kubeadm kubectl
#### 결과
hadoop@namenode:~$ sudo apt-mark hold kubelet kubeadm kubectl
kubelet set on hold.
kubeadm set on hold.
kubectl set on hold.
# k8s.conf에 overlay, br_netfilter 저장
cat <<EOF | sudo tee /etc/modules-load.d/k8s.conf
overlay
br_netfilter
EOF
# 네트워크 관련 설정
sudo modprobe overlay
sudo modprobe br_netfilter
sudo tee /etc/sysctl.d/kubernetes.conf<<EOF
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
net.ipv4.ip_forward = 1
EOF
# 설정된 값 보기
sudo sysctl --system
# init
sudo kubeadm init --token 123456.1234567890123456 --token-ttl 0 \
--pod-network-cidr=172.16.0.0/16 --apiserver-advertise-address=하드에서 사용될 ip
# 붙일 노드에서
sudo kubeadm join 하드에서 사용될 ip --token 123456.1234567890123456 --discovery-token-ca-cert-hash sha256:9e840ade6504a0a6400f032aba435f2253949e1ba0f0138d5891a8961c59f955
hadoop@namenode:~$ kubectl get nodes
NAME STATUS ROLES AGE VERSION
datanode3 Ready <none> 10s v1.26.0
namenode Ready control-plane 27m v1.26.0
secondnode Ready <none> 33s v1.26.0
728x90