生产环境 CentOS 7 k8s v1.28.0离线部署

news2024/11/16 12:01:20

背景描述:CentOS 7 Kubernetes 离线部署

随着云计算和微服务架构的普及,Kubernetes(K8s)已经成为容器编排的标准工具。它能够自动化应用的部署、扩展和管理,使得开发和运维的工作更加高效和可靠。然而,在一些特定场景下,由于安全性、网络隔离或企业政策等原因,无法直接访问互联网。在这种情况下,需要在离线环境中部署Kubernetes集群。

一、服务器初始化与docker环境准备工作

参考链接:

生产环境:CentOS 7 Docker 20.10.19离线部署(为离线部署k8s做准备)-CSDN博客文章浏览阅读30次。然而,在某些场景下,由于安全性、网络隔离或企业政策等原因,无法直接访问互联网。这种情况下,需要在离线环境中部署Docker。因此,需要提前下载好所有需要的组件,并在离线环境中进行部署。: 由于数据安全和保密需求,某些机构(如金融机构、政府部门)要求系统不能直接访问外部网络,以防止数据泄露和网络攻击。: 为了简化离线环境下的部署流程,可能需要使用一些辅助工具(如Docker Compose)进行批量部署和管理。: 所有与Docker相关的依赖包及其特定版本需要提前下载,并确保在离线环境中兼容。https://blog.csdn.net/luckysign/article/details/139971133?spm=1001.2014.3001.5502

二、离线安装包

夸克网盘分享夸克网盘是夸克推出的一款云服务产品,功能包括云存储、高清看剧、文件在线解压、PDF一键转换等。通过夸克网盘可随时随地管理和使用照片、文档、手机资料,目前支持Android、iOS、PC、iPad。icon-default.png?t=N7T8https://pan.quark.cn/s/2993ae170aac#/list/share

三、k8s离线部署

#k8s离线部署
cd k8s_rpm

#都进行了强制安装
rpm -ivh 0e6cee78a8e883b6dab6fa113d71f911167b293c58b88953ade826dc1a514ff4-kubelet-1.28.0-0.x86_64.rpm --nodeps --force
rpm -ivh 0f2a2afd740d476ad77c508847bad1f559afc2425816c1f2ce4432a62dfe0b9d-kubernetes-cni-1.2.0-0.x86_64.rpm --nodeps --force
rpm -ivh 3f5ba2b53701ac9102ea7c7ab2ca6616a8cd5966591a77577585fde1c434ef74-cri-tools-1.26.0-0.x86_64.rpm --nodeps --force
rpm -ivh 4aa17ffad1fe0dcaa0d37972a13f34a218bbb6dcc39e535a605412b451d2440e-kubectl-1.28.0-0.x86_64.rpm --nodeps --force
rpm -ivh b7b8fe5a134063b5e5c7794675609bd6a06d334930cfdb4b1ae4e9cdd4f70220-kubeadm-1.28.0-0.x86_64.rpm --nodeps --force
rpm -ivh conntrack-tools-1.4.4-7.el7.x86_64.rpm --nodeps --force
rpm -ivh libnetfilter_cthelper-1.0.0-11.el7.x86_64.rpm --nodeps --force
rpm -ivh libnetfilter_cttimeout-1.0.0-7.el7.x86_64.rpm --nodeps --force
rpm -ivh libnetfilter_queue-1.0.2-2.el7_2.x86_64.rpm --nodeps --force
rpm -ivh socat-1.7.3.2-2.el7.x86_64.rpm --nodeps --force



#kubelet配置更新
vim /etc/sysconfig/kubelet
KUBELET_EXTRA_ARGS="--cgroup-driver=systemd"
#kubelet加入开机自启
systemctl enable kubelet

#k8s—node节点启动需要用到的离线镜像
cd k8s_tar
docker load -i coredns.tar
docker load -i etcd.tar
docker load -i kube-apiserver.tar
docker load -i kube-controller-manager.tar
docker load -i kube-proxy.tar
docker load -i kube-scheduler.tar
docker load -i pause.tar

#将your_master_IP替换成master节点的地址

kubeadm init \
  --apiserver-advertise-address=your_master_IP  \
  --image-repository registry.aliyuncs.com/google_containers \
  --kubernetes-version v1.28.0 \
  --service-cidr=10.96.0.0/12 \
  --pod-network-cidr=10.244.0.0/16 \
--cri-socket=unix:///var/run/cri-dockerd.sock \
  --ignore-preflight-errors=all


  • --apiserver-advertise-address 集群通告地址
  • --image-repository 由于默认拉取镜像地址k8s.gcr.io国内无法访问,这里指定阿里云镜像仓库地址
  • --kubernetes-version K8s版本,与上面安装的一致
  • --service-cidr 集群内部虚拟网络,Pod统一访问入口
  • --pod-network-cidr Pod网络,与下面部署的CNI网络组件yaml中保持一致
  • --cri-socket 指定cri-dockerd接口,如果是containerd则使用--cri-socket unix:///run/containerd/containerd.sock

