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

【13】制作镜像以及重启实例

制作镜像
k8s集群

有两个镜像需要制作,一个是master节点,一个是node节点。

在master节点上成功部署了k8s的控制平面,在node节点上部署了worker节点的配置,不知道打包镜像重启之后集群的状态是什么样的。

确认集群在运行:

root@master:~/iperf# kubectl get nodes
NAME     STATUS   ROLES           AGE   VERSION
master   Ready    control-plane   24h   v1.28.2
node2    Ready    work            23h   v1.28.2
root@master:~/iperf# kubectl get pods --all-namespaces
NAMESPACE        NAME                                       READY   STATUS    RESTARTS       AGE
example-hotrod   example-hotrod-77df45ccfb-lm748            2/2     Running   2 (137m ago)   3h12m
kube-system      calico-kube-controllers-658d97c59c-wpxnc   1/1     Running   0              18h
kube-system      calico-node-nrlph                          1/1     Running   0              18h
kube-system      calico-node-qz8pz                          1/1     Running   1 (137m ago)   18h
kube-system      coredns-6554b8b87f-4qm9x                   1/1     Running   0              24h
kube-system      coredns-6554b8b87f-7hbjs                   1/1     Running   0              24h
kube-system      etcd-master                                1/1     Running   0              24h
kube-system      kube-apiserver-master                      1/1     Running   0              24h
kube-system      kube-controller-manager-master             1/1     Running   0              24h
kube-system      kube-proxy-8jlr5                           1/1     Running   1 (137m ago)   23h
kube-system      kube-proxy-vt2xm                           1/1     Running   0              24h
kube-system      kube-scheduler-master                      1/1     Running   0              24h
root@master:~/iperf# kubectl get svc --all-namespaces
NAMESPACE        NAME             TYPE        CLUSTER-IP     EXTERNAL-IP   PORT(S)                          AGE
default          kubernetes       ClusterIP   10.96.0.1      <none>        443/TCP                          24h
example-hotrod   example-hotrod   NodePort    10.110.11.37   <none>        8080:30188/TCP                   17h
example-hotrod   jaeger           NodePort    10.111.85.38   <none>        6831:32549/UDP,16686:30629/TCP   17h
kube-system      kube-dns         ClusterIP   10.96.0.10     <none>        53/UDP,53/TCP,9153/TCP           24h

删除当前的数据:

进入jeager目录,将此次运行生成的数据删掉

root@master:~/jaeger/data_collect# lscollect_trace_json.py    generated_requests.json   gen_trace.py   trace_collector.log   traces   traces.tar   trace_to_csv.py
root@master:~/jaeger/data_collect# ls
collect_trace_json.py  generated_requests.json  gen_trace.py  trace_collector.log  traces  traces.tar  trace_to_csv.py
root@master:~/jaeger/data_collect# rm generated_requests.json 
root@master:~/jaeger/data_collect# rm -r traces
root@master:~/jaeger/data_collect# rm traces.tar 
performance 

进入根目录下的performance目录,删除相关的csv文件。

进入运行数据存储的目录/mnt/data1,删除里面的数据。

iperf

进入iperf文件夹,删掉iperf_result.csv文件。

随后查看实例是否挂载了云盘。发现只有系统盘。

制作镜像

选中实例,然后创建自定义镜像。名称为k8s_master_20250112。

另一个的名称为k8s_node_20250112。 

验证镜像

为了验证我们的镜像是否成功,也为了熟悉下次创建集群的时候应该重做哪些配置,需要解决哪些问题,用刚才创建的镜像新建两个实例。

用上面的两个镜像重新创建实例之后,进到master节点,此时发现还是原来的集群在运行,可能是镜像保存了之前的状态。所以需要删掉原来的k8s配置,重新初始化。在node和master节点同时执行下面的命令:

kubeadm reset -f

同时根据提示手动清理了下面的文件:

rm -rf /etc/cni/net.d
rm -rf ~/.kube

但是在重新初始化之前,还是要像第一遍配置k8s一样,进行配置的检查. 

1.进入/etc/modules-load.d文件夹,执行./ipvs.conf,重新加载ipvs模块。

