avatar

十六小站

欢迎来到我的个人主页! 期待与您分享我的经验与故事,一起探索技术的无穷可能!

  • 首页
  • NAS专题
  • 关于
Home KubeShpere部署(4.1.2)
文章

KubeShpere部署(4.1.2)

Posted 13 days ago Updated 13 days ago
By 十六 已删除用户
34~44 min read

KubeSphere 愿景是打造一个以 Kubernetes 为内核的云原生分布式操作系统,它的架构可以非常方便地使第三方应用与云原生生态组件进行即插即用(plug-and-play)的集成,支持云原生应用在多云与多集群的统一分发和运维管理。

既然已经选择要安装,必然已经知道了他的应用场景,本文以4.1.2为例来记录如何部署。

环境准备

机器准备

一般部署k8s必然是集群部署,这里准备了三台机器这里安装的是ubuntu-22.04-live-server版本,镜像从阿里云下载的。

https://developer.aliyun.com/mirror/?spm=a2c6h.13651102.0.0.3e221b11UmJCFa&serviceType=mirror&tag=%E7%B3%BB%E7%BB%9F

序号

机器名

IP

1

k8s-master

192.168.3.80

2

k8s-node1

192.168.3.81

3

k8s-node2

192.168.3.82

配置要求

下面是官方的配置要求:

系统

最低要求(每个节点)

生产环境要求(每个节点)

Ubuntu 16.04,18.04,20.04,22.04

CPU:2 核,内存:4 GB,硬盘:40 GB

CPU:8 核,内存:16 GB,硬盘:200 GB

Debian 9,Debian 10

CPU:2 核,内存:4 GB,硬盘:40 GB

CPU:8 核,内存:16 GB,硬盘:200 GB

CentOS 7.x,CentOS Stream

CPU:2 核,内存:4 GB,硬盘:40 GB

CPU:8 核,内存:16 GB,硬盘:200 GB

Red Hat Enterprise Linux 7.x,8.x

CPU:2 核,内存:4 GB,硬盘:40 GB

CPU:8 核,内存:16 GB,硬盘:200 GB

SUSE Linux Enterprise Server 15/openSUSE Leap 15.2

CPU:2 核,内存:4 GB,硬盘:40 GB

CPU:8 核,内存:16 GB,硬盘:200 GB

Kylin v10

CPU:2 核,内存:4 GB,硬盘:40 GB

CPU:8 核,内存:16 GB,硬盘:200 GB

其他要求

其他要求可以参阅官网 ,这里没什么要配置的 。https://docs.kubesphere.com.cn/v4.2.0/03-installation-and-upgrade/01-preparations/01-supported-k8s/

机器初始化

安装之前要做一些时区同步,前置软件安装之类的 。

sudo无密码配置(非root用户安装)

如果使用非root用户安装,因为需要执行一些sudo的命令 ,所以需要sudo之后可以不用输入密码 。

cat <<EOF | sudo tee /etc/sudoers.d/long
Defaults:long !fqdn
Defaults:long !requiretty
long ALL=(ALL) NOPASSWD: ALL
EOF

配置主机名(可选)

如果对主机名有要求的话 ,这里可以做配置 ,至于网上说的hosts中配置域名之类的,kk会帮我们自动配置,这里不需要操作

sudo hostnamectl hostname ks-master-0

安装必备软件

sudo apt-get update
sudo apt-get install curl socat conntrack ebtables ipset ipvsadm

配置时间同步

  1. 时间同步在集群中是非常重要的一个步骤 ,这里使用ntp配置国内统一授时服务器。

sudo nano /etc/systemd/timesyncd.conf
  1. 编辑文件添加以下内容

NTP=ntp.aliyun.com ntp1.aliyun.com ntp.ntsc.ac.cn
  1. 生效配置

sudo systemctl restart systemd-timesyncd.service
sudo timedatectl set-ntp true
  1. 设置上海时区

sudo timedatectl set-timezone Asia/Shanghai

下载KubeKey

这里先说一下KubeKey是KubeShpere官方提供的轻量化安装软件,以下简称kk

#配置中国取,设置之后默认会从阿里云镜像仓库下载镜像依赖
export KKZONE=cn
#下载软件
curl -sfL https://get-kk.kubesphere.io | sh -

软件下载页可以从官网下载然后解压缩,目前仅使用3.x来安装截止目前最新版本是3.1.11

https://github.com/kubesphere/kubekey/releases/tag/v3.1.11

