本文由 KubeSphere 社区贡献者 天行1st 编写。本文为作者实践总结。本文记录了在信创环境中基于混合架构(x86 与 ARM64)部署 KubernetesKubeSphere 的实践过程,覆盖多种国产 CPU 和操作系统,具有一定的参考价值。

环境涉及软件版本信息

  • 服务器芯片: 鲲鹏/飞腾2500(arm64)+海光/兆芯(x86)
  • 操作系统:银河麒麟V10+openEuler+麒麟信安+龙蜥
  • Containerd: 1.7.13
  • Kubernetes:v1.32.5
  • KubeSphere:v4.1.3
  • KubeKey: v3.1.10(二开版)

服务器基本信息

主机名架构OSCPUIP
master1arm64麒麟信安 3Kunpeng-920192.168.0.219
master2x86_64欧拉 20.03Hygon C86 3350192.168.0.87
master3arm64麒麟V10 sp1Phytium,FT-2500192.168.0.120
node1x86_64龙蜥 8.6KX-5000192.168.0.158
node2arm64UOSKunpeng-920192.168.0.89

1.说明

作者使用K8sKubeSphere过程中已适配芯片和操作系统如下:

  • CPU芯片:
    • 鲲鹏
    • 飞腾
    • 海光
    • 兆芯
    • 国际芯片:intel、ARM等
  • 操作系统
    • 银河麒麟V10
    • 麒麟国防版
    • 麒麟信安
    • 中标麒麟V7
    • 统信 UOS
    • 华为欧拉 openEuler、移动大云
    • 阿里龙蜥 Anolis OS
    • 腾讯 TencentOS
    • 国际操作系统:CentOS、Ubuntu、Debian等

关于 kt

kt是基于Kubekey二次开发的产物,具备Kubekey的所有功能,二开主要为适配信创国产化环境、简化ARM部署过程和国产化环境离线部署。支持ARM64AMD64架构国产操作系统,已适配芯片+操作系统如上。

2.环境准备

将对应架构 kt_**.tar.gz 上传至每个节点

2.1 系统初始化

解压kt文件后执行./kt init-os 已适配操作系统和架构见1.说明

该命令kk会自动判断操作系统和架构以安装依赖项和进行必要的初始化配置。

3 创建 Kubernetes 集群

以下操作默认在master1执行

3.1 创建安装目录

home目录下创建ks目录,用于安装部署 K8s+ KubeSphere 。

此处之所以在/home目录下安装,是有些客户自带操作系统而且默认根目录下只有50G空间,而更大的空间在/home目录下。笔者所在公司可能需要到用户提供的服务器和操作系统安装集群,为避免空间占用不足,直接到/home下新建。

mkdir -p /home/ks
cd /home/ks

3.2 上传kt

kt移动至/home/ks目录下

3.3 创建集群配置文件

主要修改相关节点和harbor信息

./kt create config --with-kubernetes v1.32.5

3.4 修改配置文件

根据实际服务器信息,配置到生成的config-sample.yaml

apiVersion: kubekey.kubesphere.io/v1alpha2
kind: Cluster
metadata:name: sample
spec:hosts:- {name: master1, address: 192.168.0.219, internalAddress: 192.168.0.219, user: root, password: "123@213", arch: arm64}- {name: master2, address: 192.168.0.87, internalAddress: 192.168.0.87, user: root, password: "123@213"}- {name: master3, address: 192.168.0.120, internalAddress: 192.168.0.120, user: root, password: "123r@213", arch: arm64}- {name: node1, address: 192.168.0.158, internalAddress: 192.168.0.158, user: root, password: "123@213"}- {name: node2, address: 192.168.0.89, internalAddress: 192.168.0.89, user: root, password: "123@213", arch: "arm64"}roleGroups:etcd:- master1- master2- master3control-plane: - master1- master2- master3worker:- node1- node2controlPlaneEndpoint:## Internal loadbalancer for apiservers internalLoadbalancer: haproxydomain: lb.kubesphere.localaddress: ""port: 6443kubernetes:version: v1.32.5clusterName: cluster.localautoRenewCerts: truecontainerManager: containerdetcd:type: kubekeynetwork:plugin: calicokubePodsCIDR: 10.233.64.0/18kubeServiceCIDR: 10.233.0.0/18## multus support. https://github.com/k8snetworkplumbingwg/multus-cnimultusCNI:enabled: falseregistry:privateRegistry: ""namespaceOverride: ""registryMirrors: []insecureRegistries: []addons: []

