[Kubernetes] CentOS 7 Master-Worker 설치 방법

2024. 7. 25. 22:42·🔹Kubernetes
728x90
SMALL

[전제 조건] 

  • CentOS7 3대 이상 / KuberneteS 설치 완료
    • (참고 링크: https://sungbin-park.tistory.com/49)
  • 아래 내용 따라만 하면 반드시 된다

  • /etc/hosts 설정
  • master server - kubeadm init
  • worker server - kubeadm join

  • 각 서버에 /etc/hosts 추가
echo "192.168.98.159 master" >> /etc/hosts
echo "192.168.98.162 worker1" >> /etc/hosts
echo "192.168.98.161 worker2" >> /etc/hosts

master server

  • kubeadm init
    • kubeadm 을 통한 네트워크 설정을 잡는다.
    • apiserver-advertise-address : 편하게 하려면 내부아이피(privateIP 사용할 것)
    • cidr : 이것도 flannel 의 기본인 10.244.0.0/16 을 사용할 것
    • 출력 log 저장
kubeadm init --apiserver-advertise-address=[masterIP] --pod-network-cidr=10.244.0.0/16 > kubeadm_join.log

ex)
kubeadm init --apiserver-advertise-address=192.168.98.159 --pod-network-cidr=10.244.0.0/16 > kubeadm_join.log

 

  • log 확인
cat ./kubeadm_join.log
  • 아래 명령어 실행
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config

export KUBECONFIG=/etc/kubernetes/admin.conf

 

  • Network 설정
# CNI 플러그인 실행 바이너리 제공 / 모든 노드 필수!
mkdir -p /opt/cni/bin
curl -L https://github.com/containernetworking/plugins/releases/download/v1.4.0/cni-plugins-linux-amd64-v1.4.0.tgz | tar -C /opt/cni/bin -xz

# CNI 네트워크 컨트롤러(Pod) 배포 / master 에서만
kubectl apply -f https://docs.projectcalico.org/manifests/calico.yaml

 

  • 클러스터 연결 상태 확인
# kubectl get nodes
NAME     STATUS     ROLES           AGE     VERSION
master   Ready   control-plane   5m33s   v1.29.13

 

  •  해당 log 파일 worker server 로 복사
scp kubeadm_join.log root@worker1:/root
scp kubeadm_join.log root@worker2:/root

Worker Server

  • log file 가장 아래줄 확인
# cat kubeadm_join.log | tail -2
kubeadm join 192.168.98.159:6443 --token xnqph8.1ica9u1urgrs1fqm \
        --discovery-token-ca-cert-hash sha256:3dbfe304218555ef90ef4d76c47f8edaa9a1daf27e364175983a06b4c01d0c52

 

  • /etc/containerd/config.toml  수정
    • disabled_plugins = ["cri"] 주석 처리
#주석 처리
sed -i '/^disabled_plugins = \["cri"\]/ s/^/# /' /etc/containerd/config.toml

 

  • containerd 재실행
systemctl restart containerd

 

  • kubeadm_join.log 파일에 있는 명령어 실행
kubeadm join 192.168.98.159:6443 --token xnqph8.1ica9u1urgrs1fqm \
>         --discovery-token-ca-cert-hash sha256:3dbfe304218555ef90ef4d76c47f8edaa9a1daf27e364175983a06b4c01d0c52

 

  • 아래 로그 출력
[preflight] Running pre-flight checks
        [WARNING Hostname]: hostname "worker1" could not be reached
        [WARNING Hostname]: hostname "worker1": lookup worker1 on 192.168.98.2:53: no such host
[preflight] Reading configuration from the cluster...
[preflight] FYI: You can look at this config file with 'kubectl -n kube-system get cm kubeadm-config -o yaml'
[kubelet-start] Writing kubelet configuration to file "/var/lib/kubelet/config.yaml"
[kubelet-start] Writing kubelet environment file with flags to file "/var/lib/kubelet/kubeadm-flags.env"
[kubelet-start] Starting the kubelet
[kubelet-start] Waiting for the kubelet to perform the TLS Bootstrap...

This node has joined the cluster:
* Certificate signing request was sent to apiserver and a response was received.
* The Kubelet was informed of the new secure connection details.

Run 'kubectl get nodes' on the control-plane to see this node join the cluster.

 

  • cluster 확인
kubectl get nodes
NAME      STATUS   ROLES           AGE     VERSION
master    Ready    control-plane   14m     v1.29.13
worker1   Ready    <none>          4m14s   v1.29.13

 


  • 기타

설정이 이상하게 된다면 아래 두 링크 중에 해결 방법이 작성되어 있을 확률이 높다

 

https://sungbin-park.tistory.com/86

https://sungbin-park.tistory.com/87

 

[Finished]

LIST

'🔹Kubernetes' 카테고리의 다른 글

Kubernetes 설정 파일 제거  (0) 2025.02.01
Service 정의  (0) 2025.01.27
Pod 정의  (0) 2025.01.27
kubectl 명령어 분석 (매개변수)  (0) 2024.07.31
[Kubernetes] Controller 소개  (0) 2024.03.07
'🔹Kubernetes' 카테고리의 다른 글
  • Service 정의
  • Pod 정의
  • kubectl 명령어 분석 (매개변수)
  • [Kubernetes] Controller 소개
terranbin
terranbin
Studying Computer Science
  • terranbin
    Engineer
    terranbin
  • 전체
    오늘
    어제
    • 분류 전체보기 (129)
      • ☁️Cloud (42)
        • AWS (38)
        • MS Azure (4)
      • 🐳 Infra (1)
        • System (12)
        • DRBD (3)
      • 🔌Network (8)
      • 🔹Storage (8)
      • 🔹Kubernetes (15)
      • 🔹 DevOps (8)
      • 🔹Study (4)
      • 🔹Install (6)
      • 🔹ETC (2)
      • 🔹PostMan (6)
      • 🔹Openstack (3)
      • 🔹RcloneView (6)
      • 🔹Test (0)
      • 🔹Debug (2)
      • 🔹DBMS (2)
  • 블로그 메뉴

    • 홈
  • 링크

    • sungbin
    • Github
  • 공지사항

  • 인기 글

  • 태그

    rocky9
    aws dlt
    Google Drive
    distributed load testing
    S3
    terraform
    kubectl
    OpenStack
    ceph
    SAA
    kubernetes
    postman
    rocky8
    AWS
    EC2
    centos7
    rcloneview
    EBS
    network
    설치
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
terranbin
[Kubernetes] CentOS 7 Master-Worker 설치 방법
상단으로

티스토리툴바