创建配置

./kk create config -f kubesphere-v3.4.0-k8s-1.33.4.yaml --with-kubernetes v1.33.4
#可选参数【指定ks版本,不指定则后续手动安装,4.1.2不需要指定】 --with-kubesphere v3.4.0

修改配置

这里配置比较简单 ,以下是全部配置 ,如果指定了ks版本为3.x则后面会有比较多的配置。

修改的点有以下几个:

  1. spec.hosts指定所有的集群机器和其域名

  2. roleGroups指定每个机器的角色

  3. kubernetes.containerManager可以选择containerd和docker,k8s官方推荐使用containerd.因为其更轻量一些。

  4. controlPlaneEndpoint.internalLoadbalancer放开即可默认配置。

apiVersion: kubekey.kubesphere.io/v1alpha2
kind: Cluster
metadata:
  name: sample
spec:
   hosts:
   - {name: k8s-master, address: 192.168.3.80, internalAddress: 192.168.3.80, user: long, password: "123456"}
   - {name: k8s-node1, address: 192.168.3.81, internalAddress: 192.168.3.81, user: long, password: "123456"}
   - {name: k8s-node2, address: 192.168.3.82, internalAddress: 192.168.3.82, user: long, password: "123456"}
   roleGroups:
    etcd:
    - k8s-master
    control-plane:
    - k8s-master
    worker:
    - k8s-master
    - k8s-node1
    - k8s-node2
  controlPlaneEndpoint:
    ## Internal loadbalancer for apiservers
    internalLoadbalancer: haproxy
    domain: lb.kubesphere.local
    address: ""
    port: 6443
  kubernetes:
    version: v1.33.4
    clusterName: cluster.local
    autoRenewCerts: true
    containerManager: containerd
  etcd:
    type: kubekey
  network:
    plugin: calico
    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 init os -f kubesphere-v3.4.0-k8s-1.33.4.yaml

创建集群

执行命令开始创建集群

./kk create cluster -f kubesphere-v3.4.0-k8s-1.33.4.yaml --debug

4.x的版本安装比较快 ,安装完成后需要自己手动安装ks-core组件 。

安装ks-core

官方给的命令,但是发现包是下载不下来的

helm upgrade --install -n kubesphere-system --create-namespace ks-core https://charts.kubesphere.io/main/ks-core-1.1.3.tgz --debug --wait

所以这里使用离线的tgz包。

ks-core-1.1.3.tgz

helm upgrade --install ks-core /tmp/ks-core-1.1.3.tgz \
  -n kubesphere-system --create-namespace \
  --set hostClusterName=opslab-main \
  --set ha.enabled=true \
  --set redisHA.enabled=true \
  --wait --timeout 15m \
  --debug

查看安装结果

可以查看pod和服务的状态来看应用是否启动

kubectl get pod -A
kubectl describe pod [name] -n [namespace]

主要查看以下应用状态

访问页面

安装完成后访问页面http://192.168.3.80:30880/,输入用户名密码即可进入:admin / P@88w0rd

然后就可以在扩展中心中进行各种可插拔组件的安装。

以下是组件清单

常见问题

  1. 内核不支持,使用uname -r查看内核版本,需要升级到5.x版本

  2. etcd安装失败,导致连接不上2379端口。

修改ETCD_INITIAL_CLUSTER_STATE为new

# etcd有问题
/etc/systemd/system/etcd.service

将existing改为new
ETCD_INITIAL_CLUSTER_STATE=existing

运维, 高手之路
License:  CC BY 4.0
Share

Further Reading

Sep 30, 2025

KubeShpere部署(4.1.2)

KubeSphere 愿景是打造一个以 Kubernetes 为内核的云原生分布式操作系统,它的架构可以非常方便地使第三方应用与云原生生态组件进行即插即用(plug-and-play)的集成,支持云原生应用在多云与多集群的统一分发和运维管理。 既然已经选择要安装,必然已经知道了他的应用场景,本文以4

OLDER

微服务之Auth篇

NEWER

Recently Updated

  • KubeShpere部署(4.1.2)
  • 微服务之Auth篇
  • 记一次前端优化(vue2)
  • SpringBoot3.X-2(缓存Redis/memory)
  • SpringBoot3.X-1(MP+Druid)

Trending Tags

Java Docker 前端 中间件 数据库 群晖 unraid

Contents

©2025 十六小站. Some rights reserved.

Using the Halo theme Chirpy