运行 shell 通过 terraform 在 AKS 节点池上的脚本或自定义数据

Run shell script or custom data on AKS node pool via terraform

我想通过 Terraform 脚本在 AKS 节点池上 运行 shell 脚本或自定义数据。我 运行 shell 通过 VMSS(虚拟机规模集)上的自定义数据通过 terraform.Similarly 脚本我想通过 AKS 节点池 运行 相同的 shell 脚本.我搜索了很多 link 和方法,但找不到任何解决方案。有什么办法或推荐这个吗?感谢您 help.I 一个月以来一直在尝试此解决方案,但未能找到合适的解决方案。

我已经通过 deamonset 和带有 nodeinstaller 的 configmap 得到了我的解决方案。 下面的链接确实对我有帮助,但不是通过 terraform,因为 AKS 不支持通过 terraform 自动化的自定义脚本。()

参考链接:https://medium.com/@patnaikshekhar/initialize-your-aks-nodes-with-daemonsets-679fa81fd20e

https://github.com/patnaikshekhar/AKSNodeInstaller

daemonset.yml

apiVersion: v1
kind: Namespace
metadata:
  name: node-installer
---
apiVersion: apps/v1
kind: DaemonSet
metadata:
  name: installer
  namespace: node-installer
spec:
  selector:
    matchLabels:
      job: installer
  template:
    metadata:
      labels:
        job: installer
    spec:
      hostPID: true
      restartPolicy: Always
      containers:
      - image: patnaikshekhar/node-installer:1.3
        name: installer
        securityContext:
          privileged: true
        volumeMounts:
        - name: install-script
          mountPath: /tmp
        - name: host-mount
          mountPath: /host
      volumes:
      - name: install-script
        configMap:
          name: sample-installer-config
      - name: host-mount
        hostPath:
          path: /tmp/install

sampleconfigmap.yml

apiVersion: v1
kind: ConfigMap
metadata:
  name: sample-installer-config
  namespace: node-installer
data:
  install.sh: |
    #!/bin/bash

    # install newrelic-infra
    echo "license_key: #{NEW_RELIC_LICENSE_KEY}#" | sudo tee -a /etc/newrelic-infra.yml
    echo "enabled: #{NEW_RELIC_INFRA_AGENT_ENABLED}#" | sudo tee -a /etc/newrelic-infra.yml

    curl -s https://download.newrelic.com/infrastructure_agent/gpg/newrelic-infra.gpg | sudo apt-key add -
    printf "deb https://download.newrelic.com/infrastructure_agent/linux/apt bionic main" | sudo tee -a /etc/apt/sources.list.d/newrelic-infra.list
    sudo apt-get update -y
    sudo apt-get install newrelic-infra -y
    sudo systemctl status newrelic-infra
    echo "Newrelic infra agent installation is done"

    # enable log forwarding
    echo "logs:" | sudo tee -a /etc/newrelic-infra/logging.d/logs.yml
    echo "  - name: log-files-in-folder" | sudo tee -a /etc/newrelic-infra/logging.d/logs.yml
    echo "    file: /var/log/onefc/*/*.newrelic.log" | sudo tee -a /etc/newrelic-infra/logging.d/logs.yml
    echo "    max_line_kb: 256" | sudo tee -a /etc/newrelic-infra/logging.d/logs.yml

    # trigger log forwarding
    sudo newrelic-infra-ctl