离线安装 k8s 集群 kubeadmin方式

背景要求:公司线上环境由于某些原因不方便连接公网 但是想要部署k8s系统。

整体思路:先找一个可以连接外网的工作环境,部署一套k8s集群,然后在部署期间 下载对应的rpm包、导出k8s需要的docker 对应的镜像,然后把对应的包拷贝到离线环境,人工手动的去安装 ;

大体步骤如下:

1、服务集群基本设置

# 关闭防火墙
systemctl stop firewalld
systemctl disable firewalld
# 关闭selinux
sed -i 's/enforcing/disabled/' /etc/selinux/config  #永久
setenforce 0  #临时
# 关闭swap(k8s禁止虚拟内存以提高性能)
sed -ri 's/.*swap.*/#&/' /etc/fstab #永久
swapoff -a #临时

# 在master添加hosts 一下是我的服务器集群信息,需要根据自己的实际情况去配置
cat >> /etc/hosts << EOF
192.168.1.50 k8smaster
192.168.1.51 k8snode1
192.168.1.52 k8snode2
EOF
# 设置网桥参数
cat > /etc/sysctl.d/k8s.conf << EOF
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF
sysctl --system  #生效
# 时间同步
timedatectl set-timezone Asia/Shanghai  (设置时区)
yum install ntpdate -y
ntpdate time.windows.com
# 离线安装docker 自行百度了,下面的是非离线方式
更新docker的yum源
yum install wget -y
wget https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo -O /etc/yum.repos.d/docker-ce.repo
安装指定版本的docker:
yum install docker-ce-19.03.13 -y
#配置docker加速器
自行百度拉 我这是内网环境,也就不需要配置
然后重启服务

2、手动下载k8s 部署需要yum 安装包(kubelet kubeadm kubectl socat conntrack-tools) 到本地 

最好是找一台没有安装过以上命令的机器

然后通过 命令

yum install --downloadonly --downloaddir=./ kubelet kubeadm kubectl  socat conntrack-tools

把这些命令的rpm包下载到当前文件夹

然后把下载下来的rpm包 拷贝到每台内网服务器

通过 命令

rpm -ivh *.rpm --nodeps --force

去手动安装对应的命令

3、手动导入docker镜像

去已经装好的k8s集群里面 手动的把 master 、node 上的docker镜像 保存下来,拷贝到内网环境对应的服务,导入到对应的docker里面

1> 手动导出镜像 对应的路径地址 根据实际情况修改

echo "导出k8s需要的docker镜像"
IMGINFO=`docker images |awk '{print $1,$2,$3}'|sed 1d >> $TARDIR/tmp.txt`
RESLIST=`/usr/bin/cat $TARDIR/tmp.txt |awk '{print $1}' `
for i in $RESLIST
do
    RESTAG=`docker images |grep "$i" |awk '{a=$1":"$2;print a }'`
    BAKNAME=`docker images |grep "$i" |awk '{a=$1":"$2;print a }'|sed 's/\//_/g'`
     /usr/bin/docker save $RESTAG -o $TARDIR/${BAKNAME}_`date +%Y%m%d`.tar >/dev/null 2>>$BAKLOGFILE
done

2>导入命令

echo "导入k8s需要的docker镜像"
LIST=`/root/k8s-install/k8s-docker-images`
for i in $LIST
do
/usr/bin/docker load -i '/root/k8s-install/k8s-docker-images/'$i
doney
以下的操作就跟正常的部署k8s集群一样了

4、去k8s master 执行 init 命令 由于对应的命令已经安装成功,这时候就可以执行成功了

kubeadm init --apiserver-advertise-address=192.168.190.2 --image-repository registry.aliyuncs.com/google_containers --kubernetes-version v1.19.4 --service-cidr=10.96.0.0/12 --pod-network-cidr=10.244.0.0/16

5、去k8s node 节点执行 join 命令

。。

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值