Post

k3d快速搭建k3s测试环境

1. 简介

简单说明下: k3s可以看做是k8s的精简版,功能和操作方式和k8s一样的。 而k3d则是将k3sdocker化的一个开源项目,也就是k3d可以将k3d部署于docker中。适合快速搭建开发测试环境。

2. 基建

首先第一步则是安装k3d, 这里官方有安装文档, 很简单的一键安装, k3d官网

其他方式可以去看官网的安装命令

1
wget -q -O - https://raw.githubusercontent.com/k3d-io/k3d/main/install.sh | bash

接下来安装 kubectl 工具,这是k8s管理工具,kubectl安装教程。也很简单,几乎是一键安装。

上面两个工具安装完成后,就可以开始搭建k3s环境了。

3.搭建环境

k3d支持命令或配置文件方式搭建k3s集群,这里提供一个模版方便快速创建。

另存为mycluster.yaml

1
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
28
29
30
31
32
apiVersion: k3d.io/v1alpha5
kind: Simple
metadata:
  name: mycluster
servers: 1
agents: 2
ports:
  - port: 80:80
    nodeFilters:
      - loadbalancer

registries:
  create: # creates a default registry to be used with the cluster; same as `--registry-create registry.localhost`
    name: registry.localhost
    host: "0.0.0.0"
    hostPort: "5000"
    volumes:
      - /home/ray/k3dlearn/imagelist:/var/lib/registry # persist registry data locally
  config: |
    mirrors:
      "docker.io":
        endpoint:
          - https://mirror.aliyuncs.com
          - https://mirror.ccs.tencentyun.com
          - https://mirror.baidubce.com
          - https://docker.mirrors.ustc.edu.cn
          - https://docker.nju.edu.cn
          - https://docker.m.daocloud.io
          - https://registry.dockermirror.com



将上面配置文件保存为mycluster.yaml,配置文件中端口和镜像路径需要同步修改。使用k3d cluster create --config ./k3dcluster.yaml命令就会自动执行以下操作:

  • 自动创建一个k3s集群
  • 自动创建一个dockerIamge 私有仓库,这个仓库的hostname为registry.localhost,也就是name配置,所有容器都会从这里拉取
  • 开启了容器负载均衡,使用的80端口

创建完成后:

  • 使用k3d cluster list 查看当前创建的所有k3s集群。
  • 使用k3d cluster delete 集群名称 可以删除。

到这里k3s集群就创建完成了。

4. 后语

其实k3d使用命令行的方式也能创建,但是国内的docker镜像网络一直不太稳定。 命令的方式不能配置docker镜像地址,而配置文件缺可以。 所以推荐使用配置文件的方式创建集群。

其次镜像仓库问题,只能在配置文件中自动创建一个镜像仓库,容器内可以通过name配置进行访问,但是其他机器缺不行,所以需要手动 增加host配置,将registry.localhost指向真正的ip。

This post is licensed under CC BY 4.0 by the author.