当前位置: 首页 > news >正文

KubeKey一键安装部署k8s集群和KubeSphere详细教程

目录

一、KubeKey简介

二、k8s集群+KubeSphere安装

集群规划

硬件要求

Kubernetes支持版本

操作系统要求

SSH免密登录

配置集群时钟

所有节点安装依赖

安装docker

DNS要求

存储要求

下载 KubeKey

验证KubeKey

配置集群文件

安装集群

验证命令

登录页面


一、KubeKey简介

KubeKey是一个开源轻量级工具,采用go语言开发,用于部署Kubernetes集群。它提供了一种灵活、快速、方便的方式来安装Kubernetes和KubeSphere,具有以下特点:

  1. 安装可选,仅安装 Kubernetes或同时安装 Kubernetes 和 KubeSphere。
  2. 支持在线和离线安装,方便用户在离线环境下快速部署集群。
  3. 安装简单高效,相比Ansible方式安装依赖更少,使用Kubeadm 在节点上并行安装 K8s 集群,提升了安装效率节省了安装时间。
  4. 涵盖多种部署方式,从 all-in-one 扩展到多节点集群包括 HA 集群。

官方地址:KubeKey

Github地址:GitHub - kubesphere/kubekey: Install Kubernetes/K3s only, both Kubernetes/K3s and KubeSphere, and related cloud-native add-ons, it supports all-in-one, multi-node, and HA 🔥 ⎈ 🐳

二、k8s集群+KubeSphere安装

集群规划

主机 IP主机名角色
192.168.5.10node1control plane, etcd
192.168.5.11node2worker
192.168.5.12node3worker

硬件要求

系统最低要求(每个节点)
Ubuntu 16.04,18.04,20.04CPU:2 核,内存:4 G,硬盘:20 G
Debian Buster,StretchCPU:2 核,内存:4 G,硬盘:20 G
CentOS 7.xCPU:2 核,内存:4 G,硬盘:20 G
Red Hat Enterprise Linux 7CPU:2 核,内存:4 G,硬盘:20 G
SUSE Linux Enterprise Server 15 /openSUSE Leap 15.2CPU:2 核,内存:4 G,硬盘:20 G

Kubernetes支持版本

  • v1.19:   v1.19.15
  • v1.20:   v1.20.10
  • v1.21:   v1.21.14
  • v1.22:   v1.22.15
  • v1.23:   v1.23.10 (default)
  • v1.24:   v1.24.7
  • v1.25:   v1.25.3

操作系统要求

笔者操作系统为CentOS Linux release 7.9.2009 x86_64,环境配置如下:

SSH免密登录

SSH配置免密登录,可以访问所有节点,具体配置可参考我的另一篇博客K8S简介和安装部署详细教程-CSDN博客

配置集群时钟

所有节点保证时间同步, 具体配置可参考我的另一篇博客K8S简介和安装部署详细教程-CSDN博客

所有节点安装依赖

yum install curl openssl socat conntrack ebtables ipset ipvsadm bash-completion -y

安装docker

docker可以自己安装,也可以通过 KubeKey 安装, 自行安装可参考我的另一篇博客在Centos系统中安装、体验和卸载Docker_# executing docker install script, commit: e5543d4-CSDN博客

DNS要求

确保/etc/resolv.conf中的DNS地址可用,测试DNS解析功能如下:

# 如果DNS配置正确,会返回www.baidu.com的IP地址信息
[root@node1 ~]# nslookup www.baidu.com
Server:         192.168.1.1
Address:        192.168.1.1#53

Non-authoritative answer:
Name:   www.baidu.com
Address: 180.101.49.44
Name:   www.baidu.com
Address: 180.101.51.73
www.baidu.com   canonical name = www.a.shifen.com.
Name:   www.a.shifen.com
Address: 240e:e9:6002:1ac:0:ff:b07e:36c5
Name:   www.a.shifen.com
Address: 240e:e9:6002:1fd:0:ff:b0e1:fe69