初始化完成后,最后会输出一个join命令,先记住,下面加入节点会用到。

接着,拷贝kubectl使用的连接k8s认证文件到默认路径:

mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config

此时就可以使用kubectl工具管理K8s集群了,例如查看工作节点

kubectl get nodes

# NAME               STATUS     ROLES            AGE   VERSION
# k8s-master     NotReady   control-plane        20s   v1.28.0

# 注:由于网络插件还没有部署,节点会处于NotReady状态

四、node节点部署

向集群添加新节点,执行在kubeadm init输出的kubeadm join命令并手动加上--cri-socket=unix:///var/run/cri-dockerd.sock:

#此命令为举例,仅为参考

kubeadm join your_master_IP:6443 --token j18dc5.suswnyrc6i7wzzqn --discovery-token-ca-cert-hash sha256:e52e2853720893129ed594984e05ea89965492feee215ab067aa821188bd288d  --cri-socket=unix:///var/run/cri-dockerd.sock

为了安全性,上述命令中的token,默认有效期为24小时,当过期后,就无法使用该命令再加入节点了需要重新生成加入节点命令:

kubeadm token create --print-join-command
4.1集群部署报错重置集群命令
#当初始化中途出现报错时,先重置集群,后重新初始化集群(正在运行的生产环境谨慎使用,会造成整个集群配置与pod格式化造成数据丢失)
kubeadm reset
systemctl daemon-reload
systemctl restart kubelet

五、网络插件部署(镜像未测试还需要完善)

#部署calico插件:
cd calico_tar
docker load -i 
docker load -i 
docker load -i 

cd ..
kubectl apply -f calico.yaml


#查看部署CNI网络插件进度:
kubectl get pods -n kube-system

验证集群状态

#再次在Master节点使用kubectl工具查看节点状态:
kubectl get nodes
#再次在Master节点使用kubectl工具查看节点
kubectl get pod -n kube-system
kubectl get pod -n kube-system -owide
#查看集群健康状态:
kubectl get cs
#查看集群健康状态命令
kubectl cluster-info

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

(亲测有效)2024代替电视家的app,电视家停了还有什么软件可以看电视?

嘿,大家好,我是阿星,今天又来跟大家聊聊那些让人眼前一亮的电视直播软件。咱们这回不聊那些老掉牙的,来点新鲜的,让咱们的电视屏幕也能跟上潮流,享受一下科技带来的便利和乐趣。 首先,得提一提…

【Sklearn-驯化】一文分析教你如何使用k-means进行数据聚类

【Sklearn-驯化】一文分析教你如何使用k-means进行数据聚类 本次修炼方法请往下查看 🌈 欢迎莅临我的个人主页 👈这里是我工作、学习、实践 IT领域、真诚分享 踩坑集合,智慧小天地! 🎇 免费获取相关内容文档关注&#…

工业读码器与商用扫码器的区别

条码二维码在数字信息化应用越来越广泛,扫码器成为了数据收集和处理的重要工具,无论是工厂生产和物流包裹朔源追踪,还是商场超市扫码收银和餐饮娱乐等场景,均能看到扫码器的辅助,市场上的扫码器种类繁多,在…

深入解析:Java爬虫的本质是什么?

深入解析:Java爬虫的本质是什么? 引言: 随着互联网的快速发展,获取网络数据已成为许多应用场景中的重要需求。而爬虫作为一种自动化程序,能够模拟人类浏览器的行为,从网页中提取所需信息,成为了…

生物墨水的重要特性

生物打印技术正以前所未有的速度发展,为组织工程和再生医学领域带来了革命性的变革。然而,成功打印出功能性的三维结构,并将其应用于人体,离不开生物墨水这一关键材料。主要特性包括: 物理性质 表面张力: 表面张力影…

安科瑞新能源系统光储充能量监控管理

一、组网拓扑 安科瑞企业微电网能量管理系统Acrel-2000MG,是安科瑞根据新型电力系统下微电网监控系统与微电网能量管理系统的要求,总结国内外的研究和生产的先进经验,专门研制出的企业微电网能量管理系统。本系统满足光伏系统、风力发电、储…

微信小程序渲染层与逻辑层交互原理

1. 网页开发与小程序开发有何不同? 2. 小程序运行环境 3. 页面渲染技术选型 1. 纯客户端技术; 2. 纯Web技术; 3. 用客户端原生技术与Web技术结合的混合技术(Hybrid),小程序就是使用的这种技术&#xff1…

试用笔记之-Delphi 7 发送阿里云短信源代码

