当前位置: 首页 > 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#53Non-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:- node1control-plane: - node1worker:- node2- node3
...addons:- name: nfs-clientnamespace: kube-systemsources: chart: name: nfs-client-provisionerrepo: https://charts.kubesphere.io/mainvalues:- 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-recommendationsInstall 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 themonitoring status of service components in"Cluster Management". If any service is notready, 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

初次登录需要修改密码

 登录后界面如下:

 


http://www.mrgr.cn/news/92541.html

相关文章:

  • Android移动应用开发实践-1-下载安装和简单使用Android Studio 3.5.2版本(频频出错)
  • 数据开发面试:DQL,DDL,DTL
  • 初会学习记录
  • 【射频仿真学习笔记】Cadence的Layout EXL与ADS dynamic link联动后仿
  • Harmony开发笔记(未完成)
  • 【JAVA-数据结构】Map和Set
  • 30 分钟从零开始入门 CSS
  • DeepSeek R1 + 飞书机器人实现AI智能助手
  • spring结合mybatis多租户实现单库分表
  • C语言机试编程题
  • <tauri><rust><GUI><PLC>基于tauri,编写一个串口485调试助手
  • thinkphp下的Job队列处理
  • Windows版FFmpeg使用及B站视频下载示例python源码
  • 最新版 (持续更新)docker 加速源 linux yum 源
  • 001 Kafka入门及安装
  • 弱监督语义分割学习计划(1)-简单实现Open Vocabulary Label但是效果不好
  • Vue 3 搭建前端模板并集成 Ant Design Vue(2025)
  • 编写Redis开机自启动脚本
  • Imagination GPU 3D Graphics Wrokload
  • 蓝桥杯第十六届嵌入式模拟编程题解析