说明: 具体参数含义可查看官方文档:在 Linux 上安装 Kubernetes 和 KubeSphere,这里写一下注意事项

config-sample.yaml 配置文件的 spec:hosts 参数

官方介绍

  • address 服务器的 SSH 登录 IP 地址。
  • internalAddress 服务器在子网内部的 IP 地址。

注:若部署的服务器在同一区域,内网IP可以互通,address 和internalAddress 都使用内网IP。之前遇到过有的小伙伴买的云服务器做测试,address使用公网IP,由于部署过程通信拷贝文件走了address,公网带宽又低。导致创建集群时异常的慢。

3.5 创建 K8s 集群

export KKZONE=cn./kt create cluster -f config-sample.yaml

执行后会有如下提示,输入 yes/y 继续执行

等待一段时间,看到输入成功的消息

3.6 验证

  • 查看节点状态
kubectl get nodes -o wide
[root@master1 ~]# kubectl get nodes -owide
NAME      STATUS   ROLES           AGE     VERSION   INTERNAL-IP     EXTERNAL-IP   OS-IMAGE                                   KERNEL-VERSION                           CONTAINER-RUNTIME
master1   Ready    control-plane   3m10s   v1.32.5   192.168.0.219   <none>        KylinSecOS Linux 3 (Core)                  4.19.90-2003.4.0.0036.ky3.kb13.aarch64   containerd://1.7.13
master2   Ready    control-plane   2m28s   v1.32.5   192.168.0.87    <none>        openEuler 20.03 (LTS)                      4.19.90-2003.4.0.0036.oe1.x86_64         containerd://1.7.13
master3   Ready    control-plane   2m58s   v1.32.5   192.168.0.120   <none>        Kylin Linux Advanced Server V10 (Tercel)   4.19.90-17.5.ky10.aarch64                containerd://1.7.13
node1     Ready    worker          2m27s   v1.32.5   192.168.0.158   <none>        Anolis OS 8.6                              4.19.91-26.an8.x86_64                    containerd://1.7.13
node2     Ready    worker          2m27s   v1.32.5   192.168.0.89    <none>        UOS Server Euler 20                        4.19.90-2005.2.0.0039.uel20.aarch64      containerd://1.7.13
[root@master1 ~]#
  • 查看pod状态
kubectl get pod -A -o wide

4.安装 KubeSphere

helm upgrade --install -n kubesphere-system --create-namespace ks-core https://charts.kubesphere.io/main/ks-core-1.1.5.tgz \--set global.imageRegistry=swr.cn-south-1.myhuaweicloud.com/gjing1st \--set extension.imageRegistry=swr.cn-south-1.myhuaweicloud.com/gjing1st \--set ksExtensionRepository.image.tag=v1.1.6 \--debug \--wait

若有x86镜像错误,可至所在节点进行x86镜像拉取重命名,类似:

#拉取x86镜像
crictl pull swr.cn-southwest-2.myhuaweicloud.com/ks/kubesphere/ks-controller-manager:v4.1.3
#打tag
ctr -n=k8s.io image tag --force \swr.cn-southwest-2.myhuaweicloud.com/ks/kubesphere/ks-controller-manager:v4.1.3 \swr.cn-south-1.myhuaweicloud.com/gjing1st/kubesphere/ks-controller-manager:v4.1.3

等待一段时间看到成功消息

查看pod列表

5.验证

  • 登录页面

初次登录需要换密码,如果不想换也可以继续填写P@88w0rd,不过建议更换

  • 首页

  • 集群管理信息

  • 节点信息

  • 节点详细
    • master1

- master2

- master3

6.总结

