Vagrant 가상 머신을 사용하여 Kubernetes 작업자 노드를 제어 평면 노드에 가입시키는 방법

Vagrant 가상 머신을 사용하여 Kubernetes 작업자 노드를 제어 평면 노드에 가입시키는 방법

Vagrant와 함께 Ubuntu 18.04 가상 머신을 사용하여 Kubernetes 클러스터를 설정하고 있습니다. kubeadm join 10.0.2.15:6443 --token ...작업자 노드에서 명령을 실행하려고 할 때까지 모든 것이 잘 진행되고 오류가 발생합니다.

[preflight] Running pre-flight checks
error execution phase preflight: couldn't validate the identity of the API Server: Get "https://10.0.2.15:6443/api/v1/namespaces/kube-public/configmaps/cluster-info?timeout=10s": dial tcp 10.0.2.15:6443: connect: connection refused

kubeadm token create --print-join-command내 가설은 이것이 네트워킹 문제라는 것입니다. 왜냐하면 Control Plane 노드에서 로 지정된 IP 주소는 10.0.2.15:6443Vagrantfile의 Control Plan 노드에 대해 지정한 IP 주소가 아니기 때문입니다( 172.16.94.10, 아래 참조). 그러나 다음과 같이 kubeadm Join 명령을 수동으로 변경하더라도 sudo kubeadm join 172.16.94.10:6443 --token ...비슷한 오류가 발생합니다. 이 문제를 어떻게 해결할 수 있나요?

우분투 시스템 정보:

  System load:  0.22              Users logged in:      0
  Usage of /:   4.4% of 97.23GB   IP address for eth0:  10.0.2.15
  Memory usage: 40%               IP address for eth1:  172.16.94.10
  Swap usage:   0%                IP address for tunl0: 192.168.13.192
  Processes:    144

방랑 파일:

# -*- mode: ruby -*-
# vi: set ft=ruby :
Vagrant.configure("2") do |config|
  config.vm.box = "base"

  config.vm.define "c1-cp1" do |c1cp1|
    c1cp1.vm.box = "bento/ubuntu-18.04"
    c1cp1.disksize.size = '100GB'
    c1cp1.vm.network "private_network", ip: "172.16.94.10"
    c1cp1.vm.hostname = "c1-cp1"
    c1cp1.vm.provider "virtualbox" do |vb|
      vb.memory = "2048"
      vb.cpus = "2"
    end
  end

  config.vm.define "c1-node1" do |c1node1|
    c1node1.vm.box = "bento/ubuntu-18.04"
    c1node1.disksize.size = '100GB'
    c1node1.vm.network "private_network", ip: "172.16.94.11"
    c1node1.vm.hostname = "c1-node1"
    c1node1.vm.provider "virtualbox" do |vb|
      vb.memory = "2048"
      vb.cpus = "2"
    end
  end

end

답변1

kubeadm 초기화페이지에서 Control Plane 노드 설정 프로세스를 다시 시작하고 sudo kubeadm init --apiserver-advertise-address="172.16.94.10" --apiserver-cert-extra-sans="172.16.94.10"일반 노드 대신 사용하면 Vagrantfile에 정의된 대로 올바른 라우팅 가능한 IP 주소로 작동하도록 sudo kubeadm init구성됩니다 .kubeadm

결과는 다음과 같습니다.

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.

관련 정보