一键部署脚本:K3S+vSphere CSI

之前分享过两篇关于使用 K10 即时恢复 Kubernetes 上应用的方法这篇这篇,这个功能对于 Kubernetes 环境还是有一些要求的。当时给大家详细分享了手工部署的过程,今天我为大家带来一个一键部署的脚本,只要有 VMware 基础环境,能够正常连接 Github/k8s.io 网络,那么这个脚本会非常方便,启动脚本后只需要等待 10 分钟左右,你就可以直接使用这个单节点的 k3s 环境了。

脚本仓库地址:

https://github.com/Coku2015/k3s_vsphere

前提条件

在使用这个脚本之前,需要提前准备一下能够用于自动化部署的镜像和虚拟机自定义规范,脚本会自动调用这个镜像和规范来部署 k3s 环境。

虚拟机镜像

我推荐使用 Ubuntu 20.04LTS 作为运行 k3s 的环境,虚拟机模版镜像的制作也推荐基于这个版本。

模版虚拟机,我一般硬件配置比较低 1vCPU,2GB 内存和 50GB 硬盘就足够了。

虚拟机模版的安装可以有多种方法,最简单直接的是用 iso 进行一个最小化的安装,在安装结束后,为了能够进行后续的全自动远程配置,需要在这个模版中做一些调整,首先是启用密钥对认证远程登录:

# 在你的Linux机器上创建远程连接的密钥对
$ ssh-keygen
# 创建完成后,你会得到id_rsa和id_rsa.pub两个文件,分别是私钥和公钥。
# 用下面这个命令远程复制到模版机器上,假设ubuntu的用户名为ubuntu
$ ssh-copy-id ubuntu@ubuntu_template_vm
# 试试拷贝完成后的效果, 正常还是会提示输入密码。
$ ssh ubuntu@ubuntu_template_vm

接下去,ssh 远程进入这台 Ubuntu 后sudo -i到 root 直接运行以下命令,进行进一步调整:

# 修改ssh密钥对登录免密码
$ sed -此处命令不全,请看置顶回复
# 重启ssh服务
$ systemctl restart sshd
# 加入sudo免密码(如果username不是ubuntu,请修改下面的命令)
echo 'ubuntu ALL=(ALL) NOPASSWD:ALL' > /target/etc/sudoers.d/ubuntu
$ curtin in-target --target=/target -- chmod 440 /etc/sudoers.d/ubuntu
# 修复 VMware 自定义配置问题,详情可以参考VMware KB56409
$ sed -i '/^[Unit]/a After=dbus.service' /lib/systemd/system/open-vm-tools.service
$ awk 'NR==11 {$0="#D /tmp 1777 root root -"} 1' /usr/lib/tmpfiles.d/tmp.conf | tee /usr/lib/tmpfiles.d/tmp.conf
# 禁用 Cloud Init
$ touch /etc/cloud/cloud-init.disabled
# 更新系统
$ apt clean
$ apt update -y
$ apt upgrade -y
# 删除machine-id,避免模版部署后同ID冲突
$ rm /etc/machine-id
$ touch /etc/machine-id

好了,这样配置完成后,退出 ssh,然后再试下 ssh 至这台模版机器,看看是否还需要密码验证,并且sudo -i试试提权是否需要密码,如果都不要,那么恭喜你,模版制作完成了。接下去只需要将这台虚拟机关机,转换成模版即可。

虚拟机自定义规范

