K3S 系统简介
K3s 是 Rancher 发布的一款 Kubernetes 发行版,非常轻量,安装和使用也非常方便。可以单节点部署,很多时候我们只需要一个单节点的 Kubernetes 集群,这时候 K3s 就是一个很好的选择。
K3s 的特点
- 轻量级:
k3s的二进制文件只有40MB左右,比标准的Kubernetes二进制文件小得多,因此启动速度更快,对资源的消耗也更少。 - 简单易用:
k3s的安装和配置非常简单,可以在几分钟内完成。它还提供了一个用户友好的Web UI,可以方便地管理Kubernetes集群。 - 安全性:
k3s默认启用了TLS证书和RBAC权限控制,可以有效地保护Kubernetes集群的安全性。 - 多架构支持:
k3s支持x86、ARM64等多种架构,可以在不同的硬件平台上运行,非常适合于边缘计算场景。 - 可嵌入性:
k3s可以轻松地嵌入到其他应用程序中,例如IoT设备或CI/CD工具链中,为这些应用程序提供Kubernetes能力。
总的来说,k3s 是一个非常适合轻量级环境和边缘计算场景的 Kubernetes 发行版,具有 易用性、安全性、多架构支持 等特点。
单节点的
Kubernetes集群,由于其直接使用Kubernetes的各种能力,又不占用太多资源,比较适合本地开发,当然也可以用于生产环境。
安装K3S
curl -sfL https://get.k3s.io | sh -安装状态
[INFO] Finding release for channel stable
[INFO] Using v1.27.3+k3s1 as release
[INFO] Downloading hash https://github.com/k3s-io/k3s/releases/download/v1.27.3+k3s1/sha256sum-amd64.txt
[INFO] Downloading binary https://github.com/k3s-io/k3s/releases/download/v1.27.3+k3s1/k3s
[INFO] Verifying binary download
[INFO] Installing k3s to /usr/local/bin/k3s
[INFO] Skipping installation of SELinux RPM
[INFO] Creating /usr/local/bin/kubectl symlink to k3s
[INFO] Creating /usr/local/bin/crictl symlink to k3s
[INFO] Creating /usr/local/bin/ctr symlink to k3s
[INFO] Creating killall script /usr/local/bin/k3s-killall.sh
[INFO] Creating uninstall script /usr/local/bin/k3s-uninstall.sh
[INFO] env: Creating environment file /etc/systemd/system/k3s.service.env
[INFO] systemd: Creating service file /etc/systemd/system/k3s.service
[INFO] systemd: Enabling k3s unit
Created symlink /etc/systemd/system/multi-user.target.wants/k3s.service → /etc/systemd/system/k3s.service.
[INFO] systemd: Starting k3s更详细的 k3s 安装说明可以参考官方文档 https://rancher.com/docs/k3s/latest/en/installation/ (opens in a new tab)
K3S状态
安装完毕后,可以通过 kubectl 工具来确认 K3s 集群的状态。
sudo kubectl get nodes
# or
sudo kubectl get pods -A卸载K3S
/usr/local/bin/k3s-uninstall.sh更详细的 k3s 卸载说明可以参考官方文档 https://docs.k3s.io/installation/uninstall (opens in a new tab)
K3S Web UI
默认情况下,我们使用 kubectl 工具操作 k3s 即可,kubernetes 提供一个简单 Web UI,可以方便地管理 Kubernetes 集群。
sudo kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.7.0/aio/deploy/recommended.yaml
sudo kubectl proxy # with nohup创建角色绑定 kubernetes-dashboard.yml
apiVersion: v1
kind: ServiceAccount
metadata:
name: admin-user
namespace: kubernetes-dashboardsudo kubectl apply -f kubernetes-dashboard.yml部署完毕后,可以通过 http://localhost:8001/api/v1/namespaces/kubernetes-dashboard/services/https:kubernetes-dashboard:/proxy/#/workloads?namespace=default (opens in a new tab) 访问 Web UI。
更详细的 k3s Web UI 说明可以参考官方文档 https://kubernetes.io/docs/tasks/access-application-cluster/web-ui-dashboard/ (opens in a new tab)
更多K3S说明
- 配置文件默认位置:
/etc/rancher/k3s/k3s.yaml - 创建访问
Token请执行:sudo kubectl -n kubernetes-dashboard create token admin-user记住生成的Token,后续访问Web UI时需要用到。
参考
- https://github.com/kubernetes/dashboard/blob/master/docs/user/access-control/creating-sample-user.md (opens in a new tab)
- https://kubernetes.io/zh-cn/docs/tasks/run-application/run-stateless-application-deployment/ (opens in a new tab)
- https://docs.k3s.io/installation/configuration (opens in a new tab)
- https://docs.k3s.io/installation/kube-dashboard (opens in a new tab)