美文网首页k8s
在CentOS 7上离线安装Kubernetes(K8s)

在CentOS 7上离线安装Kubernetes(K8s)

作者: 渣渣曦 | 来源:发表于2020-12-10 23:29 被阅读0次

    实现非联网环境下安装Kubernetes和Docker,首先需要在互联网机器上下载相关安装包,为下载到所有依赖包,需使用最小安装源,之前未安装过Kubernetes和Docker的系统。

    互联网服务器上下载Kubernetes必备文件

    配置系统

    变更主机名称

    vim /etc/hostname
    

    1、最小化安装centos7,并换源

    yum install wget
    cd /etc/yum.repos.d
    sudo mv CentOS-Base.repo CentOS-Base.repo.backup
    sudo wget -O CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
    

    2、vi /etc/sysconfig/network-scripts/ifcfg-<按tab键补齐>选第一个,然后修改该文件以下内容:

    BOOTPROTO=static
    ONBOOT=yes
    IPADDR=192.168.3.20
    NETMASK=255.255.255.0
    GATEWAY=192.168.3.1
    DNS1=8.8.8.8
    DNS2=114.114.114.114
    

    3、重启网络

    systemctl restart NetworkManager
    

    下载Docker安装包

    1、安装yum存储库

    yum install -y epel-release.noarch
    

    2、安装Docker Yum源

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

    (找不到命令执行:yum -y install yum-utils)
    3、下载Docker CE及依赖包

    mkdir ~/docker
    cd ~/docker
    yumdownloader --resolve docker-ce
    

    下载如下:


    image.png

    下载Kubernetes安装包

    1、增加Kubernetes(K8s) yum源

    cat <<EOF > /etc/yum.repos.d/kubernetes.repo
    [kubernetes]
    name=Kubernetes
    baseurl=https://packages.cloud.google.com/yum/repos/kubernetes-el7-x86_64
    enabled=1
    gpgcheck=1
    repo_gpgcheck=1
    gpgkey=https://packages.cloud.google.com/yum/doc/yum-key.gpg https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg
    EOF
    

    2、下载Kubernetes及依赖包

    mkdir ~/k8s
    cd ~/k8s
    yumdownloader --resolve kubelet kubeadm kubectl
    

    下载文件如下:


    image.png

    打包Docker镜像

    1、安装Docker

    cd ~/docker
    rpm -ivh --replacefiles --replacepkgs *.rpm
    

    执行结果如下:


    image.png

    2、启动Docker

    systemctl enable docker.service
    systemctl start docker.service
    

    配置代理(使用国内源可跳过该步)

    国内拉取镜像需设置docker代理(命令为样例,需根据实际自行设置,也可以在下载时另换阿里源)
    1、创建代理文件

    mkdir /etc/systemd/system/docker.service.d
    vi /etc/systemd/system/docker.service.d/http-proxy.conf
    

    2、http-proxy.conf内容如下

    [Service]
    Environment="HTTP_PROXY=http://192.168.3.4:7890"
    

    3、应用变更

    systemctl daemon-reload
    

    4、验证配置

    systemctl show --property Environment docker
    

    5、重启docker

    systemctl restart docker
    

    安装Kubernetes

    1、安装离线包

    systemctl stop firewalld
    cd ~/k8s
    rpm -ivh --replacefiles --replacepkgs ~/k8s/*.rpm
    

    执行结果如下:


    image.png

    2、初始化

    swapoff -a
    kubeadm init --image-repository registry.aliyuncs.com/google_containers   
    

    3、查看Kubernetes必要镜像

    docker image ls -a
    
    image.png

    4、保存所有镜像到压缩包

    docker save $(docker images -q) -o ~/k8s/k8simages.tar
    

    5、保存镜像名称

    docker images | sed '1d' | awk '{print $1 " " $2 " " $3}' > ~/k8s/k8simages.list
    

    6、下载Flannel网络脚本

    cd ~/k8s
    wget https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
    

    (国内不能直接下载配置代理下载)

    wget -e use_proxy=yes -e https_proxy=http://192.168.3.4:7890 https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
    

    以上完成所有在线下载任务,接着在离线服务器上安装Kubernetes

    离线安装Docker及Kubernetes

    安装Docker及恢复镜像

    1、拷贝~/docker~/k8s到目标服务器上
    2、安装docker

    cd ~/docker
    rpm -ivh --replacefiles --replacepkgs *.rpm
    

    运行结果如下


    image.png

    3、运行docker

    systemctl enable docker.service
    systemctl start docker.service
    

    4、加载Kubernetes镜像

    docker load -i ~/k8s/k8simages.tar
    
    image.png
    image.png

    5、恢复镜像名称及tag

    while read REPOSITORY TAG IMAGE_ID
    do
            echo "== Tagging $REPOSITORY $TAG $IMAGE_ID =="
            docker tag "$IMAGE_ID" "$REPOSITORY:$TAG"
    done < ~/k8s/k8simages.list
    
    image.png

    安装Kubernetes

    1、设置Kubernetes对应内核参数

    cat > /etc/sysctl.d/kubernetes.conf << EOF
    net.ipv4.ip_forward = 1
    net.bridge.bridge-nf-call-ip6tables = 1
    net.bridge.bridge-nf-call-iptables = 1
    EOF
    

    2、重新加载参数

    modprobe br_netfilter
    sysctl --system
    

    3、关闭swap区

    swapoff -a
    sed -e '/swap/s/^/#/g' -i /etc/fstab
    

    4、Linux防火墙上放开Kubernetes端口
    master主节点

    firewall-cmd --permanent --add-port={6443,2379,2380,10250,10251,10252}/tcp
    

    工作节点

    firewall-cmd --permanent --add-port={10250,30000-32767}/tcp
    

    重新加载防火墙配置

    firewall-cmd --reload
    

    设置SELinux模式为Permissive

    setenforce 0
    sed -i 's/^SELINUX=enforcing$/SELINUX=permissive/' /etc/selinux/config
    

    5、离线安装Kubernetes

    rpm -ivh --replacefiles --replacepkgs ~/k8s/*.rpm
    
    image.png

    6、bash中启用kubectl

    source <(kubectl completion bash)
    kubectl completion bash > /etc/bash_completion.d/kubectl
    

    7、初始化Kubernetes主节点

    kubeadm init --image-repository registry.aliyuncs.com/google_containers
    

    结果如下


    image.png

    8、执行建议脚本

    mkdir -p $HOME/.kube
    cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
    chown $(id -u):$(id -g) $HOME/.kube/config
    

    9、启动kublet.service

    systemctl enable kubelet.service
    systemctl start kubelet.service
    

    10、增加Flannel网络

    kubectl apply -f ~/k8s/kube-flannel.yml
    

    11、显示Kubernetes(K8s)集群节点

    kubectl get nodes
    
    image.png

    相关文章

      网友评论

        本文标题:在CentOS 7上离线安装Kubernetes(K8s)

        本文链接:https://www.haomeiwen.com/subject/bdergktx.html