简介

尽管 k3s 使用起来很简单,但我很难找到一个简单的指南来在两个单独的服务器上设置服务器代理配置。在这篇文章中,我希望提供该指南,而不需要您下载任何额外的依赖项或使用除 k3s 提供的脚本之外的任何其他工具。

我使用 AWS EC2 实例作为我的虚拟机,因此说明将略微特定于 AWS,但应该适用于任何两个配置为相互通信的 Linux 服务器。

虚拟机设置

供应服务器

首先,我们需要配置两台 Linux 服务器。我使用了两个 t2.small 图像,即使只是运行示例应用程序,它也与您想要的一样低。

如果您计划多次使用这些服务器,还值得通过弹性 IP 为这些服务器分配一个永久 IP 地址。 AWS此处提供了执行此操作的说明。

登录每个虚拟机

hostname -i~/.bashrc
export k3sserver=<value of hostname -i on k3s server>
export k3sagent=<value of hostname -i on k3s agent>

进入全屏模式 退出全屏模式

我们还将使用这些值来配置 AWS 安全组。

更新 AWS 安全组

必须添加安全组规则以允许您通过 SSH 连接到您从 localhost 创建的虚拟机,以及与 k3s 服务器和代理进行 SSH 连接。下表提供了这样做的规则。

类型

端口范围

资源

目的

SSH

22

IP 来自http://checkip.amazonaws.com/

从 localhost 到服务器和代理的 SSH

所有流量

全部

$k3sserver 的价值

从服务器到代理的 SSH

设置k3s服务器和代理节点

所有流量

全部

$k3sagent 的价值

从代理到服务器的 SSH

这些规则被添加到安全组的入站规则中(可以在此处找到[的说明)。

配置SSH密钥

在 k3s 服务器和代理上,运行以下命令

cd ~/.ssh
ssh-keygen

进入全屏模式 退出全屏模式

id_rsaid_rsa.pubid_rsa.pub~/.ssh/authorized_keysid_rsa.pub~/.ssh/authorized_keys

您现在应该能够从服务器 ssh 进入代理,反之亦然。

配置虚拟机

在服务器和代理上,运行以下脚本来运行和配置 Docker。

sudo yum update -y
sudo amazon-linux-extras install -y docker
sudo systemctl enable docker.service
sudo systemctl enable containerd.service
sudo service docker start
sudo usermod -a -G docker ec2-user

进入全屏模式 退出全屏模式

visudo:/usr/local/bin
Defaults  secure_path="/usr/bin:/usr/sbin:/bin:/sbin:/usr/local/bin"

进入全屏模式 退出全屏模式

/usr/local/binsudo

服务器配置

在服务器上,运行:

curl -sfL https://get.k3s.io | sh -s - --docker
sudo chmod 755 /etc/rancher/k3s/k3s.yaml

进入全屏模式 退出全屏模式

使用以下命令确认服务器已准备就绪:

k3s kubectl get nodecontrol-plane,mastersudo service k3s status

代理配置

NODE_TOKEN/var/lib/rancher/k3s/server/node-token
curl -sfL https://get.k3s.io | K3S_URL=https://$k3sserver:6443 K3S_TOKEN=$NODE_TOKEN sh -s - --docker

进入全屏模式 退出全屏模式

使用以下命令确认代理服务正在运行:

sudo service k3s-agent status
journalctl -f -u k3s-agent.service

进入全屏模式 退出全屏模式

kubectl get nodes
kubectl label node <node name from kubectl get nodes> node-role.kubernetes.io/worker=worker

进入全屏模式 退出全屏模式

kubectl get nodes

附加读数

有大量资源可用于测试 k3s。如果您正在寻找一个起点,我推荐 Digital Ocean 的Getting Started with Containers and Kubernetes: A DigitalOcean Workshop Kit用于运行一个简单的 Flask 应用程序。

阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。