cd /etc/modules-load.d
./ipvs.conf
lsmod | grep ip_vs

显示结果如下: 

root@iZuf66eyuxf6qiujl2gvxrZ:/etc/modules-load.d# ls
ipvs.conf  modules.conf
root@iZuf66eyuxf6qiujl2gvxrZ:/etc/modules-load.d# ./ipvs.conf 
root@iZuf66eyuxf6qiujl2gvxrZ:/etc/modules-load.d# lsmod | grep ip_vs
ip_vs_ftp              16384  0
ip_vs_sed              16384  0
ip_vs_nq               16384  0
ip_vs_sh               16384  0
ip_vs_dh               16384  0
ip_vs_lblcr            16384  0
ip_vs_lblc             16384  0
ip_vs_wrr              16384  0
ip_vs_rr               16384  0
ip_vs_wlc              16384  0
ip_vs_lc               16384  0
ip_vs                 176128  22 ip_vs_wlc,ip_vs_rr,ip_vs_dh,ip_vs_lblcr,ip_vs_sh,ip_vs_nq,ip_vs_lblc,ip_vs_wrr,ip_vs_lc,ip_vs_sed,ip_vs_ftp
nf_nat                 49152  3 nft_chain_nat,xt_MASQUERADE,ip_vs_ftp
nf_conntrack          172032  4 xt_conntrack,nf_nat,xt_MASQUERADE,ip_vs
nf_defrag_ipv6         24576  2 nf_conntrack,ip_vs
libcrc32c              16384  6 nf_conntrack,nf_nat,btrfs,nf_tables,raid456,ip_vs

2.修改内核参数

modprobe br_netfilter
cat > /etc/sysctl.d/k8s.conf <<EOF
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
net.ipv4.ip_forward = 1
EOF

3.设置容器运行时

crictl config runtime-endpoint unix:///run/containerd/containerd.sock

 4.拉取镜像

# 使用 ctr 命令拉取所需镜像
ctr -n k8s.io images pull registry.aliyuncs.com/google_containers/kube-apiserver:v1.28.2
ctr -n k8s.io images pull registry.aliyuncs.com/google_containers/kube-controller-manager:v1.28.2
ctr -n k8s.io images pull registry.aliyuncs.com/google_containers/kube-scheduler:v1.28.2
ctr -n k8s.io images pull registry.aliyuncs.com/google_containers/kube-proxy:v1.28.2
ctr -n k8s.io images pull registry.aliyuncs.com/google_containers/pause:3.9
ctr -n k8s.io images pull registry.aliyuncs.com/google_containers/etcd:3.5.7-0
ctr -n k8s.io images pull registry.aliyuncs.com/google_containers/coredns:v1.10.1

5.修改master节点上kubeadm.yaml的信息。控制节点ip和控制节点名称。

6.重启docker和containerd

systemctl restart docker
systemctl restart containerd

 7.执行下面命令

kubeadm init --config=kubeadm.yaml --ignore-preflight-errors=SystemVerification

初始化成功。 

8.配置kubectl

.kube 是 kubectl 默认查找配置的目录,admin.conf 是 kubeadm 在初始化集群时创建的管理员配置文件,它包含了访问集群所需的所有信息:API server 的地址和端口,集群的证书信息,用户认证信息(证书、token等),将admin.conf放置到.kube里面。

mkdir -p $HOME/.kube
cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
chown $(id -u):$(id -g) $HOME/.kube/config  # 赋予正确权限
export KUBECONFIG=/etc/kubernetes/admin.conf

export KUBECONFIG=/etc/kubernetes/admin.conf 是告诉kubectl去哪里找配置文件。 

随后查看kubectl get nodes,发现控制平面已经初始化成功,有些pod也开始运行了。

9.将kubeadm join命令粘贴到node节点。

10.kubectl apply -f calico.yaml,可以看到集群开始运行。

 

 运行jeager

后来发现要改的地方实在太多了,还不如保持master节点不变,一直换node节点。

至少镜像是成功的。

相关文章:

【13】制作镜像以及重启实例

