Kubernetes:离线部署前准备资源包

离线安装 Kubernetes v1.17.1 - 准备离线资源包

环境要求

  • 操作系统: CentOS Linux release 7.7.1908 (Core)
  • Docker: 19.03.5
  • Kubernetes: 1.17.1

目录结构

1
2
3
4
5
6
7
8
9
10
11

📁 k8sOfflineSetup
├── 📁 gpg
├── 📁 plugins
├── 📁 repos
├── 📁 scripts
├── 📁 packages
├── 📁 images
├── 📃 setup_master.sh
└── 📃 setup_worker.sh

1. 获取安装包

Docker

查看Docker最新版本

Kubernetes

2. 获取yum依赖包

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
# 使用阿里云镜像源
curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo

# 创建本地仓库包
yum install --downloadonly --downloaddir=/root/k8sOfflineSetup/packages createrepo

# 安装实用工具
yum install --downloadonly --downloaddir=/root/k8sOfflineSetup/packages \
yum-utils \
nfs-utils \
wget

# Docker依赖包
yum install --downloadonly --downloaddir=/root/k8sOfflineSetup/packages \
device-mapper-persistent-data \
lvm2

# 添加阿里云Docker源
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

# Docker安装包
yum install --downloadonly --downloaddir=/root/k8sOfflineSetup/packages \
docker-ce-19.03.5 \
docker-ce-cli-19.03.5 \
containerd.io

# 时间同步工具
yum install --downloadonly --downloaddir=/root/k8sOfflineSetup/packages chrony

# HAProxy和KeepAlived
yum install --downloadonly --downloaddir=/root/k8sOfflineSetup/packages \
haproxy \
keepalived

3. 配置Kubernetes yum源

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
cat <<EOF > /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=http://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64
enabled=1
gpgcheck=0
repo_gpgcheck=0
gpgkey=http://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg
http://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
EOF

# 下载Kubernetes组件
yum install --downloadonly --downloaddir=/root/k8sOfflineSetup/packages \
kubelet-1.17.1 \
kubeadm-1.17.1 \
kubectl-1.17.1

4. 获取kubeadm依赖镜像

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
# 从阿里云拉取镜像
docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/kube-apiserver:v1.17.1
docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/kube-controller-manager:v1.17.1
docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/kube-scheduler:v1.17.1
docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/kube-proxy:v1.17.1
docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/pause:3.1
docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/etcd:3.4.3-0
docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/coredns:1.6.5

# 重新tag镜像
docker tag registry.cn-hangzhou.aliyuncs.com/google_containers/kube-apiserver:v1.17.1 k8s.gcr.io/kube-apiserver:v1.17.1
docker tag registry.cn-hangzhou.aliyuncs.com/google_containers/kube-controller-manager:v1.17.1 k8s.gcr.io/kube-controller-manager:v1.17.1
docker tag registry.cn-hangzhou.aliyuncs.com/google_containers/kube-scheduler:v1.17.1 k8s.gcr.io/kube-scheduler:v1.17.1
docker tag registry.cn-hangzhou.aliyuncs.com/google_containers/kube-proxy:v1.17.1 k8s.gcr.io/kube-proxy:v1.17.1
docker tag registry.cn-hangzhou.aliyuncs.com/google_containers/pause:3.1 k8s.gcr.io/pause:3.1
docker tag registry.cn-hangzhou.aliyuncs.com/google_containers/etcd:3.4.3-0 k8s.gcr.io/etcd:3.4.3-0
docker tag registry.cn-hangzhou.aliyuncs.com/google_containers/coredns:1.6.5 k8s.gcr.io/coredns:1.6.5

# 导出镜像为压缩包
docker save -o kube-apiserver-v1.17.1.tar k8s.gcr.io/kube-apiserver:v1.17.1
docker save -o kube-controller-manager-v1.17.1.tar k8s.gcr.io/kube-controller-manager:v1.17.1
docker save -o kube-scheduler-v1.17.1.tar k8s.gcr.io/kube-scheduler:v1.17.1
docker save -o kube-proxy-v1.17.1.tar k8s.gcr.io/kube-proxy:v1.17.1
docker save -o pause-3.1.tar k8s.gcr.io/pause:3.1
docker save -o etcd-3.4.3-0.tar k8s.gcr.io/etcd:3.4.3-0
docker save -o coredns-1.6.5.tar k8s.gcr.io/coredns:1.6.5

5. 打包资源

1
2
cd /root/k8sOfflineSetup
tar -czf k8sOfflineSetup.tar.gz *

现在您已经准备好了一个可以离线安装Kubernetes单节点Master集群的资源包,下一步将介绍如何使用它。

参考来源: 简书 - 离线安装Kubernetes v1.17.1