K3s 是一个轻量级的 Kubernetes 发行版,相较于 K8s, K3s 采用了更小、更快、更安全的设计,使用更少的资源,提供了更快、更简单的部署和管理方式。因此,K3s 更适合在资源有限的环境中运行,如边缘计算场景。
安装 K3s
可以从 K3s 的官方网站直接*载下**二进制文件,或者运行以下命令进行安装:
curl -sfL <https://get.k3s.io> | sh -
使用国内源安装
但是考虑到国内的网络情况,大多情况我们之间使用国内源安装更方便。
curl –sfL \\
<https://rancher-mirror.oss-cn-beijing.aliyuncs.com/k3s/k3s-install.sh> | \\
INSTALL_K3S_MIRROR=cn sh -s - \\
--system-default-registry "registry.cn-hangzhou.aliyuncs.com" \\
--write-kubeconfig ~/.kube/config \\
--write-kubeconfig-mode 666 \\
--disable traefik
通过 INSTALL_K3S_MIRROR=cn 环境变量指定 K3s 的二进制文件从国内阿里云对象存储中获取。
最后,通过 --system-default-registry 参数指定 K3s 的系统镜像从阿里云镜像仓库中获取。
如果网络带宽足够,安装 K3s 系统服务只需一分钟。可通过执行 kubectl get pods -n kube-system 验证。
配置 containerd 的 Mirror
上述步骤只是为了快速安装和启动K3s。启动K3s后,您可以在其上部署自己的业务,例如nginx。默认情况下,这些镜像从DockerHub拉取。如果使用Docker容器运行时,可以配置镜像加速器以加速镜像的拉取。
K3s默认使用containerd容器运行时。通过K3s的参数,可以设置containerd的镜像加速器,设置方式如下:
cat > /etc/rancher/k3s/registries.yaml <<EOF
mirrors:
docker.io:
endpoint:
- "<http://hub-mirror.c.163.com>"
- "<https://docker.mirrors.ustc.edu.cn>"
- "<https://registry.docker-cn.com>"
EOF
安装完成后,可以通过以下命令启动 K3s:
sudo systemctl start k3s
部署应用程序
接下来,我们可以使用 Kubernetes 的 YAML 文件来部署应用程序。例如,以下是一个简单的 YAML 文件,用于部署一个 Node.js 应用程序:
apiVersion: apps/v1
kind: Deployment
metadata:
name: node-app
spec:
replicas: 1
selector:
matchLabels:
app: node-app
template:
metadata:
labels:
app: node-app
spec:
containers:
- name: node-app
image: node:latest
ports:
- containerPort: 3000
将上述 YAML 文件保存为 node-app.yaml,然后运行以下命令来部署应用程序:
kubectl apply -f node-app.yaml
访问应用程序
当应用程序部署完成后,可以使用以下命令来查看部署状态:
kubectl get pods
如果部署成功,应该会看到一个运行中的 Pod。接下来,可以使用以下命令来创建一个 Kubernetes 服务,并将其公开到集群外部:
kubectl expose deployment node-app --type=LoadBalancer --port=80 --target-port=3000
当服务创建完成后,可以使用以下命令来获取服务的 IP 地址:
kubectl get services
在浏览器中输入该 IP 地址,即可访问应用程序。
使用 K3s 搭建容器化后台开发环境非常容易。在本文中,我们介绍了如何安装 K3s、部署应用程序以及访问应用程序。希望这篇文章对您有所帮助!