将域名服务器添加到 Google 容器优化 OS

Adding Domain Nameserver into Google Container Optimized OS

我想将自己的域名服务器添加到COS中,请问如何操作?

是否只是在/etc/dhcp/dhclient.conf中创建以下内容:

  prepend domain-name-servers <domain ip>;

我已经添加了上述配置,但我仍然无法在 COS VM 实例中使用我的域。我错过了什么吗?

没有reseting/rebooting如何在COS中重启网卡?

COS 使用“cloud-init”。如果您想将 dns 服务器作为这样的配置添加到 COS,您可以使用 cloud-init 作为在实例启动时配置实例的方法。 cloud-init 工具期望其配置在实例元数据的 user-data 键的值中。更多information1

要将 cloud-init 的配置传递给实例,您需要使用标志创建实例:--metadata-from-file user-data=[filename],或添加 user-data=[ filename] 键值对从控制台到实例,文件将存储在外部位置,如云存储,您将向其提供 URL。也可以在设置元数据时将配置复制到值部分。可以在以下 link.

中找到指定名称服务器和域的示例配置

通过用以下配置替换元数据中的 yaml 配置值(但保留“用户数据”键),您可以配置 resolv.conf 使用自定义名称服务器并让实例使用这些名称用于地址解析的服务器。

例如,您可以创建一个名为 cloud-config-resolv 的文件,其中包含以下内容:

#cloud-config

write_files:
- path: /etc/systemd/resolved.conf
permissions: "0644"
owner: root:root
content: |
# This is my custom resolv.conf!
[Resolve]
DNS= 8.8.8.8 (Use your IP)

runcmd:
- ['systemctl', 'restart', 'systemd-resolved']

然后您可以运行以下命令将[Your-IP]添加到resolv.conf。

gcloud compute instances create instance-name \
--image-family cos-stable \
--image-project cos-cloud \
--metadata-from-file user-data=cloud-config-resolv \
--zone us-central1-a

我不确定它是否会在 24 小时后持续存在,因为 dhcp 租约已续订并且所有更改都已清除。但该文件确实会在网络守护程序重新启动和 VM 重新启动时持续存在。