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

背景描述: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.mzph.cn/pingmian/39072.shtml

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

相关文章

腾讯开源高质量人类运动视频的框架;通过音频指令修改图像;利用YOLO分析网球视频;Gemma-2中文微调模型

✨ 1: MimicMotion MimicMotion 腾讯开源的通过姿态指导生成高质量任意长度人类运动视频的框架 MimicMotion 是一种可控视频生成框架,旨在生成高质量的任意长度人物动作视频,采用带有置信度的姿态引导,并通过区域损失放大来缓解图像失真。其…

C++视觉开发 三.缺陷检测

一.距离变换 1.概念和功能 距离变换是一种图像处理技术,用于计算图像中每个像素到最近的零像素(背景像素)的距离。它常用于图像分割、形态学操作和形状分析等领域。它计算图像中每个像素到最近的零像素(背景像素)的距…

苍穹外卖--sky-take-out(五)前端

大部分笔记都是写在语雀的,这是一次性从本人语雀复制过来的,可能结构有些错乱 基础创建 环境要求 node.js npm Vue CLI 创建前端工程 使用vue ui命令创建 项目结构 启动项目 打开命令行窗口 快捷键ctrlj 或者 运行 输入:npm run ser…

010-GeoGebra基础篇-动态验证三角形外接圆的圆心是否可以位于三角形的外部

接下来我们将进行一些稍微高级一点操作,一边学习新东西的同时,也开始对数学、物理等内容的研究。 目录 一、项目截图二、涉及内容三、问题设置1. 问题提出2. 验证方案 三、做图步骤1. 绘制定点A、B;2. 绘制动点C;(1&am…

万界星空科技铜管加工行业MES系统解决方案

一、行业背景与挑战 随着铜管加工行业的快速发展,传统的管理模式已难以满足日益增长的生产需求。为满足市场的高效率、高质量、低成本要求,企业急需一套智能化的管理系统来提升生产效率、优化资源配置和确保产品质量。因此,我们针对铜管加工行…

常用的限流算法有哪些?你听说过几种?

限流,就是指限制流量请求的频次。 在高并发情况下,它是一种保护系统的策略,避免了在流量高峰时系统崩溃,造成系统的不可用。 常见的限流算法有: 计数器限流算法滑动窗口限流算法漏桶限流算法令牌桶限流算法 1. 计数器…

【Python程序开发系列】教你使用Docker部署一个简单的Python应用程序(案例+源码)

这是我的第313篇原创文章。 一、引言 Docker 对于程序员来说,其实和Git差不多,基本上属于一个必备工具。如果你想使用这个工具,你就必须安装这个应用工具,至于在不同操作系统上安装Docker的方式网上有很多教程,这里不…

每天五分钟深度学习:解决for循环效率慢的关键在于向量化

本文重点 上一节课程中,我们学习了多样本的线性回归模型,但是我们的伪代码实现中使用了大量的for循环,这样代码的问题是效率很低。为了克服这一瓶颈,向量化技术应运而生,成为提升程序执行效率、加速数据处理速度的重要手段。 向量化技术概述 向量化(Vectorization)是…

MySQL-核心知识要点

1、索引的数据结构-Btree BTree的优势: B树的内节点无data,一个节点可以存储更多的K-V对。在构造树时,需要的内节点会更少,那么树的层级也会越低。查询一条数据时,1. 扫描的层级低,扫描过的节点更少&…

【netty系列-04】反应堆模式的种类和具体实现

Netty系列整体栏目 内容链接地址【一】深入理解网络通信基本原理和tcp/ip协议https://zhenghuisheng.blog.csdn.net/article/details/136359640【二】深入理解Socket本质和BIOhttps://zhenghuisheng.blog.csdn.net/article/details/136549478【三】深入理解NIO的基本原理和底层…

数字化转型中,数字化如何重塑中小企业发展力?

引言:当前,我国中小微企业数字化转型处于“不平衡、不充分、不规范”阶段,普遍面临“不会转”“不能转”“不敢转”的困境。数字化转型可以帮助企业突破这些困境,实现更大的发展。更进一步,数字化转型是中小企业高质量…

学习笔记——动态路由——IS-IS中间系统到中间系统(基本概念)

二、IS-IS基本概念 1、IS-IS概述 IS-IS是ISO定义的OSI协议栈中的无连接网络服务(ConnectionLess Network Service,CLNS)的一部分,IS-IS是一种链路状态路由协议,IS-IS与OSPF在许多方面非常相似,例如,运行IS-IS协议的直…

4.BeanFactory

可以看出BeanFactory表面上只有getBean相关的方法。 实际上控制反转、基本的依赖注入、Bean的生命周期的各种功能,都是由BeanFactory的实现类来实现的。(DefaultListableBeanFactory) DefaultListableBeanFactory管理单例对象DefaultSinglet…

杨万里,诚斋体的开创者

杨万里,字廷秀,号诚斋,生于南宋绍兴元年(公元1127年),卒于南宋庆元二年(公元1206年),享年79岁。在中国古代文学的璀璨星河中,南宋诗人杨万里以其清新脱俗、贴…

Android- Framework 非Root权限实现修改hosts

一、背景 修改system/etc/hosts,需要具备root权限,而且remount后,才能修改,本文介绍非root状态下修改system/etc/hosts方案。 环境:高通 Android 13 二、方案 非root,system/etc/hosts只有只读权限&…

机器学习python实践——关于管道模型Pipeline和网格搜索GridSearchCV的一些个人思考

最近在利用python跟着指导书进行机器学习的实践,在实践中使用到了Pipeline类方法和GridSearchCV类方法,并且使用过程中发现了一些问题,所以本文主要想记录并分享一下个人对于这两种类方法的思考,如果有误,请见谅&#…

【微服务】微服务之Feign 与 Ribbon

文章目录 强烈推荐引言优点Feign示例什么是Ribbon?Ribbon 的优点Netflix Feign 和 Ribbon整合Feign 与 Ribbon 的关系Feign 与 Ribbon 结合使用的示例配置文件(application.yml)说明: Feign 与 Ribbon 结合使用的应用场景1. 动态服…

物联网的技术和应用有哪些?

随着科技的飞速发展,物联网已经成为连接世界的重要纽带,塑造着我们未来的生活。我们一起深入探索物联网的前沿技术和前瞻性应用,一窥未来的可能性。 获取物联网解决方案,YesPMP平台一站式物联网开发服务。 提示:智慧家…

图形的搭建

例一: 输入描述: 多组输入,一个整数(2~20),表示输出的行数,也表示组成“X”的反斜线和正斜线的长度。 输出描述: 针对每行输入,输出用“*”组成的X形图案。 示例一&…

爬数据是什么意思?

爬数据的意思是:通过网络爬虫程序来获取需要的网站上的内容信息,比如文字、视频、图片等数据。网络爬虫(网页蜘蛛)是一种按照一定的规则,自动的抓取万维网信息的程序或者脚本。 学习一些爬数据的知识有什么用呢&#x…