KVM虚拟机部署K8S重启后/etc/hosts内容丢失
2024-01-01 12:40:37
前言
使用KVM开了虚拟机部署K8S,部署完成后重启,节点的pod等信息无法获取到,查看报错初步推测为域名解析失效,查看/etc/hosts后发现安装k8s时添加的内容全部消失
网上搜索一番之后发现了
如果直接修改 /etc/hosts 文件,重启后会还原丢失修改,原因是腾讯云默认使用了 Cloud-Init 进行初始化操作。
官方说明参见:https://cloud.tencent.com/document/product/213/34698
官方描述中说 "2018年9月后使用公共镜像创建的实例不会出现?/etc/hosts?配置在重启后被覆盖的问题"。
然而实际还是会被覆盖。
据我所知腾讯云之类的云服务商大部分都是kvm虚拟化,我推测也可能是采用了 Cloud-Init 进行初始化操作。
所以就手动修改 Cloud-Init 模板:
cd /etc/cloud/templates ls
会看到很多?hosts.***.tmpl 文件,根据你的Linux发行版进行修改。
为了防止小白问找不到自己发行版,所以这里解释一下:
Ubuntu 是基于 Debian 的衍生版,CentOS7 是 RedHat 源码遵循GPL再编译的版本,CentOS8 以后是 RedHat 的试验田版本。
所以这样就明白了吧。假设你是 CentOS,就修改 "hosts.redhat.tmpl"。
sudo vim hosts.redhat.tmpl
根据你的需要进行修改:
## template:jinja {# This file /etc/cloud/templates/hosts.redhat.tmpl is only utilized if enabled in cloud-config. Specifically, in order to enable it you need to add the following to config: manage_etc_hosts: True -#} 127.0.0.1 {{fqdn}} {{hostname}} 127.0.0.1 localhost.localdomain localhost 127.0.0.1 localhost4.localdomain4 localhost4 ::1 {{fqdn}} {{hostname}} ::1 localhost.localdomain localhost ::1 localhost6.localdomain6 localhost6
完成后重启服务器就会根据模板重新加载 Hosts。
sudo reboot
文章来源:https://blog.csdn.net/cjj2006/article/details/135323389
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!