内网离线安装k8s 1.27.0(保证安装成功)

news/2024/12/31 1:08:35/

这里写目录标题

  • 背景
  • 步骤
    • 一、集群规划及架构(node节点可以有很多个)
    • 二、系统初始化准备(所有节点都需要进行操作)
    • 三、安装并配置cri-dockerd插件(三台服务器同时操作)
    • 四、安装kubeadm(所有节点同步操作)
    • 五、初始化集群
    • 六、将Node节点添加到集群
    • 七、安装网络组件Calico
    • 八、安装kuboard v3安装,在master节点执行

背景

步骤

一、集群规划及架构(node节点可以有很多个)

![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/6a78c857fc494bd2b019ba4377f12adf.pn

二、系统初始化准备(所有节点都需要进行操作)

1、关闭防火墙

systemctl disable firewalld --now
setenforce 0
sed  -i -r 's/SELINUX=[ep].*/SELINUX=disabled/g' /etc/selinux/config

2、配置域名解析

cat  >> /etc/hosts << EOF
192.168.60.195 master-1
192.168.60.196 node-1
192.168.60.197 node-2
EOF

3、在指定主机上面修改主机名(每台主机上执行自己的那一行)

hostnamectl set-hostname master-1 &&bash
hostnamectl set-hostname node-1 &&bash
hostnamectl set-hostname node-2 &&bash

4、禁用swap交换分区(kubernetes强制要求禁用)

swapoff --all
#禁止开机自启动swap交换分区
sed-i-r'/swap/ s/^/#/' /etc/fstab

5、修改Linux内核参数,添加网桥过滤器和地址转发功能

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

加载网桥过滤器模块

modprobe br_netfilter
lsmod |grep br_netfilter sysctl -p /etc/sysctl.d/kubernetes.conf

6、配置ipvs功能
kubernetes中Service有两种代理模型,一种是基于iptables的,一种是基于ipvs,两者对比ipvs的性能要高,如果想要使用ipvs模型,需要手动载入ipvs模块

rpm -ivh /root/ipvsadm/*.rpm --nodeps --forcecat > /etc/sysconfig/modules/ipvs.modules <<EOF
modprobe -- ip_vs
modprobe -- ip_vs_rr
modprobe -- ip_vs_wrr
modprobe -- ip_vs_sh
modprobe -- nf_conntrack_ipv4  
EOFchmod +x /etc/sysconfig/modules/ipvs.modules 
# 执行脚本
/etc/sysconfig/modules/ipvs.modules# 验证ipvs模块
lsmod | grep -e ip_vs -e nf_conntrack_ipv4

7、安装docker容器组件

tar xf docker.tar.gz
rpm -ivh docker/*.rpm --nodeps --force
# 启动docker并设置开机自启systemctl enable docker --nowsystemctl status docker

三、安装并配置cri-dockerd插件(三台服务器同时操作)

1、安装cri-dockerd插件

 rpm -ivh cri-docker/cri-dockerd-0.3.1-3.el7.x86_64.rpm --nodeps --force

2、备份并更新cri-docker.service文件

mv /usr/lib/systemd/system/cri-docker.service{,.default}
vi /usr/lib/systemd/system/cri-docker.service 

打开文件后写入

[Unit]
Description=CRI Interface for Docker Application Container Engine
Documentation=https://docs.mirantis.com
After=network-online.target firewalld.service docker.service
Wants=network-online.target
Requires=cri-docker.socket
[Service]
Type=notify
ExecStart=/usr/bin/cri-dockerd --network-plugin=cni --pod-infra-container-image=registry.aliyuncs.com/google_containers/pause:3.7
ExecReload=/bin/kill -s HUP $MAINPID
TimeoutSec=0
RestartSec=2
Restart=always
StartLimitBurst=3
StartLimitInterval=60s
LimitNOFILE=infinity
LimitNPROC=infinity
LimitCORE=infinity
TasksMax=infinity
Delegate=yes
KillMode=process
[Install]
WantedBy=multi-user.target

3、启动cir-dockerd

systemctl daemon-reload
systemctl start cri-docker.service 
systemctl enable cri-docker.service 

四、安装kubeadm(所有节点同步操作)

1、安装kubelet/ kubeadm/kubectl

rpm -ivh kubelet/*.rpm --nodeps --force

2、kubeadm将使用kubelet服务以容器方式部署kubernetes的主要服务,所以需要先启动kubelet服务

systemctl enable kubelet.service --now

五、初始化集群

1、在master-1主机上进行操作,上传初始化默认配置文件

我们根据自己需求进行修改默认配置文件,我主要更改了一下配置如下:
advertiseAddress:更改为master的IP地址 #在master1节点修改kubeadm.yaml

2、进行初始化

#每个设备上传对应的压缩包
#master1上传master.tar.gz 、node1上传node1.tar.gz、node2上传node2.tar.gz
Master1执行

docker load -i master.tar.gz

Node1执行

docker load -i node1.tar.gz

Node2执行

docker load -i node2.tar.gz

每个节点都执行

docker load -i  kube-controllers.tar

在master1执行初始化操作

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

初始化成功后输出如下内容:

[init] Using Kubernetes version: v1.27.0
[preflight] Running pre-flight checks
[preflight] Pulling images required for setting up a Kubernetes cluster
[preflight] This might take a minute or two, depending on the speed of your internet connection
[preflight] You can also perform this action in beforehand using 'kubeadm config images pull'
W1003 

http://www.ppmy.cn/news/1537123.html

相关文章

基于xgboost的分类预测

一、xgboost的介绍 xgboost以及后续的lightGBM等在我的认知中算是目前数据挖掘中最常用的预测算法&#xff0c;在各种数据挖掘比赛中获得了Top的名次。如果想从事数据挖掘相关的岗位&#xff0c;该算法是一定要好好掌握的。 xgboost其实可以认为是GBDT算法的工程实现&#xf…

AI时代互联网信息的几点隐忧

笔者最近一年关注的AI技术比关注的安全技术还多&#xff0c;AI从事实上的对内容生产工作者带来工作效率的提高&#xff0c;年初的时候比较关注的是如何在安全行业使用AI进行赋能&#xff0c;领导也给了类似的命题&#xff0c;让我思考如何让AI在安全行业发力。 目前已经看到的是…

为什么在摄像头领域播放声音需要拉功放?

目录 一、声音的基础知识二、功放的基本原理三、摄像头领域为什么需要拉功放&#xff1f;四、实际应用场景分析五、结论 摄像头在现代安防、监控、智能家居等场景中发挥着重要作用。随着技术的进步&#xff0c;摄像头不仅具备了图像采集功能&#xff0c;还集成了语音传输和播放…

PHP中的HTTP请求:简化你的网络通信

在当今的网络应用开发中&#xff0c;PHP作为一种流行的服务器端脚本语言&#xff0c;经常需要与外部服务进行通信。这通常涉及到发送HTTP请求来获取或提交数据。幸运的是&#xff0c;PHP提供了多种方式来简化HTTP请求的过程&#xff0c;使得网络通信变得轻而易举。 PHP中的HTTP…

甲虫身体图像分割系统源码&数据集分享

甲虫身体图像分割系统源码&#xff06;数据集分享 [yolov8-seg-EfficientRepBiPAN&#xff06;yolov8-seg-C2f-FocusedLinearAttention等50全套改进创新点发刊_一键训练教程_Web前端展示] 1.研究背景与意义 项目参考ILSVRC ImageNet Large Scale Visual Recognition Challen…

毕业设计 大数据电影数据分析与可视化系统

文章目录 0 简介1 课题背景2 效果实现3 爬虫及实现4 Flask框架5 Ajax技术6 Echarts7 最后 0 简介 今天学长向大家介绍一个机器视觉的毕设项目 &#x1f6a9;基于大数据的电影数据分析与可视化系统 项目运行效果(视频)&#xff1a; 毕业设计 大数据电影评论情感分析 &#x1…

令牌主动失效机制范例(利用redis)注释分析

介绍该机制 令牌生成 在需要限流的场景中&#xff0c;系统会根据一定的速率生成令牌&#xff0c;存储在 Redis 中。可以设定每秒生成的令牌数量。 令牌获取 当用户请求时&#xff0c;系统会从 Redis 中获取令牌。可以使用原子性操作&#xff08;如 DECR&#xff09;来确保令牌…

view deign 和 vue2 合并单元格的方法

1.vue版本和view design 版本 {"vue": "^2.6.11","view-design": "^4.7.0", }2.Data中定义数据 spanArr: [], // 某一列下需要合并的行数 pos: 0// 索引// 注意点&#xff1a; 在获取列表前&#xff0c;需要重置 this.spanArr [] 注…