- 쿠버네티스 클러스터를 직접 구성하는 도구
- kubeadm
- 쿠버네티스에서 공식 제공하는 클러스터 생성/관리 도구
- kubespray
- 쿠버네티스 클러스터를 배포하는 오픈소스 프로젝트
- 멀티마스터 구현에 적합하도록 구성되어 있음.
- 다양한 형식으로 쿠버네티스 클러스터 구성 가능
- 온프레미스 상용 서비스 클러스터 운영시 유용함.
- 다양한 CNI 제공
- kubeadm
-
- CNI이란? (container network interface)
- container 간의 통신을 지원하는 소프트웨어. VxLAN, Pod Network 라고도 부름.
- 쿠버네티스 사용을 위해서 바니드시 Container Network Interface설치 필요.
- 다양한 종류의 플러그인이 존재함 (플라넬, 칼리코, 위브넷 등)
- 쿠버네티스 클러스터 구성
- control plane
- 오케스트라에서 지휘자의 역할을 하는 마스터 장비.
- 워커노드들의 상태를 관리하고 제어
- single master
- multi master (3,5개의 마스터 노드들)
- worker node
- 도커 플랫폼을 통해 컨테이너를 동작하며 실제 서비스를 제공
- control plane
- container 간의 통신을 지원하는 소프트웨어. VxLAN, Pod Network 라고도 부름.
- CNI이란? (container network interface)
- 쿠버네티스 가상머신 구성
- 쿠버네티스 가상머신 스펙
- 가상머신 목록
- 클러스터 마스터 노드
- k8s-master : 10.100.0.104 로 포워딩
- 워커노드
- k8s-node1 : 10.100.0.101로 포워딩
- k8s-node2 : 10.100.0.102로 포워딩
- 클러스터 마스터 노드
- 도커 설치
- 도커 설치 명령어
sudp apt-get update sudo apt-get install -y apt-transport-https ca-certificates curl gnupg-agent software-properties-common curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add - sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" sudo apt-get update sudo apt-get install -y docker-ce docker-ce-cli containerd.io
- 도커 활성화 및 설치확인
systemctl enable docker systemctl start docker docker version
- 도커 설치 명령어
- 쿠버네티스 설치
- 참고한 링크
- 설치 명령어 ( 아직 완벽히 설치 못했음)
master node에서 kubectl get nodes를 입력하면 node1,2가 노출되지 않음- master / 워커노드 1,2 모두 입력
sudo apt update sudo sed -i "/#\$nrconf{restart} = 'i';/s/.*/\$nrconf{restart} = 'a';/" /etc/needrestart/needrestart.conf sudo apt -y upgrade -- sudo swapoff -a && sudo sed -i '/ swap / s/^\(.*\)$/#\1/g' /etc/fstab -- sudo ufw disable -- sudo tee /etc/modules-load.d/containerd.conf <<EOF overlay br_netfilter EOF -- sudo modprobe overlay sudo modprobe br_netfilter -- sudo tee /etc/sysctl.d/kubernetes.conf <<EOF net.bridge.bridge-nf-call-ip6tables = 1 net.bridge.bridge-nf-call-iptables = 1 net.ipv4.ip_forward = 1 EOF -- sudo sysctl --system -- sudo apt-get update -- sudo apt-get install -y \ ca-certificates \ curl \ gnupg \ lsb-release -- curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg -- echo \ "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu \ $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null -- sudo apt-get update sudo apt-get install -y docker-ce docker-ce-cli containerd.io -- sudo docker version -- sudo systemctl enable docker sudo systemctl start docker -- sudo systemctl enable containerd sudo systemctl start containerd -- sudo mkdir -p /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 -- sudo systemctl daemon-reload sudo systemctl restart docker -- VER=$(curl -s https://api.github.com/repos/Mirantis/cri-dockerd/releases/latest|grep tag_name | cut -d '"' -f 4|sed 's/v//g') echo $VER wget https://github.com/Mirantis/cri-dockerd/releases/download/v${VER}/cri-dockerd-${VER}.amd64.tgz tar xvf cri-dockerd-${VER}.amd64.tgz sudo mv cri-dockerd/cri-dockerd /usr/local/bin/ -- cri-dockerd --version -- wget https://raw.githubusercontent.com/Mirantis/cri-dockerd/master/packaging/systemd/cri-docker.service wget https://raw.githubusercontent.com/Mirantis/cri-dockerd/master/packaging/systemd/cri-docker.socket sudo mv cri-docker.socket cri-docker.service /etc/systemd/system/ sudo sed -i -e 's,/usr/bin/cri-dockerd,/usr/local/bin/cri-dockerd,' /etc/systemd/system/cri-docker.service -- sudo systemctl daemon-reload sudo systemctl enable cri-docker.service sudo systemctl enable --now cri-docker.socket -- sudo systemctl restart docker && sudo systemctl restart cri-docker sudo systemctl status cri-docker.socket --no-pager sudo docker info | grep Cgroup -- sudo apt-get update sudo apt-get install -y apt-transport-https ca-certificates curl -- curl -fsSL https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo gpg --dearmor -o /etc/apt/keyrings/kubernetes-archive-keyring.gpg -- echo "deb [signed-by=/etc/apt/keyrings/kubernetes-apt-keyring.gpg] https://pkgs.k8s.io/core:/stable:/v1.28/deb/ /" | sudo tee /etc/apt/sources.list.d/kubernetes.list -- curl -fsSL https://pkgs.k8s.io/core:/stable:/v1.28/deb/Release.key | sudo gpg --dearmor -o /etc/apt/keyrings/kubernetes-apt-keyring.gpg -- sudo apt-get update sudo apt-get install -y kubelet kubeadm kubectl sudo apt-mark hold kubelet kubeadm kubectl --
- master 에서만 실행
sudo kubeadm init --cri-socket unix:///var/run/cri-dockerd.sock 아래와 비슷한 메시지가 표시되면 메모장에 복사하기 kubeadm join 10.100.0.104:6443 --token e7krl6.k5bze1t2xgv8i9vc \ --discovery-token-ca-cert-hash sha256:188c3a58f5a518fc030c625472dae7fe5ed48de3550b4563d751f7be631f5aac -- mkdir -p $HOME/.kube sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config sudo chown $(id -u):$(id -g) $HOME/.kube/config -- kubectl version -- kubectl get nodes -- kubectl get pods -n kube-system --
- node 1,2 에서 실행
위에서 복사한 내용 \ --cri-socket unix:///var/run/cri-dockerd.sock
- master에서 실행
kubectl apply -f https://raw.githubusercontent.com/projectcalico/calico/v3.25.0/manifests/calico.yaml -- kubectl get nodes kubectl get pods -n kube-system
- master / 워커노드 1,2 모두 입력
설치는 되었는데, 연결이 되지 않고있습니다.
워커노드에서는 연결되었다고 뜨는데 왜 연결이 안된걸까요?? 흠...
혹시 해결하신분 댓글 부탁드립니다.(며칠을 끙끙앓았는데 해결못함)
'쿠버네티스' 카테고리의 다른 글
2-1. 쿠버네티스 설치 / 설치 없이 웹에서 실습하기. (0) | 2024.05.14 |
---|---|
쿠버네티스를 배우기 전에..... (0) | 2024.03.29 |