使用kubeadm离线部署K8S(版本1.20.4)

---安装思路---
1.环境准备:最小化安装centos7,可上网
2.使用yum 下载依赖源到本地
3.下载K8S相关镜像资源
4.准备好yaml文件
5.脚本部署(或者手动命令)
---开始安装---

# 使用阿里云镜像源
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命令需要安装yum-utils)
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
# 配置K8S的yum源
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
#下载kubeadm相关组件
yum install --downloadonly --downloaddir=/root/k8sOfflineSetup/packages kubelet-1.20.4 kubeadm-1.20.4 kubectl-1.20.4
#查看最新的组件镜像版本,可参考
kubeadm config images list
#在有docker环境的服务器上下载K8S镜像,然后传输到模板机
docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/kube-apiserver:v1.20.4
docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/kube-controller-manager:v1.20.4
docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/kube-scheduler:v1.20.4
docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/kube-proxy:v1.20.4
docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/pause:3.2
docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/etcd:3.4.13-0
docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/coredns:1.7.0
# 重新tag镜像,该步骤是因为K8S配置清单中yaml用的是默认镜像地址
docker images \
    | grep registry.cn-hangzhou.aliyuncs.com/google_containers \
    | sed 's/registry.cn-hangzhou.aliyuncs.com\/google_containers/k8s.gcr.io/' \
    | awk '{print "docker tag " $3 " " $1 ":" $2}' \
    | sh
#导出镜像
docker save -o kube-apiserver-v1.20.4.tar k8s.gcr.io/kube-apiserver:v1.20.4
docker save -o kube-controller-manager-v1.20.4.tar k8s.gcr.io/kube-controller-manager:v1.20.4
docker save -o kube-scheduler-v1.20.4.tar k8s.gcr.io/kube-scheduler:v1.20.4
docker save -o kube-proxy-v1.20.4.tar k8s.gcr.io/kube-proxy:v1.20.4
docker save -o pause-3.2.tar k8s.gcr.io/pause:3.2
docker save -o etcd-3.4.13-0.tar k8s.gcr.io/etcd:3.4.13-0
docker save -o coredns-1.7.0.tar k8s.gcr.io/coredns:1.7.0
docker save -o ingress.tar quay.io/kubernetes-ingress-controller/nginx-ingress-controller:0.23.0
#calico相关镜像下载可通过官方yaml内提取:https://docs.projectcalico.org/manifests/calico.yaml
#默认下载calico镜像是最新的,我这里使用3.16.3,需要将yaml版本替换
docker save -o calico-node-v3.16.3.tar calico/node:v3.16.3
docker save -o calico-pod2daemon-flexvol-v3.16.3.tar calico/pod2daemon-flexvol:v3.16.3
docker save -o calico-cni-v3.16.3.tar calico/cni:v3.16.3
docker save -o calico-kube-controllers-v3.16.3.tar calico/kube-controllers:v3.16.3

v3.16.3,需要将如下删除掉


图片.png
# 配置本地目录源
cd /etc/yum.repos.d/
mv CentOS-Base.repo CentOS-Base.repo.bak
vim /etc/yum.repos.d/CentOS-Media.repo
[c7-media]
name=CentOS-$releasever - Media
baseurl=file:///root/k8sOfflineSetup/packages/
gpgcheck=1
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
       file:///root/k8sOfflineSetup/gpg/Docker.gpg
       file:///root/k8sOfflineSetup/gpg/Aliyun-kubernetes-yum-key.gpg
       file:///root/k8sOfflineSetup/gpg/Aliyun-kubernetes-rpm-package-key.gpg
# 设置环境
export HOSTNAME=K8S2
export APISERVER_NAME=apiserver.k8s.com
export MASTER_IP=192.168.50.133
export POD_SUBNET=10.11.10.0/16
echo "192.168.50.133 apiserver.k8s.com" >> /etc/hosts
# 安装并启动 docker
yum install -y docker-ce-19.03.5 docker-ce-cli-19.03.5 containerd.io
systemctl enable docker
systemctl start docker
# 安装kubelet、kubeadm、kubectl
yum install -y kubelet-1.20.4 kubeadm-1.20.4 kubectl-1.20.4
# 修改docker Cgroup Driver为systemd
sed -i "s#^ExecStart=/usr/bin/dockerd.*#ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock --exec-opt native.cgroupdriver=systemd#g" /usr/lib/systemd/system/docker.service
# 重启 docker,并启动 kubelet
systemctl daemon-reload
systemctl restart docker
systemctl enable kubelet && systemctl start kubelet
kubectl version
# 配置kubeadm文件
cat <<EOF > kubeadm-config.yaml
apiVersion: kubeadm.k8s.io/v1beta2
kind: ClusterConfiguration
kubernetesVersion: v1.20.4
controlPlaneEndpoint: "${APISERVER_NAME}:6443"
networking:
  serviceSubnet: "10.96.0.0/16"
  podSubnet: "${POD_SUBNET}"
  dnsDomain: "cluster.local"
EOF
# 安装K8S服务
kubeadm init --config=kubeadm-config.yaml --upload-certs
# 配置kubectl
mkdir /root/.kube/
cp -i /etc/kubernetes/admin.conf /root/.kube/config
# 安装calico服务
kubectl apply -f calico.yaml
# 安装ingress控制器
kubectl apply -f ingress.yaml

其他说明:docker gpg文件Index of linux/centos/ (docker.com)
aliyun kubernetes gpg Index of /kubernetes/yum/doc/ (aliyun.com)

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,456评论 5 477
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,370评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,337评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,583评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,596评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,572评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,936评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,595评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,850评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,601评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,685评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,371评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,951评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,934评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,167评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 43,636评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,411评论 2 342

推荐阅读更多精彩内容