制作镜像 k8s集群 有两个镜像需要制作&#xff0c;一个是master节点&#xff0c;一个是node节点。 在master节点上成功部署了k8s的控制平面&#xff0c;在node节点上部署了worker节点的配置&#xff0c;不知道打包镜像重启之后集群的状态是什么样的。 确认集群在运行&#…...

electron 启动警告

1. 问题 当启动 electron 时&#xff0c;控制台警告 Electron Security Warning (Insecure Content-Security-Policy) This renderer process has either no Content Security 2. 解决方法 在主进程文件 main.js 中添加如下内容 process.env["ELECTRON_DISABLE_SECURI…...

wow-agent 学习笔记

wow-agent-课程详情 | Datawhale 前两课比较基础&#xff0c;无笔记 第三课 阅卷智能体这一块&#xff0c;曾经做过一点和AI助教相关的内容&#xff0c;也是用了一个prompt去进行CoT&#xff0c;但是风格和课程中的不太相同&#xff0c;在下面附上我的prompt 你是一名资深教…...

使用Cilium/eBPF实现大规模云原生网络和安全

大家读完觉得有帮助记得关注和点赞&#xff01;&#xff01;&#xff01; 目录 抽象 1 Trip.com 云基础设施 1.1 分层架构 1.2 更多细节 2 纤毛在 Trip.com 2.1 推出时间表 2.2 自定义 2.3 优化和调整 2.3.1 解耦安装 2.3.2 避免重试/重启风暴 2.3.3 稳定性优先 2…...

“深入浅出”系列之C++:(4)回调函数

在写项目的时候遇见一个问题&#xff0c;现在的需求是主项目需要拿到子项目的结果来进行显示&#xff0c;那么如何集成呢&#xff0c;子项目里面有一个MainWindow类&#xff0c;类里 回调函数是一种通过函数指针将函数作为参数传递给另一个函数的编程技术。这种机制允许程序在特…...

Mysql--运维篇--主从复制和集群(主从复制I/O线程,SQL线程,二进制日志,中继日志,集群NDB)

一、主从复制 MySQL的主从复制&#xff08;Master-Slave Replication&#xff09;是一种数据冗余和高可用性的解决方案&#xff0c;它通过将一个或多个从服务器&#xff08;Slave&#xff09;与主服务器&#xff08;Master&#xff09;同步来实现。主从复制的基本原理是&#…...

设计模式 行为型 状态模式(State Pattern)与 常见技术框架应用 解析

状态模式&#xff08;State Pattern&#xff09;是一种行为型设计模式&#xff0c;它允许对象在内部状态改变时改变其行为&#xff0c;使得对象看起来好像修改了它的类。这种设计模式的核心思想是将对象的状态和行为封装成不同的状态类&#xff0c;通过状态对象的行为改变来避免…...

计算机网络 (38)TCP的拥塞控制

前言 TCP拥塞控制是传输控制协议&#xff08;Transmission Control Protocol&#xff0c;TCP&#xff09;避免网络拥塞的算法&#xff0c;是互联网上主要的一个拥塞控制措施。 一、目的 TCP拥塞控制的主要目的是防止过多的数据注入到网络中&#xff0c;使网络能够承受现有的网络…...

鸿蒙面试 2025-01-09

鸿蒙分布式理念&#xff1f;&#xff08;个人认为理解就好&#xff09; 鸿蒙操作系统的分布式理念主要体现在其独特的“流转”能力和相关的分布式操作上。在鸿蒙系统中&#xff0c;“流转”是指涉多端的分布式操作&#xff0c;它打破了设备之间的界限&#xff0c;实现了多设备…...

【关于for循环的几种写法】

关于for循环的几种写法 在 C 中&#xff0c;for(int i 0; i < n; i) 是一种常见的循环写法&#xff0c;用于遍历从 0 到 n-1 的索引。如果你希望简化这种写法&#xff0c;可以使用以下几种方法&#xff1a; 1. 使用范围 for 循环 如果你需要遍历一个容器&#xff08;如数…...

Apache和PHP:构建动态网站的黄金组合

