搭建容器云平台 (搭建后端环境)

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、部署应用程序以及访问应用程序。希望这篇文章对您有所帮助!