本次技术实践成功在信创环境下完成混合架构云原生平台部署,具体涵盖 x86(海光/兆芯)和 ARM64(飞腾/鲲鹏)两大架构的多款国产芯片,适配UOS、麒麟、欧拉等主流国产操作系统,最终实现KubernetesKubeSphere的稳定运行。该实践为国产化技术栈的云原生发展提供了可行性验证和技术积累,欢迎更多开发者参与国产化云原生生态的共建与探索。如您在实践中遇到问题,欢迎通过社区论坛交流讨论。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/pingmian/86469.shtml
繁体地址,请注明出处:http://hk.pswp.cn/pingmian/86469.shtml
英文地址,请注明出处:http://en.pswp.cn/pingmian/86469.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

利用python实现NBA数据可视化

大家好&#xff0c;今天我们利用python爬取NBA球星每年的比赛数据并进行可视化展示。主要用到三个模块&#xff1a;xpath、matplotlib。其中xpth负责爬取网站上的信息。Matplotlib是Python开发人员常用的Python绘图库&#xff0c;可以用来绘制各种2D图形&#xff0c;具有绘图质…

基于 SpringBoot+JSP 的医疗预约与诊断系统设计与实现

摘要 本研究针对传统医疗预约与诊断流程中存在的效率低下、信息不透明、患者等待时间长等问题&#xff0c;设计并实现了一个基于 SpringBootJSP 的医疗预约与诊断系统。系统采用 B/S 架构&#xff0c;整合了用户管理、科室管理、医生排班、预约挂号、在线问诊、检查检验、诊断…

2025.6.27总结

最近工作又开始内耗了&#xff0c;一位同事的转岗直接让我破防了&#xff0c;明明他工作干得很不错&#xff0c;会得又多&#xff0c;性格又好&#xff0c;我还经常请教他业务上的问题。我和他的关系并不算太好&#xff0c;但他加入其他部门&#xff0c;竟然让我有些不舍&#…

详解HashMap底层原理

核心数据结构&#xff1a;数组 链表 / 红黑树 HashMap 的底层核心是一个 Node<K,V>[] table 数组&#xff08;通常称为 桶数组 或 哈希桶数组&#xff09;。这个数组的每个元素称为一个 桶。 Node<K,V> (链表节点)&#xff1a; 这是存储键值对的基本单位&#xf…

历史项目依赖库Bugfix技巧-类覆盖

在项目维护过程中&#xff0c;我们可能会遇到历史项目依赖的第三方库出现BUG而需要修复的情况&#xff0c;而这些第三方库可能来源于公司自主开发或开源项目&#xff0c;但由于各种原因&#xff0c;这些库可能已无人维护。 此时&#xff0c;解决这个问题有三个办法 1、基于源…

多模态大型语言模型最新综述

多模态大型语言模型&#xff08;Multimodal Large Language Models&#xff0c;MLLMs&#xff09;已迅速发展&#xff0c;超越了文本生成的范畴&#xff0c;如今能够覆盖图像、音乐、视频、人类动作以及三维物体等多种输出模态。它们通过在统一架构下将语言与其他感知模态整合&…

使用ASIO的协程实现高并发服务器

使用ASIO的协程实现高并发服务器 在 C 网络编程领域&#xff0c;Asio 库提供了两种主要的异步编程范式&#xff1a;传统的回调模式和基于协程的现代模式&#xff0c;传统的回调模式大家都很清楚&#xff0c;这里不多做介绍&#xff0c;本文主要介绍基于协程的模式&#xff0c;…

OpenCV——轮廓检测

轮廓检测 一、轮廓检测二、轮廓的层级三、轮廓的特征3.1、轮廓面积3.2、轮廓周长3.3、边界矩形3.4、最小外接圆3.5、近似轮廓3.6、凸包 一、轮廓检测 轮廓可以简单的描述为具有相同颜色或灰度的连续点连在一起的一条曲线&#xff0c;轮廓通畅会显示出图像中物体的形状。关于轮…

高等概率论题解-心得笔记【15】

文章目录 拓扑参考文献 拓扑 参考文献 《测度论基础与高等概率论》

Windows 10关闭自动更新功能

Windows 10关闭自动更新功能&#xff0c;大家是不是经常用下面的几个步骤&#xff1a; 1、禁用Windows Update服务&#xff1b; 2、在组策略里关闭Win10自动更新相关服务&#xff1b; 3、禁用任务计划里边的Win10自动更新&#xff1b; 4、在注册表中关闭Win10自动更新&…

