银河麒麟v10-arm离线部署k8s集群(v1.23.4)

发布时间:2026/9/18 13:07:08

银河麒麟v10-arm离线部署k8s集群(v1.23.4) 目录1.查看麒麟系统的内核2. 环境初始化3. 安装docker4. 安装k8s组件5. 准备镜像6. 在master上操作7. 在node1上操作8. 在master上查看节点信息9. 安装网络插件calico10. 安装界面化管理工具离线部署的前提亲测成功其他的不保证麒麟系统的内核: 4.19.90-25.2.v2101.gfb01.ky10.aarch64Docker : v 20.10.7k8sv1.23.4另外k8s部署的服务器内存建议预留大一些。准备相关的包ipvsadm包ipvsadmdocker的二进制包docker-二进制包k8s组件的rpm包k8s-rpmk8s相关的镜像文件k8s-imagek8s环境的依赖项k8s-dependency配置文件yaml搭建本地仓库的镜像包registry-image未部署过k8s的环境在部署过程中系统会提示缺少一些依赖项相关的依赖项放置在k8s-dependency中。本次部署基于两台银河麒麟v10计算机一台作为k8s的调度节点master一台作为k8s的工作节点node修改两台计算机的网络配置如果是多网卡的话配置ip对应的网络配置文件设置静态ipcd /etc/sysconfig/network-scripts //网络配置文件在这里 ls cp ./ifcfg-ens33 ./ifcfg-ens33.bak //修改系统文件前养成做备份的习惯 vim ifcfg-ens33修改以下内容BOOTPROTOstatic ONBOOTyes添加以下内容IPADDR192.168.0.190 NETMASK255.255.255.0 GATEWAY192.168.0.2 DNS8.8.8.8修改域名解析文件vim /etc/resolv.conf 添加 nameserver 8.8.8.8重启网络服务service network restart 或 systemctl restart network查看系统ip:ip addr两台计算机都要进行的操作1,2,3,4,51.查看麒麟系统的内核uname -a2. 环境初始化1主机名解析vim /etc/hosts 192.168.0.190 master 192.168.0.193 node190的机子vim /etc/hostname master193的机子vim /etc/hostname node2) 时间同步麒麟系统自带了chronydsystemctl start chronyd //开启时间同步 systemctl enable chronyd //设置时间同步开机自启 date //验证其实时间同步这样操作并没有真的实现时间同步也是在后续学习中知道的实现时间同步的操作我另外写了一篇小博客感兴趣的请移步https://blog.csdn.net/q_hsolucky/article/details/125737244?csdn_share_tail%7B%22type%22%3A%22blog%22%2C%22rType%22%3A%22article%22%2C%22rId%22%3A%22125737244%22%2C%22source%22%3A%22q_hsolucky%22%7DctrtidGLSF33) 禁用iptables和firewalldsystemctl stop firewalld systemctl disable firewalld systemctl stop iptables systemctl disable iptables4) 禁用selinuxlinux下的一个安全服务必须禁用vim /etc/selinux/config SELINUXdisabled正常情况下selinuxenforcing5) 禁用swap分区主要是注释最后一行vim /etc/fstab UUID455cc753-7a60-4c17-a424-7741728c44a1 /boot xfs defaults 0 0 /dev/mapper/centos-home /home xfs defaults 0 0 # /dev/mapper/centos-swap swap swap defaults 0 0 //注释这条6) 修改系统的内核参数vim /etc/sysctl.d/kubernetes.conf 添加以下内容 net.bridge.bridge-nf-call-ip6tables 1 net.bridge.bridge-nf-call-iptables 1 net.ipv4.ip_forward 1重新加载配置sysctl -p也可能是下面的内容加载网桥过滤模块modprobe br_netfilter查看网桥过滤模块是否加载成功lsmod | grep br_netfilter7) 配置ipvs功能在kubernetes中service有两种代理模型一种是基于iptables的一种是基于ipvs的,两者比较的话ipvs的性能明显要高一些但是如果要使用它需要手动载入ipvs模块。麒麟系统自带了Ipset因此安装ipvsadmrpm -ivh ipvsadm-1.31-2.ky10.aarch64.rpm做软连接ln -sf /usr/lib64/libLLVM-7.so /usr/lib64/libLLVM-7.0.0.so貌似不做也行目前没看出会有影响。添加需要加载的模块写入脚本文件cat EOF /etc/sysconfig/modules/ipvs.modules #!/bin/bash modprobe -- ip_vs modprobe -- ip_vs_rr modprobe -- ip_vs_wrr modprobe -- ip_vs_sh modprobe -- nf_conntrack EOF为脚本文件添加执行权限chmod x /etc/sysconfig/modules/ipvs.modules执行脚本文件/bin/bash /etc/sysconfig/modules/ipvs.modules查看对应的模块是否加载成功lsmod | grep -e ip_vs -e nf_conntrack8) 重启服务器上述操作修改了很多系统的配置文件必须重启不能省略。reboot3. 安装docker具体操作参看docker-二进制安装部分。https://blog.csdn.net/q_hsolucky/article/details/124253860?spm1001.2014.3001.55014. 安装k8s组件rpm -ivh *.rpm可能会提示缺少conntrack和socat依赖项需要安装k8s-dependency下的包rpm -ivh *.rpm --nodeps --force重新安装k8s的组件rpm包rpm -ivh *.rpm配置kubelet的cgroup:vim /etc/sysconfig/kubelet 添加 KUBELET_CGROUP_ARGS--cgroup-driversystemd KUBE_PROXY_MODEipvs设置kubelet开机自启systemctl enable kubelet会有创建link的信息生成。查看安装的k8s相关的包rpm -qa | grep kube5. 准备镜像k8s组件及网络插件calico及界面管理工具kuboard加载k8s集群镜像在镜像所在的文件夹执行下面的命令给dockerload.sh文件添加执行权限并运行chmod x dockerload.sh ./dockerload.sh查看镜像加载结果docker imagesk8s.gcr.io/coredns需要重打标签docker tag k8s.gcr.io/coredns:1.8.6 k8s.gcr.io/coredns/coredns:v1.8.6最终镜像结果如下6. 在master上操作创建集群kubeadm init \ --kubernetes-versionv1.23.4 \ --pod-network-cidr10.244.0.0/16 \ --service-cidr10.96.0.0/12 \ --apiserver-advertise-address192.168.0.190出现集群创建成功按照提示进行操作mkdir -p $HOME/.kube sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config sudo chown $(id -u):$(id -g) $HOME/.kube/config7. 在node1上操作把创建集群最下面的命令粘贴过来kubeadm join..... //每个人的都不一样请复制自己的出现可以使用kubectl get nodes查看节点信息证明集群初步搭建好了另外加入节点时需要相应的kubeadm join命令可能会有没有及时记下集群初始化的命令或者过了几天后又需要增加节点的情况临时生成的token只有24小时时效使用kubeadm token list查看token没有结果时说明token过期需要重新生成kubeadm token create --print-join-command 生成临时的token,若生成永久token再加上 --ttl0报错ipv4的问题请修改net.ipv4.ip_forward0需要将其值改为1具体修改在/proc/sys/net/ipv4/ip_forward文件8. 在master上查看节点信息kubectl get nodes -o wide至此初步搭建好集群master和node1的状态为Notready原因是未安装网络插件。9. 安装网络插件calico请按照自己的镜像包名字进行docker load加载calico镜像在masternode1上均加载docker load calico-kube-controllers.tar docker load calico-pod2daemon-flexvol.tar docker load calico-node.tar docker load calico-cni.tar基于进行安装在master上执行即可在该文件所在目录下执行kubectl apply -f calico.yamlps:部署的时候由于服务器是多网卡不是很顺利因此指定了calico的网卡使用的话请注意修改为你自己的网卡名称。稍等一会查看节点状态可以先看一下组件的状态kubectl get pod -n kube-systemPs: 组件的状态为“初始化”或“容器在创建”时表示服务在启动过程中不用着急继续等一会状态会变为running说明k8s集群及组件服务都正常工作了。组件的状态为“镜像拉取失败”等内容说明配置有问题或者镜像版本不匹配具体可以使用命令查看kubectl describe pod pod名称 -n kube-system拉取镜像太慢导致net/http:TLS handshake timeout错误重启docker服务service docker restartpod状态为running后查看节点的状态kubectl get nodes 或 kubectl get nodes -o wide此时应该为ready不代表部署成功了还是要看看kube-system下pob的状态ready不代表部署成功了还是要看看kube-system下pob的状态不要着急状态不是running多等一会再次查看直到所有组件的服务都为runningkubectl get pod -n kube-system 或 kubectl get pod --all-namespaces -o wide10.安装界面化管理工具在安装的节点上加载kuboard镜像,metrics-server的镜像包每个节点上都要有docker load kuboard.tar docker load metrics-server_v0.5.0.tarPs: yaml文件对空格非常敏感尽量不要动原始内容不要随便点空格安装在master上执行kubectl apply -f kuboard-v3.yamlKuboard-v3版本使用默认的账号密码登录账号admin密码Kuboard123访问方式http://192.168.0.190:30080将下面的命令信息粘贴到master上会生成kuboard-agent.yaml文件安装文件kubectl apply -f kuboard-agent.yaml集群没有成为已就绪状态执行该页面验证命令Metrics-server是集群核心监控数据的聚合器通俗的说它存储了集群中各节点的监控数据并且提供了API以供分析和使用。Metrics-server在kubernetes集群中表现为一个deployment对象。不过准确的说它是deploymentserviceclusterrole,clusterrolebinding,apiservice,rolebinding资源对象的综合体。Metrics-server的主要作用为为kube-scheduler,HorizontalPodAutoscaler等k8s核心组件以及kubectl top命令和dashboard等UI组件提供数据来源。在master上执行kubectl apply -f metrics-server-v0.5.0.yaml污点Master一般默认作为调度节点让其工作的话 将master作为node加入nodekubectl taint nodes --all node-role.kubernetes.io/master-给master打上污点NoSchedule一定不能被调度kubectl taint nodes k8s-master1 node-role.kubernetes.io/masterNoSchedule-查看污点kubectl describe node k8s-master1 | grep Taints最终部署好的k8s通过可视化管理工具kuboard查看结果总结k8s离线部署也是趟了n多坑至今还会遇到各种问题希望可以和谐的与大家共同探讨、学习与进步撒花~~~~可以正确安装的话希望可以点个赞非常感谢~~~如果需要上述的安装包的话请移步k8s-v1.23.4-arm版本的离线包-kubernetes文档类资源-CSDN下载PS: 需要的人多的话每个人都发邮箱实在有些麻烦我有点懒不介意的话可以用几个积分下载一下。
延伸阅读