在当今的互联网世界&#xff0c;网站已经成为了企业、个人和机构展示自己、与用户互动的重要平台。而在这些动态网站的背后&#xff0c;Apache和PHP无疑是最受开发者青睐的技术组合之一。这一组合提供了高效、灵活且可扩展的解决方案&#xff0c;帮助您快速搭建出强大的网站&am…...

免费开源的下载工具Xdown

软件介绍 Xdown是一款功能强大的开源免费下载工具&#xff0c;专为PC端用户设计&#xff0c;支持多种协议和下载方式。 1、多线程下载 Xdown支持最高128线程的并发下载&#xff0c;能够将文件分割成多个部分同时下载&#xff0c;从而显著提升下载速度。 2、多种协议支持 该…...

Three.js 数学工具:构建精确3D世界的基石

文章目录 前言一、向量&#xff08;Vectors&#xff09;二、矩阵&#xff08;Matrices&#xff09;三、四元数&#xff08;Quaternions&#xff09;四、欧拉角&#xff08;Euler Angles&#xff09;五、颜色&#xff08;Colors&#xff09;六、几何体生成器&#xff08;Geometr…...

如何明智地提问

如何明智地提问的重要总结&#xff0c;让我为主要观点添加一些具体的实践建议&#xff1a; 提问前的准备工作 尝试在 Google、Stack Overflow 等平台搜索相似问题阅读相关文档和错误日志尝试自己调试和排查问题记录下已尝试过的解决方案 选择合适的提问平台 Stack Overflow…...

Microsoft Sql Server 2019 函数理解

说到函数&#xff0c;首先和存储过程作个比较吧&#xff0c;两者有一个共同点都是预编译优化后存储在磁盘中&#xff0c;所以效率 要比T-SQL高一点点。值得注意的是&#xff0c;存储过程可以创建或访问临时表&#xff0c;而函数不可以&#xff1b; 同时函数不可 以修改表中的数…...

自定义日期转换配置

文章目录 1.日期问题出现原因以及解决方案概述1.图示2.三种解决方案概述1.对于表单数据 application/x-www-form-urlencoded2.对于JSON数据1.使用JsonFormat注解2.自定义Jackson日期转换配置 2.解决方案common-web-starter1.目录2.BaseController.java 使用InitBinder解决表单数…...

“AI智能服务平台系统,让生活更便捷、更智能

大家好&#xff0c;我是资深产品经理老王&#xff0c;今天咱们来聊聊一个让生活变得越来越方便的高科技产品——AI智能服务平台系统。这个系统可是现代服务业的一颗璀璨明珠&#xff0c;它究竟有哪些魅力呢&#xff1f;下面我就跟大家伙儿闲聊一下。 一、什么是AI智能服务平台系…...

SQL美化器优化

文章目录 1.目录2.代码 1.目录 2.代码 package com.sunxiansheng.mybatis.plus.inteceptor;import org.apache.ibatis.executor.statement.StatementHandler; import org.apache.ibatis.mapping.*; import org.apache.ibatis.plugin.*; import org.apache.ibatis.reflection.*…...

我的128天创作之路:回顾与展望

大家好呀&#xff01;今天来和你们分享一下我的创作历程&#x1f601;。 一、机缘 最开始创作呢&#xff0c;是因为在学习 C 的 STL 时&#xff0c;像 string、list、vector 这些模板可把我折腾得够呛&#xff0c;但也让我学到了超多东西&#xff01;我就想&#xff0c;要是把我…...

内核配置参数整理

#参考网页 linux5.2 &#xff1c;.config&#xff1e;文件注释 详细解释 CONFIG_ARMy&#xff1a;启用ARM架构支持&#xff0c;这是ARM处理器专用的内核配置选项。 CONFIG_ARM_HAS_SG_CHAINy&#xff1a;启用对散列表&#xff08;scatter-gather&#xff09;链的支持&#xf…...

Taurus多执行器对比实战:JMeter/Gatling/Locust统一压测方案

1. 为什么选Taurus做多执行器对比——不是为了炫技&#xff0c;而是为了少踩坑在性能测试领域&#xff0c;我见过太多团队卡在“选型”这一步&#xff1a;刚招来一个会写JMeter脚本的工程师&#xff0c;项目突然要压测WebSocket接口&#xff0c;发现JMeter原生支持弱、插件维护…...

