跳转至

kubekey 部署k8s

kubekey 部署k8s 集群

官方网站: https://github.com/kubesphere/kubekey/blob/master/README_zh-CN.md

介绍

KubeKey是一个开源的轻量级工具,用于部署Kubernetes集群。它提供了一种灵活、快速、方便的方式来安装Kubernetes/K3s、Kubernetes/K3s和KubeSphere,以及相关的云原生附加组件。它也是扩展和升级集群的有效工具。

此外,KubeKey还支持定制离线包(artifact),方便用户在离线环境下快速部署集群。

KubeKey 通过了 CNCF kubernetes 一致性认证。

有三种情况可以使用 KubeKey。

仅安装 Kubernetes 用一个命令中安装 Kubernetes 和 KubeSphere 首先安装 Kubernetes,然后使用 ks-installer 在其上部署 KubeSphere 重要提示:Kubekey 将会帮您安装 Kubernetes,若已有 Kubernetes 集群请参考 在 Kubernetes 之上安装 KubeSphere。

优势

基于 Ansible 的安装程序具有大量软件依赖性,例如 Python。KubeKey 是使用 Go 语言开发的,可以消除在各种环境中出现的问题,从而提高安装成功率。 KubeKey 使用 Kubeadm 在节点上尽可能多地并行安装 K8s 集群,以降低安装复杂性并提高效率。与较早的安装程序相比,它将大大节省安装时间。 KubeKey 支持将集群从 all-in-one 扩展到多节点集群甚至 HA 集群。 KubeKey 旨在将集群当作一个对象操作,即 CaaO。

支持版本

操作系统

  • Ubuntu 16.04, 18.04, 20.04, 22.04
  • Debian Bullseye, Buster, Stretch
  • CentOS/RHEL 7
  • AlmaLinux 9.0
  • SUSE Linux Enterprise Server 15

k8s 版本支持

https://github.com/kubesphere/kubekey/blob/master/docs/kubernetes-versions.md

部署

1、 创建集群部署配置文件(这里只创建 k8s 集群)

kk create config --with-kubernetes v1.26.2 -f ~/.kubekey/config.conf

此配置表示安装一个单节点的服务, 网络插件指定 cilium, 版本选择 1.26.2

> cat ~/.kubekey/config.conf

apiVersion: kubekey.kubesphere.io/v1alpha2
kind: Cluster
metadata:
  name: sample
spec:
  hosts:
  - {name: cmzhu, address: 10.100.100.77, internalAddress: 10.100.100.77, user: root, password: "f"}
  roleGroups:
    etcd:
    - cmzhu
    control-plane:
    - cmzhu
    worker:
  controlPlaneEndpoint:
    ## Internal loadbalancer for apiservers
    # internalLoadbalancer: haproxy

    domain: lb.kubesphere.local
    address: ""
    port: 6443
  kubernetes:
    version: v1.26.2
    clusterName: cluster.local
    autoRenewCerts: true
    containerManager: containerd
  etcd:
    type: kubekey
  network:
    plugin: cilium
    kubePodsCIDR: 10.233.64.0/18
    kubeServiceCIDR: 10.233.0.0/18
    ## multus support. https://github.com/k8snetworkplumbingwg/multus-cni
    multusCNI:
      enabled: false
  registry:
    privateRegistry: ""
    namespaceOverride: ""
    registryMirrors: []
    insecureRegistries: []
  addons: []

运行安装命令

kk create cluster -f ~/.kubekey/config.conf