创建腾讯云集群
#
概述本文介绍了如何在腾讯云 CVM 中创建和初始化 K3s 集群,以及为已有的 K3s 集群添加节点的操作步骤。除此之外,本文还提供了在腾讯云 CVM 上运行 AutoK3s 的进阶操作指导,如配置私有镜像仓库、启用腾讯云 CCM(Cloud Controller Manager)和启用 UI 组件。
#
前置要求#
设置 CAM您需要以下权限来访问腾讯云,因此需要确保为 CVM 实例创建以下 CAM 规则。
#
设置安全组CVM 实例至少需要应用以下安全组规则:
#
UI 使用说明接下来我们将基于 AutoK3s 本地 UI 介绍如何使用 AutoK3s 工具,在腾讯云 CVM 主机上创建和管理 K3s 集群。如果您想了解 CLI 的使用,请移步到 CLI 使用说明
您可以通过快速体验中的描述,通过 Docker 或者 CLI 启动本地 UI,打开浏览器,访问目标端口 8080
即可。
#
快速创建集群您可以使用快速创建功能,在指定的云提供商服务中,快速启动一个K3s集群。
由于 rancher.cn
域名正在备案中,因此使用默认的 https://rancher-mirror.rancher.cn/k3s/k3s-install.sh
地址部署集群会出现部署失败情况。如果发生此类问题,请使用以下方式解决: --k3s-install-script=https://rancher-mirror.rancher.cn/k3s/k3s-install.sh
。
以下图为例,我们将在 tencent CVM 使用默认配置创建一个单节点的 K3s 集群,CVM 虚拟机会在 ap-guangzhou
区域中创建。
表 1:快速创建参数
参数 | 说明 | 默认值 |
---|---|---|
Provider | 云提供商名称 | tencent |
Name | K3s集群名称 | |
Master | Master 节点数量 | 1 |
Worker | Worker 节点数量 | 0 |
Access Key | 云提供商的Access Key 访问密钥 | |
Secret Key | 云提供商的Secret Key 访问密钥 | |
Region | 虚拟机所在的区域(在快速创建页面不允许编辑默认区域,您可以通过模板功能修改默认参数配置) | ap-guangzhou |
Zone | 虚拟机所在的地区 | ap-guangzhou-3 |
#
自定义参数创建如果您不想使用默认的配置,可以点击 Advance 按钮,进入自定义参数页面进行更多参数的设置。 或者您可以在集群列表页点击 Create 按钮进入自定义参数页面进行更多参数的设置。
使用 tencent 云提供商创建 K3s 集群的自定义参数配置分为四项,云供应商访问凭证、云提供商对应实例配置、K3s集群配置、高级选项。接下来对每个配置项进行详细说明。
#
云提供商访问凭证表 2:云提供商访问凭证参数
参数 | 说明 |
---|---|
Provider | 云提供商名称 |
Name | K3s集群名称 |
Access Key | 云提供商的Access Key 访问密钥 |
Secret Key | 云提供商的Secret Key 访问密钥 |
#
实例配置实例配置主要配置的内容为对应云提供商虚拟机的配置,例如实例运行区域、地区、使用的操作系统类型、实例规格、网络配置等信息。
表 3:实例配置参数
参数 | 说明 | 默认值 |
---|---|---|
Region | 腾讯云 CVM 区域 | ap-guangzhou |
Zone | 腾讯云 CVM 地区 | ap-guangzhou-3 |
Instance Type | 腾讯云 CVM 实例规格 | SA1.MEDIUM4 (2vCPU/4GiB) |
Image | 腾讯云 CVM 系统映像 ID | img-pi0ii46r (Ubuntu 18.04) |
Disk Category | 根磁盘卷类型 | CLOUD_SSD |
Disk Size | 根磁盘卷大小 | 50 (GiB) |
Spot | 是否使用竞价实例 | false |
VPC ID | VPC ID(如果您不设置,AutoK3s 将为您创建名称为 autok3s-tencent-vpc 的VPC) | |
Subnet ID | 子网 ID(如果您不设置,AutoK3s会自动在 autok3s-tencent-vpc 下创建默认子网) | |
Internet Max Bandwidth Out | 网络带宽 | 5(MB) |
Security Group Ids | 安全组(如果您不选择任何安全组,AutoK3s 将为您自动创建名称为 autok3s 的默认的安全组) | |
EIP | 是否使用弹性公网IP | false |
Keypair Id | 密钥对名称(如果您不设置密钥对,AutoK3s 将自动为您生成一个密钥对) | |
SSH User | SSH 用户 | ubuntu |
SSH Port | SSH 端口 | 22 |
SSH Key Path | 如果您选择了已有的密钥对,需要指定SSH 私钥目录,如果您使用AutoK3s 自动生成的密钥,这里可以不填写任何内容 | |
SSH Key Passphrase | 如果您的私钥需要密码验证,请在这里输入密码 | |
SSH Password | 如果您使用Password连接到虚拟机,请输入密码 | |
SSH Agent Auth | 如果您配置 SSH 代理程序,可以开启此项配置 | false |
SSH Cert Path | 如果您配置了 ssh certificate,在这里您需要将 certificate path 传入进来,以保证 AutoK3s 可以通过ssh连接到远程虚拟机 | |
Tags | 虚拟机标签 | |
User Data | 配置实例的自定义数据 |
#
K3s 参数配置K3s 参数配置项主要对 K3s 集群进行设置,例如是否部署 HA 模式、K3s 安装版本等。
表 4:K3s 配置参数
参数 | 说明 | 默认值 |
---|---|---|
K3s Channel | 用于获取 K3s 下载 URL 的通道。选项包括:stable , latest , testing 。 | stable |
K3s Version | 安装的 K3s 版本,如果设置则覆盖 Channel 选项 | |
Cluster | 启用嵌入式 DB 高可用 K3s(即开启 --cluster-init 设置) | false |
Datastore | 指定 etcd、Mysql、Postgres 或 Sqlite(默认)数据源名称 | |
K3s Install Script | K3s 安装脚本 | https://rancher-mirror.rancher.cn/k3s/k3s-install.sh |
Master | Master 节点数量 | |
Master Extra Args | Master 节点额外参数设置,例如 --no-deploy traefik | |
Worker | Worker 节点数量 | |
Worker Extra Args | Worker 节点额外参数设置,例如 --node-taint key=value:NoExecute | |
IP | K3s server IP,用于加入已有集群 | |
Token | 用于将server或agent加入集群的共享secret,如果不设置,会自动生成一个Token | |
Manifests | 自动部署应用清单目录,这里支持设置某个manifest文件或者包含多个manifest文件的目录路径(仅支持一层目录),具体功能可查看这里 | |
TLS Sans | 在 TLS 证书中添加其他主机名或 IP 作为主题备用名称,具体功能可查看这里 | |
Registry | 私有镜像仓库配置 |
#
高级选项配置要开启的 UI 组件(kubernetes-dashboard/kube-explorer),以及是否部署腾讯云 Cloud Provider。
表 4:高级选项
参数 | 说明 | 默认值 |
---|---|---|
UI | 开启的 UI 组件(Kubernetes Dashboard/kube-explorer) | |
Cloud Controller Manager | 是否部署腾讯云 Cloud Provider | false |
Network Route Table Name | 如果开启 CCM,需要配置路由名称,配置方法请参考这里 |
#
集群模板您可以使用模板功能,提前预置好常用的集群模板,每次创建集群时可以用模板参数进行填充,极大精简了重复操作。一次编写,多次运行,提升效率。
创建集群模板的参数与上面描述的自定义参数创建集群的表单内容相同,在这里不做赘述。
您可以选择最常用的模板,点击右侧下拉框中的 Set Default 按钮,将模板设置为默认模板。
设置为默认模板后,您可以通过快速创建功能一键部署常用配置的 K3s 集群。
如果您想使用其他模板创建集群,您还可以在快速创建页面的右上角,或者在自定义创建集群的右上角筛选模板,点击 Fill Form 按钮后,会自动根据模板内容填充表单。
#
集群管理您可以在集群列表页查看和管理使用 AutoK3s 创建的 K3s 集群。
#
添加节点选中您要添加节点的集群,点击右侧下拉菜单中的 Join Node 按钮,在弹出的窗口中设置要添加的节点数量即可。
#
集群升级选中您要升级的集群,点击右侧下拉菜单中的 Upgrade 按钮,在弹出窗口中会显示您当前集群配置的版本信息,例如下图示例中,显示集群版本为 v1.19.16+k3s1
。
如果我们要将集群升级到 v1.20.15+k3s1
,则修改 Version 为指定版本号即可;如果想要将集群升级到最新的stable版本,则删除掉 Version 指定的版本号。
选择要升级的版本后,点击 Upgrade 按钮,等待集群升级完成。
#
Kubectl如果您想操作 K3s 集群数据,可以点击右上角 Launch Kubectl 按钮,在下拉框中选择要操作的集群后,便可以在 UI 控制台操作选中的集群了。
#
下载 Kubeconfig 文件如果您想在其他地方管理集群,可以单独下载指定集群的 Kubeconfig 文件。点击指定集群右侧下拉菜单中的 Download KubeConfig 按钮,在弹出窗口中选择复制或下载文件。
#
SSH如果您想连接到远程主机进行操作,您可以在集群列表页面点击集群名称,进入详情页面,选择要连接的主机,点击右侧 Execute Shell 按钮。
#
开启 kube-explorer dashboard您可以在创建集群时,通过 Additional Options 选择 explorer 选项开启 kube-explorer 功能。
也可以通过右侧下拉菜单中选择 Enable Explorer 功能来开启 kube-explorer。
开启后,在集群列表会增加 dashboard 跳转链接按钮,点击跳转链接便可以访问 kube-explorer dashboard 页面了。
#
关闭 kube-explorer dashboard对于已经开启了 kube-explorer 功能的集群,可以在右侧下拉菜单中选择 Disable Explorer 功能来关闭 kube-explorer 服务。
#
CLI 使用说明在使用命令之前,您需要设置访问凭证。
如想了解更多参数,请运行autok3s <sub-command> --provider tencent --help
命令。
#
创建普通集群运行以下命令,在腾讯云 CVM 上创建并启动创建一个名为 “myk3s”的集群,并为该集群配置 1 个 master 节点和 1 个 worker 节点。
#
创建高可用 K3s 集群创建高可用集群的命令分为两种,取决于您选择使用的是内置的 etcd 还是外部数据库。
#
嵌入式 etcd(k3s 版本 >= 1.19.1-k3s1)运行以下命令,在腾讯云 CVM 上创建并启动创建了一个名为“myk3s”的高可用 K3s 集群。
#
外部数据库在高可用模式下使用外部数据库,需要满足两个条件:
- master 节点的数量不小于 1。
- 需要提供外部数据库的存储路径。
所以在以下的代码示例中,我们通过--master 2
指定 master 节点数量为 2,满足 master 节点的数量不小于 1 这个条件;且通过--datastore "PATH"
指定外部数据库的存储路径,提供外部数据库的存储路径。
运行以下命令,在腾讯云 CVM 上创建并启动创建了一个名为“myk3s”的高可用 K3s 集群:
#
添加 K3s 节点请使用autok3s join
命令为已有集群添加 K3s 节点。
#
普通集群运行以下命令,为“myk3s”集群添加 1 个 worker 节点。
#
高可用 K3s 集群#
删除 K3s 集群删除一个 k3s 集群,这里删除的集群为 myk3s。
#
查看集群列表显示当前主机上管理的所有 K3s 集群列表。
#
查看集群详细信息显示具体的 k3s 信息,包括实例状态、主机 ip、集群版本等信息。
注意:如果使用不同的 provider 创建的集群名称相同,describe 时会显示多个集群信息,可以使用
-p <provider>
对 provider 进一步过滤。例如autok3s describe -n myk3s -p tencent
#
Kubectl集群创建完成后, autok3s
会自动合并 kubeconfig
文件。
在多个集群的场景下,可以通过切换上下文来完成对不同集群的访问。
#
SSHSSH 连接到集群中的某个主机,这里选择的集群为 myk3s。
#
升级 K3s 集群您可以使用以下命令将指定的 K3s 集群升级到 latest
版本
如果您想将 K3s 集群升级到指定版本,可以指定 --k3s-version
#
进阶使用AutoK3s 集成了一些与当前 provider 有关的高级组件,例如私有镜像仓库、CCM 和 UI。
#
配置私有镜像仓库在运行autok3s create
或autok3s join
时,通过传递--registry /etc/autok3s/registries.yaml
参数以使用私有镜像仓库,例如:
使用私有镜像仓库的配置请参考以下内容,如果您的私有镜像仓库需要 TLS 认证,autok3s
会从本地读取相关的 TLS 文件并自动上传到远程服务器中完成配置,您只需要完善registry.yaml
即可。
#
启用腾讯云 CCM(Cloud Controller Manager)如果启用 CCM,您需要提前创建好集群路由表,以便 POD 可以通过 VPC 正常通信,并将路由表的名称通过--router
参数传入。
autok3s 默认使用的 cluster cidr 为10.42.0.0/16
,您需要为该网段创建路由表。
您可以通过route-ctl(又名“routecontroller”)创建。
接下来将上面创建好的<your-route-table-name>
作为--router
参数。这里注意--vpc 也要使用创建 router 的 vpc id。
在您删除集群后,集群路由不会自动删除,您可以使用route-ctl(又名“routecontroller”)手动删除。
#
启用 UI 组件AutoK3s 支持两种 UI 组件,包括 kubernetes-dashboard 和 kube-explorer
#
开启 kubernetes dashboard访问 Token 等设置请参考 此文档 。
#
开启 kube-explorer您可以通过 http://127.0.0.1:9999 访问 kube-explorer dashboard 页面。