除了制作模版之外,我们还需要配置一个虚拟机自定义规范。

  1. 在 vSphere Client 的快捷方式中,找到虚拟机自定义规范按钮,点击进入。

    一键部署脚本:K3S+vSphere CSI

  2. 点击新建按钮后,弹出一个新建向导。

  3. 设置一个名称,选择 Linux 操作系统。这个名称会在后续的脚本中使用到。

    一键部署脚本:K3S+vSphere CSI

  4. 设置计算机名称,我们选择使用虚拟机名称,表示和虚拟机同名,然后在下方域名中随便填入个合适的域名,这步不能省略,必须填上任意文字。

    一键部署脚本:K3S+vSphere CSI

  5. 选择时区,我选择我所在的亚洲 – 上海。

    一键部署脚本:K3S+vSphere CSI

  6. 自定义脚本这里不用配置,直接点下一步。

    一键部署脚本:K3S+vSphere CSI

  7. 设置网络,需要选择手动选择自定义设置,然后选择下方的网卡 1,再点击编辑,进行下一步调整。

    一键部署脚本:K3S+vSphere CSI

  8. 打开网络设置界面,在 IPV4 里,左边选择当使用规范时,提示用户输入IPv4地址,右边填入你环境中的子网掩码和网关。IPv6 默认不做配置,点击确定保存配置。

    一键部署脚本:K3S+vSphere CSI

  9. 设置 DNS,配上环境中的能上互联网的默认 DNS 服务器地址。

    一键部署脚本:K3S+vSphere CSI

  10. 点击完成保存设置。

    一键部署脚本:K3S+vSphere CSI

这样自定义规范机配置好了,可以在后续的脚本中直接调用第一步设置的名称使用了。

脚本使用说明

脚本使用环境拓扑介绍:

一键部署脚本:K3S+vSphere CSI

在 Linux 控制机上,使用 git clone 下载脚本仓库。

$ git clone https://github.com/Coku2015/k3s_vsphere.git

下载后进入脚本目录:

cd k3s_vsphere

用 vi 编辑器打开脚本,找到脚本开头部分,修改其中的环境变量参数。

#######################  Environment Variables Section  ######################
###  Modify the following environment variables to match your environment  ###
MY_SSH_USER="ubuntu"
MY_VSPHERE_SERVER="172.16.0.100"
MY_VSPHERE_USERNAME="administrator@vsphere.local"
MY_VSPHERE_PASSWORD="VMware123!"
MY_DATACENTER="MyDatacenter"
MY_VM_TEMPLATE="Ubuntu20.04LTS"
MY_DATASTORE="localdatastore"
#######################  Environment Section End   ###########################

其中第一个 MY_SSH_USER 是 Ubuntu 模版的用户名,其他信息都是比较常规的 vSphere 访问信息,根据实际情况填写即可。

填写完成后,保存退出,然后就能执行脚本啦,对了,还需要注意,脚本运行需要 root 权限安装相关软件。

执行命令运行脚本:

$ bash deploy_k3s_with_vspherecsi.sh

这时候会提示输入一些本次自动部署的配置,一共三个,第一个为部署的虚拟机名称,只需要输入一个前缀,脚本会自动为虚拟机名称加上 4 个随机数字作为唯一标识;第二个为虚拟机的 IP 地址,根据自己环境的空闲 IP 地址情况按实际情况输入即可;第三个为 k3s 的版本,可以到 k3s 官网查询相关需要的版本,理论上任何 stable 版本都能支持:

+----------------------------------------------------------------------+
|              K3S with vSphere CSI automation script                  |
+----------------------------------------------------------------------+
|  This script is used to create a single node k3s cluster on vSphere. |
+----------------------------------------------------------------------+
|  Intro: https://blog.backupnext.cloud                                |
|  Bug Report: Lei.wei@veeam.com                                       |
+----------------------------------------------------------------------+

Please enter the VM name:
(Default VM name will be ‘k3s-cluster-<4 random number>’):
Please enter the IP address for the VM:
(Default IP address will be ‘192.168.1.<random number>’):10.10.1.103
Please enter the k3s version:
(Default version will be ‘v1.28.6+k3s2’):v1.27.10+k3s2

输入完成后,脚本就开始自动部署了,大约 10 分钟左右,你就能像我一样获得一个直接可以使用的 k3s 测试环境了。

一键部署脚本:K3S+vSphere CSI



原文始发于微信公众号(虚化人生):一键部署脚本:K3S+vSphere CSI

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/225511.html

(0)
小半的头像小半

相关推荐

发表回复

登录后才能评论
极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!