更多相关文章

2026/9/18 13:07:08

光伏MPPT优化:可重启粒子群算法实践

1. 光伏MPPT与粒子群算法的奇妙结合光伏发电系统最核心的挑战之一,就是如何让太阳能板始终工作在最大功率点(MPPT)。传统方法如扰动观察法(P&O)和电导增量法虽然简单,但在局部阴影条件下容易陷入局部最…

2026/9/18 13:02:08

深度强化学习理论、算法与工程实践指南

简介:面向强化学习研究者与工程师的深度强化学习综述,PDF格式。PDF中收录了《深度强化学习理论及其应用综述》完整学术论文,系统梳理DRL理论框架、马尔科夫决策过程、探索-利用困境、奖励稀疏、样本采集困难、模型稳定性等核心难题&#xff0…

2026/9/18 14:12:15

Galera Cluster高可用实战:MySQL多主同步与HAProxy+Keepalived部署

1. 这不是一篇“点进来就学会”的速成教程——而是一份踩过七次脑溢血、重装过十四台虚拟机后写下的 Galera Cluster 实战手记你点进来的那一刻,大概率正被某个线上 MySQL 主从延迟报警搞得头皮发麻,或者刚在周会上被老板问:“为什么单点故障…

2026/9/18 14:12:15

Elsevier cas-dc模板LaTeX投稿全攻略:从配置到格式审查

