您的 k3s 服务器上安装什么?
- k3s,来自官方安装程序的 stable 通道,安装时使用的是当前版本
- 单节点集群,Kubernetes API 在 6443 端口,证书中包含您的 IP
- Traefik ingress 控制器,在 80 和 443 端口
- 随 k3s 一起捆绑提供的组件:CoreDNS、local-storage 和 metrics-server
- k3s 自带的 containerd 运行时,未安装 Docker
- 位于 /etc/rancher/k3s/k3s.yaml 的 kubeconfig 文件,只有 root 可读
- 防火墙开放 22、80、443 和 6443 端口,并放行 Pod 和 Service 网络
k3s 需要多大的配置?
k3s 官方文档要求服务器节点至少 2 个 CPU 核心和 2 GB RAM,所以本安装从 2 核起步。k3s 在 2 GB 上能运行,但留给您应用的空间很少。经验上,几个小型 Pod 可以考虑 4 GB,带数据库或更多服务则用 8 GB。RAM 和 CPU 可以在面板中增加;服务器会重启一次,数据和 IP 保持不变。持久卷仍在同一块磁盘上。
| 用途 | 配置 | 价格 | 选择 |
|---|---|---|---|
| 入门 | 2 GB RAM · 2 vCore · 40 GB NVMe | $4.51/月 | |
| 中等 | 4 GB RAM · 2 vCore · 60 GB NVMe | $6.89/月 | |
| 强劲 | 8 GB RAM · 4 vCore · 120 GB NVMe | $13.62/月 |
适合谁?
- 想在自己的集群上学习 Kubernetes 的开发者
- 用 manifest 或 Helm 发布小型应用的团队
- 用 kubectl 部署的流水线
- 想在真实服务器上测试本地 manifest 的人
下单之后会发生什么?
- 把 CPU 设置为至少 2 核,选择您的配置并完成付款。
- 服务器启动后,k3s 会自行安装。在“概览”标签页上,等待“应用”一行显示 k3s 已就绪。
- 获取文件:scp root@IP:/etc/rancher/k3s/k3s.yaml ~/.kube/config。这会覆盖已有的文件,所以请先复制一份。
- 在文件的 server 一行中,把 127.0.0.1 替换为您服务器的 IP 地址。
- 试一试:kubectl get nodes。节点应显示 Ready。
- 部署您的应用,并用 Ingress 把它开放到 80 和 443 端口。
每台服务器都包含
- 价格含每日备份
- 不限流量
- 完整 root 权限
- 之后可升级或降配 RAM 和 CPU,并扩大磁盘
- 位置:Istanbul · IST-1。
须知
- k3s.yaml 是集群的完全访问密钥,请不要分享。6443 端口对互联网开放,访问使用此文件中的证书;您可以用 ufw 把它限制为只允许您自己的 IP。
- 集群只有一个节点,所以服务器重启时,您的应用会短暂中断。
- k3s 每次启动时都会续期管理员 kubeconfig 中的证书。请时不时重新获取本地副本,以免它过期。
- 本安装不会添加证书管理器。若要给 Ingress 启用 HTTPS,您需要自己定义证书。
- 升级不会自动进行。官方方式是用相同的设置重新运行安装程序,因为漏掉的设置会丢失。
- 第二个节点需要 8472/UDP 和 10250/TCP。官方文档说不应把 8472 暴露到互联网,所以只允许那台服务器的 IP 地址。
k3s 常见问题
k3s 是什么?它与 Kubernetes 有什么不同?
k3s 是完全符合标准的轻量级 Kubernetes 发行版。kubectl 和您的 manifest 的用法相同。Traefik、CoreDNS 和本地存储等组件随 k3s 一起安装,不需要另外添加。
k3s 需要多少 RAM?
官方文档要求服务器节点至少 2 核和 2 GB RAM。经验上,2 GB 足够运行 k3s 本身,几个应用用 4 GB 起步不错,带数据库和更多服务则用 8 GB。
如何连接我的 k3s 集群?
用 scp root@IP:/etc/rancher/k3s/k3s.yaml ~/.kube/config 获取文件,把其中的 127.0.0.1 替换为服务器的 IP 地址,然后运行 kubectl get nodes。在服务器本机上,k3s kubectl 同样可用。
如何在 k3s 上开放我的应用?
定义一个 Service 和一个 Ingress。Traefik ingress 控制器监听 80 和 443 端口,并把请求转发给您的服务。要使用 HTTPS,请把您自己的证书添加为 Secret。
k3s 上的持久卷是怎么工作的?
k3s 自带 Local Path Provisioner,存储类为 local-path。卷创建在服务器的 /var/lib/rancher/k3s/storage 下,所以包含在每晚的备份中。保留最近 7 天,这包含在价格中。
可以在 k3s 上使用 Helm 吗?
可以。您电脑上的 helm 工具使用同一个 kubeconfig 文件连接。k3s 还会自动应用您放在 /var/lib/rancher/k3s/server/manifests 中的文件,其中包括 HelmChart 资源。