클라우드,가상화/K8S

Kubernetes Install

aiemag 2023. 4. 27. 00:42
반응형

※ 실행환경 CENTOS 7.9

- Proxy, 인증키 등이 필요 없는 환경에서의 설치 진행입니다.

- 또한 root 권한으로 설치 진행합니다.

 

1. 기반 환경 세팅

1) yum update

# yum update -y

 


2. Docker 설치

1) Docker Repository 등록

# yum install -y yum-utils

# yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

 

2) Docker 버전 리스트

# yum list docker-ce --showduplicates | sort -r

 

3) Docker 설치

최신 버전의 Docker 설치

# yum install docker-ce docker-ce-cli

 

특정 버전의 Docker 설치

# yum install docker-ce-<VERSION_STRING>

ex) yum install docker-ce-20.10.10

※ 특정 k8s에서 사용할 수 있는 docker 버전을 설치해야 함.

※ k8s 1.18에 맞는 docker는 docker-ce-19.03.11

https://stackoverflow.com/questions/64983124/which-docker-versions-are-supported-on-kubernetes-1-18-and-1-19

 

4) Docker daemon 시작

부팅 시 서비스 자동 시작

# systemctl enable docker

Docker 시작

# systemctl start docker

 

5) docker 의 cgroup driver를 systemd로 설정

# cat <<EOF>> /etc/docker/daemon.json
{
  "exec-opts": ["native.cgroupdriver=systemd"],
  "log-driver": "json-file",
  "log-opts": {
    "max-size": "100m"
  },
  "storage-driver": "overlay2",
  "storage-opts": [
    "overlay2.override_kernel_check=true"
  ]
}
EOF

 

# systemctl restart docker

변경된  cgroup 확인

# docker info | grep -i cgroup 


3. Kubernetes 설치

1) selinux 비활성화

# setenforce 0
# sed -i 's/^SELINUX=enforcing$/SELINUX=disabled/' /etc/selinux/config

 

2) swap 비활성화

# swapoff -a
# sed -i '/ swap / s/^\\(.*\\)$/#\\1/g' /etc/fstab


3) 방화벽 비활성화

# systemctl disable firewalld
# systemctl stop firewalld


4) iptables 커널 설정

# cat <<EOF>> /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF

# sysctl --system


5) hosts 설정

# vi /etc/hosts

다음 입력
<Master Node IP> k8s-master

<Worker Node IP>k8s-worker1

 

# vi /etc/hostname

다음 입력

k8s-master 또는 k8s-worker1 입력

 

6) k8s yum repository 설정

# cat <<EOF>> /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=https://packages.cloud.google.com/yum/repos/kubernetes-el7-x86_64
enabled=1
gpgkey=https://packages.cloud.google.com/yum/doc/yum-key.gpg https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg
EOF

 

7) k8s 패키지 설치

설치 가능한 패키지 리스트 보기

# yum -v list kubelet --show-duplicates

 

특정 버전의 k8s 패키지 설치

# yum install -y kubelet-<VERSION_STRING> kubeadm-<VERSION_STRING> kubectl-<VERSION_STRING> --disableexcludes=kubernetes

ex) yum install -y kubelet-1.23.10 kubeadm-1.23.10 kubectl-1.23.10 --disableexcludes=kubernetes

ex) yum install -y kubelet-1.18.20 kubeadm-1.18.20 kubectl-1.18.20 --disableexcludes=kubernetes

 

8) kubelet 실행

# systemctl enable kubelet
# systemctl start kubelet

 


4. Kubernetes Master Node 설치

# kubeadm init

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


5. Kubernetes Worker Node 설치

 

master node에서 token 값 확인

# kubeadm token list

 

master node에 기존 token이 존재하지 않는 경우, 이후 나타나는 key 값으로 worker node에서 join 한다.

# kubeadm token create --print-join-command

 

 

반응형

'클라우드,가상화 > K8S' 카테고리의 다른 글

k8s - Deployment  (0) 2023.07.02
k8s - ReplicaSet  (0) 2023.07.02
k8s - Pod  (0) 2023.07.02
k8s - Overview  (0) 2023.07.02
Minikube 설치  (0) 2023.05.20