禁用或者移除 Ubuntu 中的 cloud-init

禁用或者移除 Ubuntu 中的 cloud-init

请访问原文链接:https://sysin.org/blog/disable-ubuntu-cloud-init/,查看最新版。原创作品,转载请保留出处。

作者主页:sysin.org


cloud-init 堪称自定义云实例的标准,是由 Canonical 公司(Ubuntu 的创建者)开发的开源软件。

云镜像是操作系统模板,每个实例都作为每个其他实例的相同克隆开始。正是用户数据赋予每个云实例个性,而 cloud-init 是将用户数据自动应用于您的实例的工具。

使用 cloud-init 进行配置:

  • 设置默认语言环境
  • 设置主机名
  • 生成和设置 SSH 私钥
  • 设置临时挂载点

适用于许多流行的操作系统:

虽然 cloud-init 始于 Ubuntu,但它现在可用于大多数主要的 Linux 和 FreeBSD 操作系统。 对于云镜像提供商,cloud-init 会自动处理云供应商之间的许多差异 – 例如,官方的 Ubuntu 云镜像在所有公共云和私有云中都是相同的。

非云环境,可以选择关闭它,或者彻底删除,方法如下:

方法 1: 通过创建文件禁用 cloud-init

这是最简单最安全的方法,在 /etc/cloud 目录下创建 cloud-init.disabled 文件重启后生效。删除该文件就可以恢复。

sudo touch /etc/cloud/cloud-init.disabled

#init 6
reboot

方法 2: 移除 cloud-init 软件包及文件夹

该方法彻底移除 cloud-init。

sudo apt purge cloud-init -y

sudo rm -rf /etc/cloud && sudo rm -rf /var/lib/cloud/

reboot
### 如何在Ubuntu系统上安装和配置Kubernetes集群 #### 准备工作 确保操作系统环境满足需求,在Ubuntu 22.04 LTS环境中,默认情况下Selinux处于关闭状态,这可以通过`sestatus`命令来验证[^3]。 #### 更新系统并安装必要工具 为了保持系统的稳定性和安全性,建议先更新现有软件包列表,并安装一些必要的实用程序: ```bash sudo apt update && sudo apt upgrade -y sudo apt install -y curl vim git jq htop net-tools bash-completion ``` #### 安装容器运行时(Containerd) 对于容器运行时的选择,推荐采用Containerd作为默认选项。按照官方文档指导完成安装过程,具体步骤如下所示: 1. 设置仓库: ```bash sudo mkdir -p /etc/apt/keyrings curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg echo \ "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \ $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null ``` 2. 安装 Containerd.io 并启动服务: ```bash sudo apt-get update sudo apt-get install containerd.io -y ``` 3. 配置containerd以使用Systemd cgroup驱动器: ```bash sudo mkdir -p /etc/containerd containerd config default | sudo tee /etc/containerd/config.toml sed -i 's/SystemdCgroup \= false/SystemdCgroup \= true/' /etc/containerd/config.toml systemctl restart containerd ``` #### 关闭Swap分区 由于Kubernetes不支持开启swap的情况下运行节点,因此需要禁用它: ```bash sudo swapoff -a # 如果希望永久生效,则编辑/etc/fstab文件移除或注释掉swap条目 ``` #### 安装kubeadm, kubelet 和 kubectl 利用Apt源管理器获取最新的二进制版本: ```bash curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add - echo "deb http://apt.kubernetes.io/ kubernetes-xenial main" | sudo tee /etc/apt/sources.list.d/kubernetes.list sudo apt-get update sudo apt-get install -y kubelet kubeadm kubectl sudo apt-mark hold kubelet kubeadm kubectl ``` #### 初始化Master节点 执行初始化命令创建控制平面实例,这里指定了Pod网络CIDR范围以及指定使用的cgroup driver为systemd: ```bash sudo kubeadm init --pod-network-cidr=192.168.0.0/16 --cri-socket unix:///var/run/containerd/containerd.sock ``` #### 配置kubectl访问API Server 为了让当前用户能够方便地管理和操作新建立起来的集群,需设置相应的认证信息: ```bash mkdir -p $HOME/.kube sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config sudo chown $(id -u):$(id -g) $HOME/.kube/config ``` #### 安装Pod网络插件(Calico为例) 选择合适的CNI插件是至关重要的一步,此处选用Calico实现跨主机通信能力: ```bash kubectl apply -f https://docs.projectcalico.org/v3.25/manifests/calico.yaml ``` 等待几分钟直到所有组件都正常运作之后就可以继续添加worker节点到这个集群当中去了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值