########모든 노드에서 설정################
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
sudo apt install -y git python3-pip ansible
python3 --version
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
vi inventory/mycluster/group_vars/k8s_cluster/k8s-cluster.yml
kube_network_plugin: cilium
vi inventory/mycluster/group_vars/k8s_cluster/k8s-cluster.yml
cd kubesprary
ansible-playbook -i inventory/mycluster/inventory.ini --become --become-user=root cluster.yml
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