🌱 Infra/Container_ Kubernetes

k8s 빠르게 설치하기

mini_world 2022. 2. 22. 23:41
목차 접기

이번 포스팅은 단일노드에 쿠버네티스를 설치합니다. 참고

* 설치 OS: centos-release-7-9.2009.1.el7.centos.x86_64

 

1.  kube 설치

아래의 순서에 따라 명령어를 쭉 입력해줍니다. 하나라도 빠트리면 kubeadm init에 오류가 나오기 때문에 빠트리는 것 없이 잘 따라오세요!🥲

# 런타임 docker 설치
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
sudo yum-config-manager --add-repo   https://download.docker.com/linux/centos/docker-ce.repo
sudo yum update -y && sudo yum install -y containerd.io docker-ce docker-ce-cli

# 도커 설정파일 생성
sudo mkdir /etc/docker
cat <<EOF | sudo tee /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

# 도커 서비스 재시작 및 enable
 sudo systemctl restart docker
 sudo systemctl enable docker
 
# iptables 설정
cat <<EOF | sudo tee /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF
sudo sysctl --system

# selinux 설정
sudo setenforce 0
sudo sed -i 's/^SELINUX=enforcing$/SELINUX=permissive/' /etc/selinux/config


# kube 레포 설치
cat <<EOF | sudo tee /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=https://packages.cloud.google.com/yum/repos/kubernetes-el7-\$basearch
enabled=1
gpgcheck=1
repo_gpgcheck=1
gpgkey=https://packages.cloud.google.com/yum/doc/yum-key.gpg https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg
exclude=kubelet kubeadm kubectl
EOF

# kube 패키지 설치
sudo yum install -y kubelet kubeadm kubectl --disableexcludes=kubernetes
sudo systemctl enable --now kubelet

 

이제 kubectl 명령어 사용이 가능합니다.
이제 namespace, service, nodes, pods 등 사용하기 이전에! kubeadm init을 실행합니다.
👉 kubeadm init 실행하는 이유?
kubectl 명령어는 기본적으로 master노드에서만 실행 가능하며, kubeadm init은 마스터노드로 실행하겠다는 초기 설정입니다.

# 마스터 노드로 설정
kubeadm init --apiserver-advertise-address=<현재 호스트IP> --pod-network-cidr= <파드가 사용할 IP대역>
kubeadm init --apiserver-advertise-address=10.77.110.102 --pod-network-cidr=192.168.0.0/16

 

여기까지 진행 되었다면, 진짜로 kubectl 명령어 사용이 가능해야하는데, 뭐가 잘 안되죠...?
아마 coredns 파드가 정상적으로 올라오지 않았을겁니다.

# kube-system 파드 확인하기
kubectl get pods -n kube-system -o wide

 

coredns 는 네트워크가 설치되기 이전에는 시작되지 않습니다. 제대로 설치해줍시다. 참고링크

# flannel yaml 다운로드
wget https://raw.githubusercontent.com/flannel-io/flannel/master/Documentation/kube-flannel.yml

# network 부분 수정
sed -i "s|10.244.0.0|192.168.0.0|" kube-flannel.yml
sed -i "s|v1beta1|v1|" kube-flannel.yml

# 설정 적용
kubectl create -f kube-flannel.yml

 

 

오~🙌 이제 정상적으로 올라왔네요!!!

 

 

 

참고자료 - [링크]

728x90