1. 为什么我最终选择了cas-dc模板第一次投Elsevier旗下期刊的时候,我踩了一个不大不小的坑。当时手头有一篇做了大半年的工作,目标期刊是Pattern Recognition,我图省事直接拿了一个IEEEtran的模板改格式,想着“内容为王&#xff0…

2026/9/18 14:12:15

PDF设计规范转PPT模板:自动化提取与合规生成

简介:本资源是一份面向科研人员与技术从业者的技术汇报PPT制作指南,聚焦组内学术汇报场景下的专业表达与视觉呈现。内容系统梳理了简约严谨的风格设计、逻辑清晰的表述结构、阶段性工作成果的呈现技巧、个人思考过程的可视化方法,以及字体字号…

2026/9/18 14:12:15

配电网故障恢复重构的GA-BFGS混合算法与MATLAB实现

1. 配电网故障恢复重构的背景与挑战配电网作为电力系统与终端用户连接的"最后一公里",其供电可靠性直接影响社会生产生活的正常运转。当配电网发生线路短路、设备故障等意外情况时,传统做法是等待故障完全修复后再恢复供电,这往往导…

2026/9/18 14:07:15

用 TaoToken 的 Key 跑 CoALA 记忆架构,State/History 该留哪几轮

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/18 14:13:01

