쿠버네티스 설치 (도커방식 쿠버네티스 1.22.5)
가상머신 3대 준비
호스트이름 CPU RAM ip
master 2 4 192.168.179.100
node1 2 4 192.168.179.110
node2 2 4 192.168.179.120
공통설정
-방화벽 허용
-리눅스 시스템들어오는 패킷을 iptables 에서 관리하게 설정(켜기)
셋리눅스(로컬방화벽 끄기)
firewall-cmd --permanent --add-port=6443/tcp
firewall-cmd --permanent --add-port=2379-2380/tcp
firewall-cmd --permanent --add-port=10250/tcp
firewall-cmd --permanent --add-port=10251/tcp
firewall-cmd --permanent --add-port=10252/tcp
firewall-cmd --permanent --add-port=10255/tcp
firewall-cmd --reload
modprobe br_netfilter
echo '1' > /proc/sys/net/bridge/bridge-nf-call-iptables
setenforce 0
sed -i --follow-symlinks 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/sysconfig/selinux
init 6
hosts 설정 변경
vi /etc/hosts
192.168.179.100 master
192.168.179.110 node1
192.168.179.120 node2
3대 모두 도커 설치
(1) centos에 설치
yum install -y yum-utils
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
yum-config-manager --enable docker-ce-nightly
yum-config-manager --enable docker-ce-test
yum install -y docker-ce docker-ce-cli containerd.io --allowerasing
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"
}
EOF
systemctl daemon-reload
systemctl restart docker
systemctl enable docker
#쿠버네티스에서 iptables 설정을 할수있게 설정
firewall-cmd --add-masquerade --permanent
firewall-cmd --reload
cat <<EOF > /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF
sysctl --system #확인하는 명령어, 위 내용이 추가되어 있어야 함
#쿠버네티스 레포지터리 설정 한후 설치
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
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
EOF
dnf install -y kubelet-1.22.5 kubeadm-1.22.5 kubectl-1.22.5 --disableexcludes=kubernetes
#쿠버네티스 재시작
#쿠버네티스 서비스 등록
systemctl enable kubelet
systemctl start kubelet
#쿠버네티스 컨테이너들이 스왑에 들어가있으면 다시 불러올때 느려서 스왑을 끄는 명령어를 사용한다
#스왑을 꺼도 재부팅시 다시 살아남 그래서 부팅시 스왑을 못불러오게 꺼야함
#스왑부분 주석
swapoff -a
vi /etc/fstab
/dev/mapper/cl-swap none swap defaults 0 0 이걸 다음처럼 변경, 주석 처리
#/dev/mapper/cl-swap none swap defaults 0 0
==========여기까지가 공통설정임===========================
마스터설정
쿠버네티스 에서 내가 마스터 로 사용하겟다고 명령어와 가상네트워크 대역 설정
master + node1 + node2 (이녀석끼리만 사용하는 네트워크 대역을 생성함)
6) 마스터 설정
[1] master
kubeadm init --pod-network-cidr 192.168.1.0/24
mkdir -p $HOME/.kube
cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
chown $(id -u):$(id -g) $HOME/.kube/config
kubectl get nodes 로 확인, 일단 마스터만 나옴
dnf -y install wget
wget https://docs.projectcalico.org/manifests/calico.yaml
vi calico.yaml > 4551라인
# - name: CALICO_IPV4POOL_CIDR
# value: "192.168.0.0/16"
- name: CALICO_IPV4POOL_CIDR
value: "192.168.2.0/24"
kubectl apply -f calico.yaml
쿠버네티스는 외부네트워크 연결은 다른데서 만들어둔 플러그인을 이용한다
들여쓰기 중요!!!
kubeadm init --pod-network-cidr 192.168.1.0/24
이후 노드에서 접속할수 있는 키값이 나오는데 저장해둬야한다!!!!
7) 워커 설정
[2] node1
[3] node2
firewall-cmd --zone=public --permanent --add-port={10250,30000-32767}/tcp
firewall-cmd --reload
#마스터에서 나온 노드와 연결하는 명령어를 실행
최종결과
참고자료
728x90
반응형