• 集群离线搭建k8s


    1 集群环境

    CentOS Linux release 7.9.2009 (Core)
    Linux valen 3.10.0-1160.el7.x86_64 #1 SMP Mon Oct 19 16:18:59 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux

    本文的环境以模拟集群环境为主,不同的是只安装了基本软件,docker之类的都没有安装,所以较为纯净,干扰比较少,在集群中安装遇到的问题与不同在本文最后总结。

    第 4 部分为记录,可以忽略。

    2 前期准备

    目标:安装kubernetes v1.18.8。
    要求:在安装全过程中集群不能联网,集群内的各个节点是互通的;个人电脑是可以联网的,可以单向ping通集群内mu01。

    集群的hosts以及hostname文件都已经配置完毕。

    集群情况:

    mu01    192.168.37.131
    cu01    192.168.37.129
    cu02    192.168.37.130
    
    • 1
    • 2
    • 3

    个人主机(valen)与集群不在同一个网段,但是可以ping通mu01,集群内的节点都ping不同valen。

    3 实验步骤

    3.1 步骤概述

    使用kubeadm来安装,因为它简单;使用yum来离线安装软件包;为docker搭建本地镜像源

    3.2 关闭防火墙
    #所有主机执行
    systemctl stop firewalld
    systemctl disable firewalld
    
    • 1
    • 2
    • 3
    3.3 关闭swap
    #所有主机执行
    swapoff -a
    cp /etc/fstab /etc/fstab_bak
    cat /etc/fstab_bak | grep -v swap > /etc/fstab
    
    • 1
    • 2
    • 3
    • 4
    3.4 关闭selinux
    #所有主机执行
    sed -i s/SELINUX=enforcing/SELINUX=disabled/g /etc/selinux/config
    setenforce 0
    
    • 1
    • 2
    • 3
    3.5 修改sysctl.conf

    mu01执行
    在/etc/sysctl.conf末尾追加如下内容:

    net.ipv4.ip_forward = 1
    net.bridge.bridge-nf-call-ip6tables = 1
    net.bridge.bridge-nf-call-iptables = 1
    
    • 1
    • 2
    • 3

    接着执行 sysctl -p 生效

    3.6 下载软件包

    valen执行
    (1) 配置docker-ce源

    sudo yum-config-manager \
        --add-repo \
        https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/centos/docker-ce.repo
    
    • 1
    • 2
    • 3

    (2) 查看docker所有版本

    [root@k8s-master ~]# yum list docker-ce --showduplicates
    已加载插件:fastestmirror
    Loading mirror speeds from cached hostfile
     * base: mirrors.163.com
     * extras: mirrors.aliyun.com
     * updates: mirrors.aliyun.com
    可安装的软件包
    docker-ce.x86_64                               17.03.0.ce-1.el7.centos                                docker-ce-stable
    docker-ce.x86_64                               17.03.1.ce-1.el7.centos                                docker-ce-stable
    docker-ce.x86_64                               17.03.2.ce-1.el7.centos                                docker-ce-stable
    docker-ce.x86_64                               17.03.3.ce-1.el7                                       docker-ce-stable
    docker-ce.x86_64                               17.06.0.ce-1.el7.centos                                docker-ce-stable
    docker-ce.x86_64                               17.06.1.ce-1.el7.centos                                docker-ce-stable
    docker-ce.x86_64                               17.06.2.ce-1.el7.centos                                docker-ce-stable
    docker-ce.x86_64                               17.09.0.ce-1.el7.centos                                docker-ce-stable
    docker-ce.x86_64                               17.09.1.ce-1.el7.centos                                docker-ce-stable
    docker-ce.x86_64                               17.12.0.ce-1.el7.centos                                docker-ce-stable
    docker-ce.x86_64                               17.12.1.ce-1.el7.centos                                docker-ce-stable
    docker-ce.x86_64                               18.03.0.ce-1.el7.centos                                docker-ce-stable
    docker-ce.x86_64                               18.03.1.ce-1.el7.centos                                docker-ce-stable
    docker-ce.x86_64                               18.06.0.ce-3.el7                                       docker-ce-stable
    docker-ce.x86_64                               18.06.1.ce-3.el7                                       docker-ce-stable
    docker-ce.x86_64                               18.06.2.ce-3.el7                                       docker-ce-stable
    docker-ce.x86_64                               18.06.3.ce-3.el7                                       docker-ce-stable
    docker-ce.x86_64                               3:18.09.0-3.el7                                        docker-ce-stable
    ...
    
    • 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

    (3) 下载docker-ce

    mkdir ~/kubernetes
    yum install --downloadonly --downloaddir ~/kubernetes docker-ce-18.06.3.ce-3.el7 --setopt=obsoletes=0
    
    • 1
    • 2

    注意:yum只会下载本地不存在的依赖,如果该软件或者其依赖本地已经安装过了,就不会再下载了,所以要保证集群上没有的依赖个人主机上也不能有!

    (4) 配置kubernetes源

    cat > /etc/yum.repos.d/kubernetes.repo <<EOF
    [kubernetes]
    name=Kubernetes Repo
    baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/
    gpgcheck=1
    gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
    enabled=1
    EOF
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    (5) 下载k8s组件

    yum install --downloadonly --downloaddir ~/kubernetes kubeadm-1.18.8
    yum install --downloadonly --downloaddir ~/kubernetes kubectl-1.18.8
    yum install --downloadonly --downloaddir ~/kubernetes kubelet-1.18.8
    yum install --downloadonly --downloaddir ~/kubernetes cri-tools-1.25.0
    
    • 1
    • 2
    • 3
    • 4

    (6) 删掉多余安装包
    进入到~/kubernetes目录下,发现有几个k8s组件的版本不是我们需要的,直接使用rm -rf 把它们都删了(若没有则忽略,一般是有两个,注意别把cri-tools删了)。

    如果在安装过程中提示缺少什么依赖或组件,需要自己按照上述方法下载安装包。
    (7) 下载nginx
    配置下载源:

    cat >/etc/yum.repos.d/nginx.repo<<'EOF'
    [nginx-stable]
    name=nginx stable repo
    baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
    gpgcheck=1
    enabled=1
    gpgkey=https://nginx.org/keys/nginx_signing.key
    module_hotfixes=true
    [nginx-mainline]
    name=nginx mainline repo
    baseurl=http://nginx.org/packages/mainline/centos/$releasever/$basearch/
    gpgcheck=1
    enabled=0
    gpgkey=https://nginx.org/keys/nginx_signing.key
    module_hotfixes=true
    EOF
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16

    下载安装包:

    yum install --downloadonly --downloaddir ~/kubernetes nginx
    pcre2-10.23-2.el7.x86_64
    
    • 1
    • 2
    3.7 搭建集群本地yum源

    将安装包分发到集群的mu01节点上:

    scp -r ~/kubernetes mu01:/root/kubernetes
    
    • 1

    在mu01节点上安装nginx并启动:

    cd ~/kubernetes
    yum install nginx-1.22.1-1.el7.ngx.x86_64.rpm
    systemctl start nginx
    
    • 1
    • 2
    • 3

    建立仓库目录:

    
                    
  • 相关阅读:
    python学习笔记——函数
    单片机FLASH下载算法的制作
    sqlserver查询多个分类的最新时间数据
    20.(arcgis api for js篇)arcgis api for js面采集(SketchViewModel)
    [ROC-RK3568-PC] [Firefly-Android] 10min带你了解PWM的使用
    猿创征文 | 2022初学者10个必备程序 “工具箱“
    【英雄哥七月集训】第 04天:贪心
    用::before伪元素,在文字前面画一个圆形
    Java线程通信
    【每日一题】补档 CF1799C. Double Lexicographically Minimum | 构造 | 简单
  • 原文地址:https://blog.csdn.net/weixin_41162823/article/details/127566392