拯救者Y7000黑屏故障排查与维修实战指南

1. 项目概述:一台黑屏的拯救者Y7000,到底卡在哪一步? 联想拯救者Y7000系列笔记本,从2018年第一代搭载i5-8300H开始,到后来的i7-9750H、i7-10750H、i5-11400H,再到2023年款的R7-7840HS,它始终是学…

2026/9/18 0:01:09

Google Colab 实战:运行模型、数据加载与报错排查

1. 为什么我劝你先搞懂 Colab 的运行模型1.1 Colab 到底是什么,跟本地跑代码差在哪Google Colab 简单说就是一台跑在浏览器里的 Linux 虚拟机,你打开一个 Notebook,背后就连上了一台带 GPU 的远程机器。你在单元格里敲的每一行 Python&#x…

2026/9/18 0:01:09

C语言数据类型与表达式详解

1. C语言数据与数据类型概述在C语言编程中,数据是程序处理的核心对象。理解数据的分类和特性是掌握C语言的基础。C语言中的数据主要分为四大类:常量、变量、表达式和函数。这些数据类型构成了C语言程序的基本元素,每种类型都有其独特的特性和…

2026/9/18 0:01:09

SQL时间字段指定时间段查询:区间语义、索引与时区避坑

上周排查一个线上问题&#xff0c;用户反馈"昨天的订单一条都没查到"&#xff0c;但数据库里明明躺着两千多条。最后定位下来&#xff0c;不是数据丢了&#xff0c;也不是接口挂了&#xff0c;而是那个查询条件把时间段写成了> 2024-05-20 00:00:00 AND < 2024…

2026/9/18 14:13:03

USB Type-C PCB布局分区设计:电源、高速信号与PD协议全攻略

做硬件这行&#xff0c;Type-C接口算是典型的“看着简单&#xff0c;做起来全坑”的东西。光引脚就24个&#xff0c;高低速信号、电源、控制线全部塞在一个小小的连接器里&#xff0c;如果PCB布局不做规划&#xff0c;打样回来基本就是“插上没反应”、“高速掉线”、“静电一打…

2026/9/18 14:13:02

系统编程学习原型如何补齐稳定性边界

系统编程学习原型如何补齐稳定性边界预算有限时&#xff0c;我先优化明显多余的复制&#xff0c;而不是猜测性地换容器。用借用传递只读数据通常就能减少分配&#xff1a; fn parse(line: &str) -> Result<Item, Error> { /* ... */ }用基准确认热点确实在分配&am…

2026/9/18 14:13:02

雨花区哪家财务公司代理记账比较好?

在雨花区&#xff0c;企业处理财税事务常常面临诸多挑战&#xff0c;选择一家靠谱的财务公司至关重要。湖南巨勤财务管理咨询有限公司就是本地正规实体财税服务机构&#xff0c;深耕本地工商财税行业多年&#xff0c;熟悉当地工商局、税务局最新政策与申报流程。主营公司注册、…

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
咨询二维码