k3s 部署
k3s介绍
K3s 是轻量级的 Kubernetes。K3s 易于安装,仅需要 Kubernetes 内存的一半,所有组件都在一个小于 100 MB 的二进制文件中。
为什么叫 K3s?
我们希望安装的 Kubernetes 只占用一半的内存。Kubernetes 是一个 10 个字母的单词,简写为 K8s。Kubernetes 的一半就是一个 5 个字母的单词,因此简写为 K3s。K3s 没有全称,也没有官方的发音。
安装
1. 关闭防火墙
系统:Debian GNU/Linux1
2
3
4
5
6
7
8sudo apt install ufw # 安装防火墙
ufw disable # 关闭防护墙
# 或 允许端口
ufw allow 6443/tcp #apiserver
ufw allow from 10.42.0.0/16 to any #pods
ufw allow from 10.43.0.0/16 to any #services
系统:centos1
2
3
4
5
6
7
8systemctl stop firewalld # 关闭防火墙 Centos7
# 允许端口(永久生效)
sudo firewall-cmd --add-port=6443/tcp --permanent
sudo firewall-cmd --reload
# 查看生效
sudo firewall-cmd --list-all
2. 安装
一键安装脚本1
2
3
4curl -sfL https://get.k3s.io | sh -
# 大陆用户
curl -sfL https://rancher-mirror.rancher.cn/k3s/k3s-install.sh | INSTALL_K3S_MIRROR=cn sh -
启动k3s1
2systemctl start k3s
查看状态:systemctl status k3s1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27● k3s.service - Lightweight Kubernetes
Loaded: loaded (/etc/systemd/system/k3s.service; enabled; preset: enabled)
Active: active (running) since Wed 2025-06-25 10:20:34 UTC; 14min ago
Docs: https://k3s.io
Main PID: 24005 (k3s-server)
Tasks: 98
Memory: 1.5G
CPU: 1min 35.035s
CGroup: /system.slice/k3s.service
├─24005 "/usr/local/bin/k3s server"
├─24619 "containerd "
├─25331 /var/lib/rancher/k3s/data/f10c229b8445ff9999c26495950a5c8b2e08fd13f1889d38f994edeebf026236/bin/containerd-shim-runc-v2 -namespace k8s.io -id 26884b8988af0d32fc1150869d8>
├─25386 /var/lib/rancher/k3s/data/f10c229b8445ff9999c26495950a5c8b2e08fd13f1889d38f994edeebf026236/bin/containerd-shim-runc-v2 -namespace k8s.io -id e74d81acf40d301807c7870aff7>
├─25403 /var/lib/rancher/k3s/data/f10c229b8445ff9999c26495950a5c8b2e08fd13f1889d38f994edeebf026236/bin/containerd-shim-runc-v2 -namespace k8s.io -id 5c96e5dcae950c35b654b214e96>
├─26404 /var/lib/rancher/k3s/data/f10c229b8445ff9999c26495950a5c8b2e08fd13f1889d38f994edeebf026236/bin/containerd-shim-runc-v2 -namespace k8s.io -id 9fdc9c2454d0a3c5d3ba082fd41>
└─26464 /var/lib/rancher/k3s/data/f10c229b8445ff9999c26495950a5c8b2e08fd13f1889d38f994edeebf026236/bin/containerd-shim-runc-v2 -namespace k8s.io -id 6c7138301a41c981a9640ada7d5>
Jun 25 10:21:10 instance-20250608-032027 k3s[24005]: I0625 10:21:10.588165 24005 shared_informer.go:320] Caches are synced for garbage collector
Jun 25 10:21:11 instance-20250608-032027 k3s[24005]: I0625 10:21:11.373369 24005 replica_set.go:679] "Finished syncing" kind="ReplicaSet" key="kube-system/traefik-c98fdf6fb" duration="7.5>
Jun 25 10:21:11 instance-20250608-032027 k3s[24005]: I0625 10:21:11.374291 24005 replica_set.go:679] "Finished syncing" kind="ReplicaSet" key="kube-system/traefik-c98fdf6fb" duration="65.>
Jun 25 10:21:11 instance-20250608-032027 k3s[24005]: I0625 10:21:11.380330 24005 event.go:389] "Event occurred" object="kube-system/traefik" fieldPath="" kind="Service" apiVersion="v1" ty>
Jun 25 10:21:12 instance-20250608-032027 k3s[24005]: I0625 10:21:12.292724 24005 replica_set.go:679] "Finished syncing" kind="ReplicaSet" key="kube-system/metrics-server-6f4c6675d5" durat>
Jun 25 10:21:12 instance-20250608-032027 k3s[24005]: I0625 10:21:12.292818 24005 replica_set.go:679] "Finished syncing" kind="ReplicaSet" key="kube-system/metrics-server-6f4c6675d5" durat>
Jun 25 10:21:12 instance-20250608-032027 k3s[24005]: I0625 10:21:12.340557 24005 handler.go:286] Adding GroupVersion metrics.k8s.io v1beta1 to ResourceManager
Jun 25 10:21:36 instance-20250608-032027 k3s[24005]: I0625 10:21:36.584352 24005 range_allocator.go:247] "Successfully synced" key="instance-20250608-032027"
Jun 25 10:26:42 instance-20250608-032027 k3s[24005]: I0625 10:26:42.276263 24005 range_allocator.go:247] "Successfully synced" key="instance-20250608-032027"
Jun 25 10:31:48 instance-20250608-032027 k3s[24005]: I0625 10:31:48.821014 24005 range_allocator.go:247] "Successfully synced" key="instance-20250608-032027"
安装后
K3s 服务将被配置为在节点重启后或进程崩溃或被杀死时自动重启。
将安装其他实用程序,包括kubectl、crictl、ctr、k3s-killall.sh和k3s-uninstall.sh。
kubeconfig文件将写入到/etc/rancher/k3s/k3s.yaml,由K3s 安装的kubectl 将自动使用该文件。
命令
1 | root@instance-20250608-032027:~# kubectl config get-clusters |
相关文档
k3s官网:https://docs.k3s.io/zh/quick-start
k3s墙内部署指南:https://zhuanlan.zhihu.com/p/1891171961993933727
k3s集群部署:https://cloud.tencent.com/developer/article/2347543
k3d官网:https://k3d.io/stable/
k3d用途:https://blog.51cto.com/u_8130830/5418657