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

背景

步骤

一、集群规划及架构(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 --force

cat > /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  
EOF

chmod +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 --now
 systemctl 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 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

balance…

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值