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