存储要求

KubeKey 支持安装不同的存储插件和存储类型,如果KubeKey 未指定默认存储类型,则将默认安装 OpenEBS,使用节点HostPost创建本地持久卷,比较适合开发和测试环境,对于生产,请使用 NFS/Ceph/GlusterFS作为持久化存储,安装配置NFS服务可移步博客:CentOS系统安装NFS-CSDN博客

下载 KubeKey

在任一节点下载最新版KubeKey,当前最新版为v3.1.7

[root@node1 ~]# export KKZONE=cn  # 设置下载区域为中国,加速下载
[root@node1 ~]# curl -sfL https://get-kk.kubesphere.io | sh -

Downloading kubekey v3.1.7 from https://kubernetes.pek3b.qingstor.com/kubekey/releases/download/v3.1.7/kubekey-v3.1.7-linux-amd64.tar.gz ...


Kubekey v3.1.7 Download Complete!

[root@node1 ~]# chmod +x kk #添加可执行权限

验证KubeKey

[root@node1 ~]# ./kk version
kk version: &version.Info{Major:"3", Minor:"1", GitVersion:"v3.1.7", GitCommit:"da475c670813fc8a4dd3b1312aaa36e96ff01a1f", GitTreeState:"clean", BuildDate:"2024-10-30T09:41:20Z", GoVersion:"go1.19.2", Compiler:"gc", Platform:"linux/amd64"}

配置集群文件

使用 KubeKey 生成默认的集群配置文件,可指定k8s版本,不填选当前默认版本,不添加标志 --with-kubesphere,则不会部署 KubeSphere,添加了标志不指定 KubeSphere 版本,则会安装最新版本的 KubeSphere。

# 同时安装KubeSphere
[root@node1 ~]# ./kk create config --with-kubesphere
Generate KubeKey config file successfully

编辑config-sample.yaml配置文件,配置节点信息和集群参数。


apiVersion: kubekey.kubesphere.io/v1alpha2
kind: Cluster
metadata:
  name: sample
spec:
  hosts:
  - {name: node1, address: 192.168.5.10, internalAddress: 192.168.5.10, user: root, password: "xxx"}
  - {name: node2, address: 192.168.5.11, internalAddress: 192.168.5.11, user: root, password: "xxx"}
  - {name: node3, address: 192.168.5.12, internalAddress: 192.168.5.12, user: root, password: "xxx"}
  roleGroups:
    etcd:
    - node1
    control-plane: 
    - node1
    worker:
    - node2
    - node3
...
  addons:
  - name: nfs-client
    namespace: kube-system
    sources: 
      chart: 
        name: nfs-client-provisioner
        repo: https://charts.kubesphere.io/main
        values:
        - storageClass.defaultClass=true
        - nfs.server=192.168.5.10
        - nfs.path=/data/nfs

安装集群

使用配置文件创建集群,默认安装k8s版本为v1.23.17,安装过程中出现是否继续安装输入yes,安装过程如下:

[root@node1 ~]# export KKZONE=cn
[root@node1 ~]# ./kk create cluster -f config-sample.yaml


 _   __      _          _   __           
| | / /     | |        | | / /           
| |/ / _   _| |__   ___| |/ /  ___ _   _ 
|    \| | | | '_ \ / _ \    \ / _ \ | | |
| |\  \ |_| | |_) |  __/ |\  \  __/ |_| |
\_| \_/\__,_|_.__/ \___\_| \_/\___|\__, |
                                    __/ |
                                   |___/

