我尝试以下步骤来设置 k3s 集群。
以下是在 Azure VM 上创建具有私有和公共 IP 地址的 K3s 集群并使用 kubectl 从笔记本电脑访问它的步骤:
创建以 Ubuntu 20.04 LTS 为操作系统的 Azure VM。您可以使用 Azure 门户或 Azure CLI 来执行此操作。确保启用 SSH 访问并为 VM 分配私有和公共 IP 地址。记下 VM 的公共 IP 地址,我们稍后会用到它。有关更多详细信息,请参阅本文。
使用公共 IP 地址和 SSH 密钥或密码通过 SSH 连接到虚拟机。您可以使用任何 SSH 客户端(如 PuTTY 或 OpenSSH)来执行此操作。例如,如果您的公共 IP 是 52.183.103.99,您的用户名是 azureuser,您可以在笔记本电脑上运行以下命令:
远程控制[电子邮件保护]
使用官方安装脚本在虚拟机上安装 K3s。您可以使用 curl 或 wget 下载并运行该脚本。例如,您可以在虚拟机上运行以下命令:
curl -sfLhttps://get.k3s.io| 嘘 -
这会将 K3s 安装为 systemd 服务并自动启动。你可以运行以下命令检查服务状态:
sudo systemctl status k3s
将 /etc/rancher/k3s/k3s.yaml 文件从虚拟机复制到您的笔记本电脑,作为 ~/.kube/config。此文件包含 kubectl 连接到您的 K3s 集群的配置。您可以使用 scp 或 rsync 复制该文件。例如,您可以在笔记本电脑上运行以下命令:
SCP[电子邮件保护]:/etc/rancher/k3s/k3s.yaml ~/.kube/config
编辑笔记本电脑上的 ~/.kube/config 文件,将服务器字段的值替换为 Azure VM 的公共 IP 地址。例如,如果您的公共 IP 是 20.59.22.167,则服务器字段应如下所示:
如果您还没有安装 kubectl,请将其安装在您的笔记本电脑上。您可以按照本指南在不同的操作系统上安装 kubectl。
通过在笔记本电脑上运行一些 kubectl 命令来测试与 K3s 集群的连接。例如,你可以运行此命令来获取集群中的节点:
kubectl 获取节点
你应该看到类似这样的内容:
名称状态角色年龄版本 k3s-vm 就绪控制平面,主控 10m v1.22.4+k3s1
我收到以下错误。
E0823 18:45:36.742249 20384 memcache.go:265] 无法获取当前服务器 API 组列表:获取“https://20.59.22.167:6443/api?timeout=32s”:tls:无法验证证书:x509:证书对 10.43.0.1、127.0.0.1、172.17.0.4、::1 有效,对 20.59.22.167 无效无法连接到服务器:tls:无法验证证书:x509:证书对 10.43.0.1、127.0.0.1、172.17.0.4、::1 有效,对 20.59.22.167 无效
20.59.22.167 是我的虚拟机的公网 IP。
我按照以下步骤进行操作关联。
有人能给我一步步说明如何在 Azure VM 上创建具有私有 IP 和公共 IP 的 K3S 集群吗?因此,一旦我将 k3s.yaml 文件复制到我的笔记本电脑并在其中设置公共 IP,它应该可以正常工作
答案1
由于您已经将 k3s.yaml 文件从远程复制到本地计算机,并正确修改了服务器密钥,如下所示server: https://20.59.22.167:6443
您只需要在服务器 tls 证书上将 ip 地址作为主题备用名称添加到您的主机名中即可,您只需:
- 以 root 身份启动新 shell
sudo -i
- 之后,在你的服务器 k3s tls 证书上添加你的主机名
k3s server --tls-san "20.59.22.167"