Kubernetes 如何加入我的gcp群集中的工作节点

Kubernetes 如何加入我的gcp群集中的工作节点,kubernetes,terraform,google-kubernetes-engine,terraform-provider-gcp,Kubernetes,Terraform,Google Kubernetes Engine,Terraform Provider Gcp,我正在尝试创建我自己的k8s集群用于培训目的。我已使用kubedam安装了kubernetes,并且我的主节点已准备就绪: NAME STATUS ROLES AGE VERSION master-1 Ready master 54s v1.19.4 现在,我正在尝试使用join命令和kubeadm init末尾给出的令牌连接我的worker实例,但在执行该命令时出现以下错误: sudo kubeadm join my-master-node-ip-

我正在尝试创建我自己的k8s集群用于培训目的。我已使用kubedam安装了kubernetes,并且我的主节点已准备就绪:

NAME       STATUS   ROLES    AGE   VERSION
master-1   Ready    master   54s   v1.19.4
现在,我正在尝试使用join命令和
kubeadm init
末尾给出的令牌连接我的worker实例,但在执行该命令时出现以下错误:

sudo kubeadm join my-master-node-ip-here:6443 --token xxxx.xxxxxxxxxxxx \
    --discovery-token-ca-cert-hash sha256:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
错误:

[飞行前]运行飞行前检查
[警告IsDockerSystemdCheck]:检测到“cgroupfs”作为Docker cgroup驱动程序。推荐的驱动程序为“systemd”。请按照以下指南操作:https://kubernetes.io/docs/setup/cri/
[警告系统验证]:缺少可选cgroup:hugetlb
错误执行阶段预飞行:无法验证API服务器的标识:Get“https://my-master-node-ip-here:6443/api/v1/namespaces/kube-public/configmaps/cluster info?超时=10s“:net/http:请求已取消
等待连接时(等待标头时超出Client.Timeout)
要查看此错误的堆栈跟踪,请使用--v=5或更高值执行
我已经为pod网络使用了Weave

kubectl apply -f "https://cloud.weave.works/k8s/net?k8s-version=$(kubectl version | base64 | tr -d '\n')"
对于Terraform,这两个实例位于同一个VPC中,称为
k8s节点

network.tf

resource "google_compute_network" "vpc_network" {
  name = "k8s-node"
}

# We create a public IP address for our google compute instance to utilize
resource "google_compute_address" "static" {
  name = "vm-public-address"
}
resource "google_compute_instance" "default" {
    name = var.vm_name
    machine_type = "e2-standard-2"
    zone = "europe-west1-b"

    boot_disk {
        initialize_params {
            image = "debian-cloud/debian-9"
        }
    }

    network_interface {
        network = var.network
        access_config {
            // Include this section to give the VM an external IP address
        }
    }

    metadata_startup_script = file("./scripts/bootstrap.sh")

    tags = ["node"]
}
instance.tf

resource "google_compute_network" "vpc_network" {
  name = "k8s-node"
}

# We create a public IP address for our google compute instance to utilize
resource "google_compute_address" "static" {
  name = "vm-public-address"
}
resource "google_compute_instance" "default" {
    name = var.vm_name
    machine_type = "e2-standard-2"
    zone = "europe-west1-b"

    boot_disk {
        initialize_params {
            image = "debian-cloud/debian-9"
        }
    }

    network_interface {
        network = var.network
        access_config {
            // Include this section to give the VM an external IP address
        }
    }

    metadata_startup_script = file("./scripts/bootstrap.sh")

    tags = ["node"]
}

工人似乎无法连接到主实例,我的配置中是否遗漏了什么?

为了解决这个问题,我在teraform和open port中添加了一个防火墙规则
6443

资源“谷歌计算网络”“专有网络”{
name=“k8s节点”
}
资源“谷歌计算防火墙”“默认”{
name=“k8s防火墙”
network=google\u compute\u network.vpc\u network.name
容许{
协议=“icmp”
}
容许{
协议=“tcp”
端口=[“80”,“6443”]
}
source_标记=[“节点”]
}

听起来像是内部网络错误@ingernet谢谢,事实上这是相关的,这是一个防火墙问题