Google GKE启动脚本不适用于GKE节点

时间:2020-10-07 11:31:06

标签: google-cloud-platform terraform google-kubernetes-engine

我正在使用terraform向我的GKE节点添加启动脚本

provider "google" {
  project = var.project
  region  = var.region
  zone    = var.zone
  credentials = "google-key.json"
}


terraform {
  backend "gcs" {
    bucket = "tf-state-bucket-devenv"
    prefix = "terraform"
    credentials = "google-key.json"
   }
}

resource "google_container_cluster" "primary" {
  name     = var.kube-clustername
  location = var.zone
  remove_default_node_pool = true
  initial_node_count       = 1

  master_auth {
    username = ""
    password = ""

    client_certificate_config {
      issue_client_certificate = false
    }
  }
}

resource "google_container_node_pool" "primary_preemptible_nodes" {
  name       = var.kube-poolname
  location   = var.zone
  cluster    = google_container_cluster.primary.name
  node_count = var.kube-nodecount

  node_config {
    preemptible  = var.kube-preemptible
    machine_type = "n1-standard-1"
    disk_size_gb = 10
    disk_type = "pd-standard"


    metadata = {
      disable-legacy-endpoints = "true",
      startup_script = "cd /mnt/stateful_partition/home && echo hi > test.txt"
    }

    oauth_scopes = [
      "https://www.googleapis.com/auth/logging.write",
      "https://www.googleapis.com/auth/monitoring",
    ]
  }
}

当我进入GCP界面时,选择节点并查看元数据,我可以看到其中的键/值

metadata_startup_script 
#!/bin/bash sudo su && cd /mnt/stateful_partition/home && echo hi > test.txt

但是,在节点上运行以下命令时-

sudo google_metadata_script_runner-脚本类型启动- -调试

我得到了以下内容-

startup-script: INFO Starting startup scripts.
startup-script: INFO No startup scripts found in metadata.
startup-script: INFO Finished running startup scripts.

有人知道为什么该脚本无法运行/显示吗? -是因为它是GKE节点,而google不允许您编辑它们,所以我实际上在他们的文档中找不到他们具体说的任何内容。

2 个答案:

答案 0 :(得分:1)

您不能指定要在GKE节点上运行的启动脚本。该节点具有内置的启动序列,以初始化该节点并将其加入集群,并确保该节点正常运行(例如,确保当您请求100个节点时获得100个功能节点),您不能向该节点添加其他逻辑。启动顺序。

作为替代,您可以创建一个在所有节点上运行的DaemonSet,以执行节点级初始化。这样的优点之一是,如果您想更改它们的配置方式,则可以对其DaemonSet进行调整,然后将其重新应用到现有节点(而无需重新创建它们)。

答案 1 :(得分:0)

用此metadata_startup_script替换此元数据键名称startup_script

此外,您的启动脚本以root用户身份运行。您不需要执行sudo su