17:57:28 CST [GreetingsModule] Greetings
17:57:28 CST message: [node3]
Greetings, KubeKey!
17:57:28 CST message: [node2]
Greetings, KubeKey!
17:57:28 CST message: [node1]
Greetings, KubeKey!
17:57:28 CST success: [node3]
17:57:28 CST success: [node2]
17:57:28 CST success: [node1]
17:57:28 CST [NodePreCheckModule] A pre-check on nodes
17:57:29 CST success: [node2]
17:57:29 CST success: [node1]
17:57:29 CST success: [node3]
17:57:29 CST [ConfirmModule] Display confirmation form
+-------+------+------+---------+----------+-------+-------+---------+-----------+--------+--------+------------+------------+-------------+------------------+--------------+
| name  | sudo | curl | openssl | ebtables | socat | ipset | ipvsadm | conntrack | chrony | docker | containerd | nfs client | ceph client | glusterfs client | time         |
+-------+------+------+---------+----------+-------+-------+---------+-----------+--------+--------+------------+------------+-------------+------------------+--------------+
| node1 | y    | y    | y       | y        | y     | y     | y       | y         | y      | 26.1.4 | 1.6.33     | y          |             |                  | CST 17:57:29 |
| node2 | y    | y    | y       | y        | y     | y     | y       | y         | y      | 26.1.4 | 1.6.33     | y          |             |                  | CST 17:57:29 |
| node3 | y    | y    | y       | y        | y     | y     | y       | y         | y      | 26.1.4 | 1.6.33     | y          |             |                  | CST 17:57:29 |
+-------+------+------+---------+----------+-------+-------+---------+-----------+--------+--------+------------+------------+-------------+------------------+--------------+

This is a simple check of your environment.
Before installation, ensure that your machines meet all requirements specified at
https://github.com/kubesphere/kubekey#requirements-and-recommendations

Install k8s with default version:  v1.23.17
Continue this installation? [yes/no]: yes

安装时间大概20分钟左右,console最后会打印如下内容表示安装k8s+KubeSphere成功。

21:46:03 CST success: [node1]
#####################################################
###              Welcome to KubeSphere!           ###
#####################################################

Console: http://192.168.5.10:30880
Account: admin
Password: P@88w0rd
NOTES:
  1. After you log into the console, please check the
     monitoring status of service components in
     "Cluster Management". If any service is not
     ready, please wait patiently until all components 
     are up and running.
  2. Please change the default password after login.

#####################################################
https://kubesphere.io             2025-02-23 21:58:22
#####################################################

验证命令

执行以下命令也可以看到安装结果

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

登录页面

浏览器打开http://192.168.5.10:30880,输入用户名和密码

Account: admin
Password: P@88w0rd

初次登录需要修改密码

 登录后界面如下:

相关文章:

  • 前端js进阶,ES6语法,包详细
  • ViT 模型介绍(一)——综述
  • VS2022配置FFMPEG库基础教程
  • 使用大语言模型(Deepseek)构建一个基于 SQL 数据的问答系统
  • DeepSeek行业应用实践报告-智灵动力【112页PPT全】
  • Layer2 扩容解决方案详解
  • 人工智能(AI):科技新纪元的领航者
  • 关于使用带elementplus前缀图标的步骤
  • vmvare kali如何配置桥接模式进行上网
  • vscode无法预览Markdown在线图片链接
  • 【机器学习】【KMeans聚类分析实战】用户分群聚类详解——SSE、CH 指数、SC全解析,实战电信客户分群案例
  • CSS笔记一
  • 0_关闭防火墙、设置静态IP
  • C++/JavaScript ⭐算法OJ⭐ 链表相交
  • C++ 游戏开发:从零到英雄的进阶之旅
  • [ComfyUI]Recraft贴图开源方案,实现服装印花自由
  • Debezium 报错:“The db history topic is missing” 的处理方法
  • Fences 5深度解析:一键打造超高效整洁桌面
  • QT中经常出现的用法:组合
  • iTHOR 虚拟环境简述
  • wordpress 加logo/快排seo排名软件
  • 学做内账的网站/中山360推广
  • 专业网站建设必要性/南宁百度seo优化
  • 武汉网站二次开发/全球热搜榜排名今日
  • 建设网站的优势/seo平台怎么样
  • 西安专业做网站的公司/重庆seo代理计费