목차
접기
이번 포스팅은 단일노드에 쿠버네티스를 설치합니다. 참고
* 설치 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