OpenClaw 连接阿里云百炼图文教程

OpenClaw 连接阿里云百炼图文教程 前置准备 已安装并可以正常打开 OpenClaw Windows。 OpenClaw 顶部 Gateway 状态保持在线。 已准备好可正常登录的阿里云账号。 可以正常访问阿里云百炼登录地址&#xff1a;https://bailian.console.aliyun.com/cn-beijing#/home 建议提…...

3步深度解锁:网络设备权限管理工具的实战手册

3步深度解锁&#xff1a;网络设备权限管理工具的实战手册 【免费下载链接】zteOnu A tool that can open ZTE onu device factory mode 项目地址: https://gitcode.com/gh_mirrors/zt/zteOnu 你是否曾面对功能受限的网络设备感到束手无策&#xff1f;当默认配置锁死了硬…...

开启Python GUI开发新纪元:Tkinter Designer可视化界面自动化生成终极指南

开启Python GUI开发新纪元&#xff1a;Tkinter Designer可视化界面自动化生成终极指南 【免费下载链接】Tkinter-Designer An easy and fast way to create a Python GUI &#x1f40d; 项目地址: https://gitcode.com/gh_mirrors/tk/Tkinter-Designer 在Python GUI开发…...

基于GSM与Arduino的远程控制系统:DIY电话控制与短信报警方案

1. 项目概述与核心价值如果你曾经想过&#xff0c;在离家几十公里外&#xff0c;仅凭一部普通的手机&#xff0c;就能远程打开家里的车库门、查看门窗是否关好&#xff0c;甚至在异常情况发生时让系统自动打电话给你报警&#xff0c;那么这个基于GSM的远程控制系统项目&#xf…...

圈复杂度>12=技术债炸弹?DeepSeek静态分析实战:从17.8→3.2的重构路径全披露

更多请点击&#xff1a; https://codechina.net 第一章&#xff1a;圈复杂度&#xff1e;12技术债炸弹&#xff1f;DeepSeek静态分析实战&#xff1a;从17.8→3.2的重构路径全披露 当函数圈复杂度&#xff08;Cyclomatic Complexity&#xff09;持续高于12&#xff0c;它不再是…...

避坑指南:Unity中AABB碰撞检测失效的5种常见原因及解决方法

Unity中AABB碰撞检测失效的深度排查与解决方案在Unity开发中&#xff0c;AABB&#xff08;轴对齐包围盒&#xff09;碰撞检测是基础但容易出问题的环节。许多开发者都遇到过这样的情况&#xff1a;明明逻辑正确&#xff0c;测试时却出现物体穿透、碰撞时有时无等诡异现象。本文…...

CA-CFAR、GO-CFAR、SO-CFAR怎么选?一张图看懂三种恒虚警检测算法的适用场景与避坑指南

CA-CFAR、GO-CFAR、SO-CFAR工程选型指南&#xff1a;从算法原理到场景适配 雷达信号处理工程师常常面临一个经典难题&#xff1a;在复杂环境中如何选择合适的恒虚警检测算法&#xff1f;当海面杂波、多目标干扰或低信噪比条件同时出现时&#xff0c;CA、GO、SO三种CFAR变体的性…...

Unity中实现深度遮挡:LingBot-Depth实战接入与优化

1. 这不是“加个插件就完事”的AR效果——为什么LingBot-Depth在Unity里值得专门写一篇实战教程你肯定见过那种AR应用&#xff1a;虚拟椅子摆在真实地板上&#xff0c;但当你绕到椅子后面&#xff0c;它依然完整显示&#xff0c;完全无视身后那堵真实的墙&#xff1b;或者一只3…...

从配置到运行时:Forge Admin 的动态 API 配置管理是怎么做的

问题&#xff1a;同一个接口&#xff0c;今天要加认证、明天要加加密、后天要限流&#xff0c;这些行为散落在拦截器、过滤器、注解里&#xff0c;改一次牵一发动全身&#xff0c;怎么集中管理和动态刷新&#xff1f; 1. 这个问题在企业后台里为什么常见 在企业后台开发中&am…...