Delphi 7 发送阿里云短信源代码 首先下载: http://www.htsoft.com.cn/download/Delphi7_AlliSms_Demo.rar 解压后,可以看到Delphi7的源代码 我们直接运行Alisms_delphi7.exe,出现下图界面,我们输入阿里云帐号和密码&#xff0c…

Langchain-Chatchat本地部署记录,三分钟学会!

1.前言: 最近AI爆发式的火,忆往昔尤记得16,17那会移动互联网是特别火热的,也造富了一批公司和个人,出来了很多精妙的app应用。现在轮到AI发力了,想想自己也应该参与到这场时代的浪潮之中,所以就找了开源的…

四川蔚澜时代电子商务有限公司打造抖音电商服务新高地

在数字化浪潮汹涌澎湃的今天,电商行业以其独特的魅力和强大的市场潜力,成为了推动经济增长的新引擎。四川蔚澜时代电子商务有限公司,作为这个领域的佼佼者,正以其专业的服务、创新的理念和卓越的实力,引领抖音电商服务…

RK3568驱动指南|第十五篇 I2C-第168章 I2C通信时序介绍

瑞芯微RK3568芯片是一款定位中高端的通用型SOC,采用22nm制程工艺,搭载一颗四核Cortex-A55处理器和Mali G52 2EE 图形处理器。RK3568 支持4K 解码和 1080P 编码,支持SATA/PCIE/USB3.0 外围接口。RK3568内置独立NPU,可用于轻量级人工…

MySQL之应用层优化(二)

应用层优化 Web服务器问题 寻找最优并发度 每个Web服务器都有一个最佳并发度——就是说,让进程处理请求尽可能快,并且不超过系统负载的最优的并发连接数。这就是前面说的最大系统容量。进行一个简单的测量和建模,或者只是反复试验&#xf…

SpringBoot创建一个初始化项目

提示:这一篇文章,主要是为了之后可以快速的去搭建项目,当然这篇博客,作者也会根据以后学习到的东西,慢慢去整理 文章目录 前言 搭建一个SpringBoot项目,目的是为了快速开发项目 项目列表 响应枚举类 /***…

今日早报 每日精选15条新闻简报 每天一分钟 知晓天下事 7月2日,星期二

每天一分钟,知晓天下事! 2024年7月2日 星期二 农历五月廿七 1、 中指研究院:业主“以价换量”促交易特征明显,6月百城二手住宅价格继续下行。 2、 多家银行宣布!停止手机银行ATM扫码取款服务,“安全”成为…

本地文本向量模型的部署提供兼容openai的接口

前言 之前部署了fastgpt官方文档的一个,提供的一个m3e-large的向量模型打包的docker镜像,虽然使用起来整体效果还可以,但是有些文本向量相似度匹配的结果还是不太满意的,目前,网络上层出不穷的带推理文本向量,想体验一下,于是我基于modelscope库封装了一个兼容open ai的…

11集在Docker上编译tensorFlow Lite MCU例子工程-《MCU嵌入式AI开发笔记》

【11集在Docker上编译tensorFlow Lite MCU例子工程-《MCU嵌入式AI开发笔记》】 这一集咱们一步一步的在doc下面编译TensorFlow Lite的例程 https://tensorflow.google.cn/lite/tutorials?hlzh-cn 进入这个例子: https://codelabs.developers.google.cn/codelabs/…

Hi3861 OpenHarmony嵌入式应用入门--wifi sta

鸿蒙WiFi STA模式相关的API接口文件路径 foundation/communication/interfaces/kits/wifi_lite/wifiservice/wifi_device.h 所使用的API接口有: API 接口说明 WifiErrorCode EnableWifi(void); 开启STA WifiErrorCode DisableWifi(void); 关闭STA int IsWif…

20240701给NanoPi R6C开发板编译友善之臂的Android12系统

20240701给NanoPi R6C开发板编译友善之臂的Android12系统 2024/7/1 14:19 本文采取这个模式编译:11.6.3 编译Android Tablet版本(首次编译) echo "ROCKCHIP_DEVICE_DIR : device/rockchip/rk3588/nanopi6" > .rockchip_device.mk # export INSTALL_GAP…

LangChain 开发智能Agent,你学会了吗?

Prompt Enginnering 是打开LLM宝库的一把金钥匙,如果prompt得法,并能将其技巧与某项工作深度结合,那必将大大增效。今天我们来聊聊如何优化Prompt设计、Prompt Template管理等技术和体力活,并赋能老喻干货店的营销活动。 LLM Pro…

ollama open-webui安装后报错401

查看日志 docker logs open-webui "GET /ollama/api/tags HTTP/1.1" 500 Internal Server Error "GET /ollama/api/version HTTP/1.1" 500 Internal Server Error "GET /openai/api/models HTTP/1.1" 401 Unauthorized 浏览器console报错