Kubespray 설치

장쿠배·2025년 5월 25일

kubernetes

목록 보기
3/6

########모든 노드에서 설정################

sudo apt-get update

sudo apt install -y net-tools vim tree curl openssh-server

sudo vi /etc/systemd/system/swapoff.service
[Unit]
Description=Turn off all swap
DefaultDependiencies=no
After=local-fs.target

[Service]
Type=oneshot
ExecStart=/sbin/swapoff -a
RemainAfterExit=yes

[Install]
WantedBy=multi-user.target
WantedBy=graphical.target
sudo systemctl enable swapoff
sudo systemctl start swapoff

sudo ufw disable

ntp 설정


sudo apt install -y ntp
sudo systemctl restart ntp
sudo systemctl status ntp
sudo ntpq -p

#패킷 전송을 위해 설치
sudo -i
echo '1' > /proc/sys/net/ipv4/ip_forward

sudo vim /etc/modules-load.d/containerd.conf
overlay
br_netfilter

#커널 모듈 불러오기
sudo modprobe overlay
sudo modprobe br_netfilter

sudo vim /etc/sysctl.d/99-kubernetes-cri.conf

net.bridge.bridge-nf-call-iptables = 1
net.ipv4.ip_forward = 1
net.bridge.bridge-nf-call-ip6tables = 1

#노드 이름 및 환경에 따라 변경
sudo vi /etc/hosts
127.0.0.1       localhost
127.0.1.1       k8s-master
192.168.56.100 k8s-master
192.168.56.101 k8s-node1
192.168.56.102 k8s-node2
192.168.56.103 k8s-node3

노드 이름 및 환경에 따라 변경

sudo hostnamectl set-hostname k8s-master

#마스터 노드만 설정

ssh-keygen
ssh-copy-id k8s-master@k8s-master
ssh-copy-id k8s-master@k8s-node1
ssh-copy-id k8s-master@k8s-node2
ssh-copy-id k8s-master@k8s-node3

#접속 테스트
ssh k8s-master@k8s-node1
ssh k8s-master@k8s-node2
ssh k8s-master@k8s-node3

Ansible이 동작하기 위해 필요한 작업 hostname에 따라 수정

sudo -i
echo "k8s-master ALL=(ALL) NOPASSWD:ALL" >> /etc/sudoers

#필수 패키지 설치
sudo apt update
#python은 반드시 3.10 이상
sudo apt install -y git python3-pip ansible
#버전 확인
python3 --version

#kubespray 패키지 설치
git clone https://github.com/kubernetes-sigs/kubespray.git

pip3 install -r requirements.txt
cp -rfp inventory/sample inventory/mycluster

vi inventory/mycluster/inventory.ini
[kube_control_plane]
k8s-master ansible_host=192.168.56.100 ip=192.168.56.100 etcd_member_name=etcd1

[etcd]
k8s-master

[kube_node]
k8s-node1 ansible_host=192.168.56.101 ip=192.168.56.101
k8s-node2 ansible_host=192.168.56.102 ip=192.168.56.102
k8s-node3 ansible_host=192.168.56.103 ip=192.168.56.103

[k8s_cluster:children]
kube_control_plane
kube_node

#cni 변경 - 선택사항임
vi inventory/mycluster/group_vars/k8s_cluster/k8s-cluster.yml
kube_network_plugin: cilium

#버전 변경 ip대역 변경
vi inventory/mycluster/group_vars/k8s_cluster/k8s-cluster.yml

#kubespray로 설치
cd kubesprary
ansible-playbook -i inventory/mycluster/inventory.ini --become --become-user=root cluster.yml

#약 11분 소요
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config

kubectrl get po 로 확인

리셋방법

  • 모든 노드에서 - 위험한 작업임 모든 데이터를 다 지우는 작업
#각 노드에서
sudo kubeadm reset -f
sudo rm -rf /etc/cni/net.d /var/lib/cni /var/lib/kubelet /etc/kubernetes ~/.kube

sudo systemctl restart containerd
sudo systemctl restart kubelet
profile
Kubernetes/AmazonAWS를 위한 나의 기록

0개의 댓글