部署 K3s 和 KubeSphere

K3s 是专为物联网和边缘计算打造的轻量级 Kubernetes 发行版,最大程度上剔除了外部依赖项。它打包为单个二进制文件,减少了搭建 Kubernetes 集群所需的依赖项和步骤。

您可以使用 KubeKey 同时安装 K3s 和 KubeSphere,也可以将 KubeSphere 部署在现有的 K3s 集群上。

备注

目前,由于功能尚未充分测试,在 K3s 上部署 KubeSphere 仅用于测试和开发。

准备工作

  • 有关安装 K3s 的准备工作的更多信息,请参阅 K3s 文档
  • 取决于您的网络环境,您可能需要配置防火墙规则和端口转发规则。有关更多信息,请参见端口要求

步骤 1:下载 KubeKey

执行以下步骤下载 KubeKey

GitHub Release Page 下载 KubeKey 或直接运行以下命令:

  1. curl -sfL https://get-kk.kubesphere.io | VERSION=v2.2.1 sh -

首先运行以下命令,以确保您从正确的区域下载 KubeKey。

  1. export KKZONE=cn

运行以下命令来下载 KubeKey:

  1. curl -sfL https://get-kk.kubesphere.io | VERSION=v2.2.1 sh -

备注

下载 KubeKey 之后,如果您将其转移到访问 Googleapis 受限的新机器上,请务必再次运行 export KKZONE=cn,然后继续执行以下步骤。

备注

通过以上的命令可以下载 KubeKey 的最新版本 (v2.2.1)。请注意,更早版本的 KubeKey 无法下载 K3s。

执行以下命令为 kk 文件增加执行权限:

  1. chmod +x kk

步骤 2:创建集群

  1. 执行以下命令为集群创建一个配置文件:

    1. ./kk create config --with-kubernetes v1.21.4-k3s --with-kubesphere v3.3.0

    备注

    • KubeKey v2.2.1 支持安装 K3s v1.21.4。

    • 您可以在以上命令中使用 -f--file 参数指定配置文件的路径和名称。如未指定路径和名称,KubeKey 将默认在当前目录下创建 config-sample.yaml 配置文件。

  2. 执行以下命令编辑配置文件(以下以默认配置文件名为例):

    1. vi config-sample.yaml
    1. ...
    2. metadata:
    3. name: sample
    4. spec:
    5. hosts:
    6. - {name: master, address: 192.168.0.2, internalAddress: 192.168.0.2, user: ubuntu, password: Testing123}
    7. - {name: node1, address: 192.168.0.3, internalAddress: 192.168.0.3, user: ubuntu, password: Testing123}
    8. - {name: node2, address: 192.168.0.4, internalAddress: 192.168.0.4, user: ubuntu, password: Testing123}
    9. roleGroups:
    10. etcd:
    11. - master
    12. control-plane:
    13. - master
    14. worker:
    15. - node1
    16. - node2
    17. controlPlaneEndpoint:
    18. domain: lb.kubesphere.local
    19. address: ""
    20. port: 6443
    21. kubernetes:
    22. version: v1.21.4-k3s
    23. imageRepo: kubesphere
    24. clusterName: cluster.local
    25. network:
    26. plugin: calico
    27. kubePodsCIDR: 10.233.64.0/18
    28. kubeServiceCIDR: 10.233.0.0/18
    29. registry:
    30. registryMirrors: []
    31. insecureRegistries: []
    32. addons: []
    33. ...

    备注

    有关配置文件中每个字段的更多信息,请参阅示例文件

  3. 保存文件并执行以下命令安装 K3s 和 KubeSphere:

    1. ./kk create cluster -f config-sample.yaml
  4. 安装完成后,可运行以下命令查看安装日志:

    1. kubectl logs -n kubesphere-system $(kubectl get pod -n kubesphere-system -l 'app in (ks-install, ks-installer)' -o jsonpath='{.items[0].metadata.name}') -f

    如果显示如下信息则安装成功:

    1. #####################################################
    2. ### Welcome to KubeSphere! ###
    3. #####################################################
    4. Console: http://192.168.0.2:30880
    5. Account: admin
    6. Password: [email protected]
    7. NOTES
    8. 1. After you log into the console, please check the
    9. monitoring status of service components in
    10. "Cluster Management". If any service is not
    11. ready, please wait patiently until all components
    12. are up and running.
    13. 2. Please change the default password after login.
    14. #####################################################
    15. https://kubesphere.io 20xx-xx-xx xx:xx:xx
    16. #####################################################
  5. 从安装日志的 ConsoleAccountPassword 参数分别获取 KubeSphere Web 控制台的地址、系统管理员用户名和系统管理员密码,并使用 Web 浏览器登录 KubeSphere Web 控制台。

    备注

    您可以在安装后启用 KubeSphere 的可插拔组件,但由于在 KubeSphere 上部署 K3s 目前处于测试阶段,某些功能可能不兼容。