[쿠버네티스] 설치 (실습)
Vmware 사용해서 쿠버네티스 설치 방법이다
실습 진행할 때에는 D드라이브에 Vitual Machine 폴더를 만들어서 지정하여 사용했다
Virtual Network Editor
Host only subnet ip 172.100.100.0
NAT DHCP 192.168.184.201 ~ 254
Network Adapter 추가
vim, net-tools, tree 설치
netplan 파일 설정
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
# /etc/netplan/50-cloud-init.yaml
network:
version: 2
ethernets:
ens33:
addresses:
- 192.168.184.202/24
routes:
- to: default
via: 192.168.184.2
nameservers:
addresses:
- 8.8.8.8
search:
- 8.8.4.4
dhcp4: false
ens34:
addresses: [172.100.100.2/24]
nameservers:
addresses:
- 8.8.8.8
search:
- 8.8.4.4
dhcp4: false
Location & Timezone 설정
sudo locale-gen ko_KR.UTF-8
sudo timedatectl set-timezone Asia/Seoul
방화벽 오픈 : sudo ufw disable
Swap 모드 off로 변경 : sudo swapoff -a
ntp 설치 : sudo apt -y install ntp
동기화된 목록 확인 : sudo ntpq - p
도커 설치 및 커널 변경
네트워크 패킷 포워딩을 통해 커널에서 IP 포워딩을 활성화
sudo -i 를 통해 root로 접속 → sudo 만으로는 불가능
echo '1' > /proc/sys/net/ipv4/ip_forward
1
2
3
4
sudo cat <<EOF | sudo tee /etc/modules-load.d/containerd.conf
overlay
br_netfilter
EOF
sudo modprobe overlay
sudo modprobe br_netfilter
1
2
3
4
5
sudo cat <<EOF | sudo tee /etc/sysctl.d/99-kubernetes-cri.conf
net.bridge.bridge-nf-call-iptables = 1
net.ipv4.ip_forward = 1
net.bridge.bridge-nf-call-ip6table = 1
EOF
1
2
3
cat <<EOF | sudo tee /etc/modules-load.d/k8s.conf
br_netfilter
EOF
1
2
3
4
5
sudo cat <<EOF | sudo tee /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-iptables = 1
net.ipv4.ip_forward = 1
net.bridge.bridge-nf-call-ip6table = 1
EOF
이후 도커 설치
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
# docker 사용에 필요한 패키지 설치
sudo apt-get install -y apt-transport-https ca-certificates curl gnupg-agent software-properties-common
#######################################
# 도커 리파지토리 등록을 위해서는 키링을 통해 관리하게 되어 있기에
# 이와 관련된 사전 준비가 필요하다.
# Docker의 공식 GPG(GNU Privacy Guard) key를 추가
# 키를 저장할 디렉터리 생성 및 GPG키 추가
sudo mkdir -p /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
# 도커 리포지토리 설정
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
# docker에서 제공하는 GPG key 추가 확인
sudo apt-key fingerprint
Warning: apt-key is deprecated. Manage keyring files in trusted.gpg.d instead (see apt-key(8)).
/etc/apt/trusted.gpg
--------------------
pub rsa4096 2017-02-22 [SCEA]
9DC8 5822 9FC7 DD38 854A E2D8 8D81 803C 0EBF CD88
uid [ unknown] Docker Release (CE deb) <docker@docker.com>
sub rsa4096 2017-02-22 [S]
/etc/apt/trusted.gpg.d/ubuntu-keyring-2012-cdimage.gpg
------------------------------------------------------
sudo apt-key fingerprint 0EBFCD88
[sudo] password for ian:
Warning: apt-key is deprecated. Manage keyring files in trusted.gpg.d instead (see apt-key(8)).
pub rsa4096 2017-02-22 [SCEA]
9DC8 5822 9FC7 DD38 854A E2D8 8D81 803C 0EBF CD88
uid [ unknown] Docker Release (CE deb) <docker@docker.com>
#######################################
# 등록된 키를 통해 다운받기 위해 apt repository source에 docker의 repository 를 키핑을 포함하여 추가 하고
# 리스트 업데이트 후 설치 및 확인
#
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
# apt repository source에 더커 리파지토리를 등록하였으니 apt의 업데이트 필요
sudo apt update
# 도커 엔진 및 관련 패키지 설치
sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
# 도커 서비스 시작 및 확인
sudo systemctl start docker
sudo systemctl enable docker
sudo systemctl status docker
sudo docker –version
# 사용자 등록 : sudo 사용하지 않기 위함
sudo usermod -aG docker $USER
# 테스트
docker run hello-world
sudo sh -c "containerd config default > /etc/containerd/config.toml”
sudo sed -i 's| SystemdCgroup = false| SystemdCgroup = true|g' /etc/containerd/config.toml
수정 후 재시작
sudo systemctl restart containerd.service
sudo vi /etc/docker/daemon.json 수정
1
2
3
4
5
6
7
8
{
"exec-opts": ["native.cgroupdriver=systemd"],
"log-driver": "json-file",
"log-opts": {
"max-size": "100m"
},
"storage-driver": "overlay2"
}
쿠버네티스 설치
1
2
3
4
5
6
7
8
9
10
11
12
13
curl -fsSL https://pkgs.k8s.io/core:/stable:/v1.32/deb/Release.key | sudo gpg --dearmor -o /etc/apt/keyrings/kubernetes-apt-keyring.gpg
echo 'deb [signed-by=/etc/apt/keyrings/kubernetes-apt-keyring.gpg] https://pkgs.k8s.io/core:/stable:/v1.32/deb/ /' | sudo tee /etc/apt/sources.list.d/kubernetes.list
# 설치할때 오류생기면 update, upgrade
sudo apt -y install cri-tools kubeadm kubectl kubelet kubernetes-cni
sudo apt-mark hold kubelet kubeadm kubectl # 업데이트 홀드
# 시스템 restart
sudo systemctl daemon-reload
sudo systemctl restart kubelet.service
sudo systemctl enable --now kubelet.service