其他分享
首页 > 其他分享> > k8s各版本离线部署附件下载方法

k8s各版本离线部署附件下载方法

作者:互联网

k8s各版本离线部署附件下载方法

准备

随便找一台能连接外网得服务器

 

镜像包获取

集群部署所需要的kubelet、kubeadm、kubectl包下载

 

#docker 安装

yum install -y yum-utils   device-mapper-persistent-data   lvm2  bash-completion

yum-config-manager     --add-repo     https://download.docker.com/linux/centos/docker-ce.repo

yum install docker-ce  docker-ce-cli containerd.io -y

#k8s相关安装

cat <<EOF > /etc/yum.repos.d/kubernetes.repo

[kubernetes]

name=Kubernetes

baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/

enabled=1

gpgcheck=1

repo_gpgcheck=1

gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg

EOF

#若想选择安装指定的版本,可以yum list kubelet --showduplicate查找对应版本,不指定则安装当前最新版本

yum install -y kubelet-1.20.2 kubeadm-1.20.2 kubectl-1.20.2

 

同时k8s集群启动需要docker image,所以我们需要在本地机器上将相关的镜像下载之后,传到我们的服务器上

 

#启动docker

mkdir -p /etc/docker

cat <<EOF >/etc/docker/daemon.json

{

  "bridge": "none",

  "iptables": false,

  "exec-opts":

    [

      "native.cgroupdriver=systemd"

    ],

  "data-root": "/opt/docker",

  "live-restore": true,

  "log-driver": "json-file",

  "log-opts":

    {

      "max-size": "100m"

    },

  "registry-mirrors":

    [

      "https://lje6zxpk.mirror.aliyuncs.com",

      "https://lms7sxqp.mirror.aliyuncs.com",

      "https://registry.docker-cn.com"

    ]

}

EOF

systemctl --enable now  docker

 

#使用aliyun的镜像站拉取镜像,通过脚本的方式进行拉取

vim images.sh

#!/bin/bash

url=registry.cn-hangzhou.aliyuncs.com/google_containers

version=v1.20.2

images=(`kubeadm config images list --kubernetes-version=$version|awk -F '/' '{print $2}'`)

for imagename in ${images[@]} ; do

  docker pull $url/$imagename

  docker tag $url/$imagename k8s.gcr.io/$imagename

  docker rmi -f $url/$imagename

done

 

#给脚本赋权限

chmod +x images.sh

#执行脚本

./ images.sh

 

#执行结束后,查看相关的镜像:

docker images

REPOSITORY                           TAG           IMAGE ID       CREATED         SIZE

k8s.gcr.io/kube-proxy                v1.20.2       43154ddb57a8   2 weeks ago     118MB

k8s.gcr.io/kube-apiserver            v1.20.2       a8c2fdb8bf76   2 weeks ago     122MB

k8s.gcr.io/kube-controller-manager   v1.20.2       a27166429d98   2 weeks ago     116MB

k8s.gcr.io/kube-scheduler            v1.20.2       ed2c44fbdd78   2 weeks ago     46.4MB

k8s.gcr.io/etcd                      3.4.13-0      0369cf4303ff   5 months ago    253MB

k8s.gcr.io/coredns                   1.7.0         bfe3a36ebd25   7 months ago    45.2MB

k8s.gcr.io/pause                     3.2           80d28bedfe5d   11 months ago   683kB

 

 

将下载好的docker images 都打包,传到相关的服务器

 

#打包docker镜像(一定要使用tag的方式进行打包,若用id 进行打包,导出的时候tag信息是空)

docker save -o kube-proxy.tar k8s.gcr.io/kube-proxy:v1.20.2

docker save -o kube-apiserver.tar k8s.gcr.io/kube-apiserver:v1.20.2

docker save -o kube-controller-manager.tar kube-controller-manager:v1.20.2

docker save -o kube-controller-manager.tar k8s.gcr.io/kube-controller-manager:v1.20.2

docker save -o kube-scheduler.tar k8s.gcr.io/kube-scheduler:v1.20.2

docker save -o flannel.tar quay.io/coreos/flannel:v0.13.1-rc1

 

需要得镜像就制作完成,复制到其他服务器上通过如下命令加载即可

docker load < xxxx.tar

 

二进制rpm获取

在上一步【镜像包获取】第一小节获取执行的“yum install -y kubelet-1.20.2 kubeadm-1.20.2 kubectl-1.20.2”命令,换成如下命令即可:

yum install --downloadonly --downloaddir ./rpm kubelet-1.20.2  kubeadm-1.20.2 kubectl-1.20.2

 

会在当前目录下生成rpm目录,里面存放的既是需要的文件

 

 

 

注:如果没有cri-tools等文件(本次测试的k8s1.20.2版本里没有,测试的1.16/1.18/1.21都没问题),执行该rpm创建k8s环境的时候可能会提示缺少cri-tools>1.13的类似错误,解决办法:同样方法,可以去获取较老版本的rpm,如k8s1.16.0、k8s1.18.6等的rpm文件,复制过来即可

 

二进制文件获取完成,复制到其他服务器待用

 

 

K8s一键安装方式

可参考本人另一篇随笔《离线搭建K8s1.21.2集群》,该方案通用目前所有主流k8s版本部署

标签:kube,离线,gcr,yum,io,附件,docker,k8s
来源: https://www.cnblogs.com/nbzws/p/15675688.html