[Meetily后端框架] 配置指南 | 后端API网关 | API文档体系

链接: https://github.com/Zackriya-Solutions/meeting-minutes docs&#xff1a;会议纪要管理系统 本项目是一个专门用于**处理会议记录**的后端系统。 系统接收会议文本内容&#xff0c;利用先进的AI模型自动识别关键信息&#xff0c;包括行动项、决策内容以及截止期限。 处…

Flink2.0 配置 historyserver

Flink2.0 配置 historyserver 主要是去修改config.yaml配置文件 主要修改的点有两个 网上很多文档都是写的只配置一个 都是坑啊 historyserver :历史服务器 运行 Flink job 的集群一旦停止(例如yarn模式&#xff0c;程序一旦停止&#xff0c;集群也就关闭了)&#xff0c;只能去…

LLM的训练过程

一般而言&#xff0c;训练一个完整的 LLM 需要经过图1中的三个阶段——Pretrain、SFT 和 RLHF。 1.预训练 Pretrain&#xff0c;即预训练&#xff0c;是训练 LLM 最核心也是工程量最大的第一步。LLM 的预训练和传统预训练模型非常类似&#xff0c;同样是使用海量无监督文本对随…

用 AI + Canvas 生成图形、动画与图表

摘要 随着人工智能&#xff08;AI&#xff09;技术与 Web 可视化的结合&#xff0c;前端开发者可以通过自然语言生成复杂的图表、动画和交互式画布&#xff0c;极大地提升了开发效率和用户体验。本文作为《AI 前端&#xff1a;构建智能化 Web 应用的未来》专栏的第七篇&#…

SQL Server for Linux 如何实现高可用架构

关键词&#xff1a;SQL Server for Linux、高可用、读写分离、动态扩容、Always On、可用性组 &#x1f4cb; 文章目录 前言&#xff1a;Linux上的SQL Server不再是梦高可用架构设计 Always On 可用性组故障转移集群实例 读写分离架构 可用性组读写分离应用层读写分离 动态扩…

【51单片机流水灯控制4种造型,按下1,2,3,4时,数码管对应显示键号,同时流水灯对应四种造型】2022-6-1

缘由流水灯控制4种造型&#xff0c;按下1,2,3,4时&#xff0c;数码管对应显示键号&#xff0c;同时流水灯对应四种造型-编程语言-CSDN问答 #include "REG52.h" unsigned char code smgduan[]{0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5…

设计模式 - 工厂方法

工厂方法是一种设计模式&#xff0c;对工厂制造方法进行接口规范化&#xff0c;允许子类工厂决定具体知道哪类产品的实例&#xff0c;最终降低系统耦合&#xff0c;使系统的可维护性、可扩展性等得到提升。 一、工厂的多元化与专业化 要实例化对象&#xff0c;就得用到关键词“…

数据应该如何组织,才能让Excel“读懂”?

前言&#xff1a;如果你希望Excel能“读懂”你的数据&#xff0c;就得学会让排序、筛选、数据透视表、函数等这些功能为我们服务。 假设你在和一个非常聪明但有点“死板”的机器人&#xff08;Excel&#xff09;对话&#xff0c;你必须用它能理解的语言来组织信息。 “一维表”…

js防止重复提交的3种解决方案

防止 javascript 重复点击和提交的关键方法有三种&#xff1a;1. 禁用按钮法&#xff0c;点击后立即禁用按钮并更改文本提示&#xff0c;请求完成后恢复&#xff1b;2. 节流函数&#xff08;throttle&#xff09;&#xff0c;限制函数在设定时间间隔内仅执行一次&#xff0c;适…

【信创-k8s】银河麒麟V10国防版+鲲鹏/飞腾(arm64架构)在线/离线部署k8s1.30+kubesphere

银河麒麟作为国家核高基专项的重要成果&#xff0c;国防版凭借其卓越的安全性和可靠性&#xff0c;已成为军工领域的首选操作系统。之前我们在适配麒麟V4国防版的过程中已发现诸多安全性要求&#xff0c;而麒麟V10国防版在安全防护等级上又达到了更高的级别。 本文将主要演示离…