K3s安装
k3s是轻量级 Kubernetes。生产就绪,易于安装,内存减半,全部包含在一个小于 100 MB 的二进制文件中
3W1H
适用场景:
资源受限的开发、测试环境(笔记本、台式机)
边缘计算和IoT设备部署
小型生产环境(<200节点)
推荐配置
CPU:2核
内存:1GB RAM
磁盘:SSD磁盘
安装
已验证的安装环境
windows10的WSL2 + ubuntu 22.04
CentOS 7
安装K3S
sudo curl -sfL https://rancher-mirror.rancher.cn/k3s/k3s-install.sh | \
INSTALL_K3S_MIRROR=cn \
INSTALL_K3S_VERSION=v1.34.1+k3s1 \
INSTALL_K3S_EXEC="--write-kubeconfig ~/.kube/config --write-kubeconfig-mode 666" \
sh -s server
命令说明
# INSTALL_K3S_VERSION是要安装的版本号
# INSTALL_K3S_EXEC="(略)"效果为启动k3s服务时使用的额外参数
# --docker效果为使用docker而不是默认的containerd,如果不想使用docker,可以移除.
# --write-kubeconfig-mode 666 效果为将配置文件权限改为非所有者也可读可写,进而使kubectl命令无需root或sudo
# --write-kubeconfig ~/.kube/config效果为将配置文件写到k8s默认会用的位置,而不是k3s默认的位置/etc/rancher/k3s/k3s.yaml。后者会导致istio、helm需要额外设置或无法运行。
安装输出:

验证
使用命令时,最好使用sudo,避免因权限不足造成的各种问题
k3s kubectl get node
# k3s会为其内置的kubectl添加软链接。因此可以省略k3s命令,直接使用
kubectl get pods -n kube-system
配置国内镜像
在k3s上部署容器时(比如nginx),K3s 默认使用的 containerd 容器运行时,这些镜像默认是从DockerHub拉取,国内无法访问。
需要为其配置国内mirror。
可以通过 K3s 的参数来设置 containerd 的 mirror,设置方式如下:
sudo tee -a /etc/rancher/k3s/registries.yaml <<EOF
mirrors:
"docker.io":
endpoint:
- "https://docker.1ms.run" # 国内镜像1
- "https://docker.m.daocloud.io" # 国内镜像2
- "https://registry-1.docker.io" # 默认的官方镜像
EOF
重启服务:
sudo systemctl restart k3s
在国内的Docker镜像站随时可能挂,使用前最好用一个镜像测试加速是否可用。
# 各类加速器的测试方法大同小异,把前面的base-url换掉即可
docker pull docker.1ms.run/nginx:latest
测试K3s
检查集群
# 查看集群运行情况
kubectl get nodes -o wide
kubectl get all -A -owide
kubectl describe node vm01
kubectl -n kube-system describe deploy coredns
启动whoami服务
# 快速部署 whoami 应用,指定副本为 2,默认副本为 1
kubectl create deploy whoami --image=traefik/whoami --replicas=2
kubectl describe deploy whoami
# 监控 pod 状态,通过扩缩容可直观看到 pod 的调度情况
kubectl get pods --watch
# 尝试下对 whoami 应用进行扩缩容
kubectl scale deploy whoami --replicas=5
卸载k3s
# 停止服务
/usr/local/bin/k3s-killall.sh
# 一键卸载 server
/usr/local/bin/k3s-uninstall.sh
踩坑
一些操作系统安装前最好关掉防火墙
# rehl/centos
systemctl disable firewalld --now
# debian/ubuntu
ufw disable

浙公网安备 33010602011771号