美文网首页
02给女朋友讲讲K8s-集群搭建(基于kubeadm)

02给女朋友讲讲K8s-集群搭建(基于kubeadm)

作者: XueFengDong | 来源:发表于2021-04-11 14:45 被阅读0次

    1.准备多台虚拟机(本文为3台,1个Master,2个Node节点)

    三台linux主机

    2.初始化虚拟机环境

    (1)关闭防火墙

    #临时关闭
    systemctl stop firewalld
    #永久关闭
    systemctl disable firewalld
    

    (2)关闭selinux

    #永久关闭
    sed -i 's/enforcing/disabled/' /etc/selinux/config
    #临时关闭
    setenforce 0
    

    (3)关闭Swap分区

    #临时关闭
    swapoff -a
    #永久关闭
    sed -ri 's/.*swap.*/#&/' /etc/fstab
    

    (4)根据规划设置主机名

    hostnamectl set-hostname <hostname>
    

    例:给我的三台虚拟机设置主机名称

    hostnamectl set-hostname master128
    hostnamectl set-hostname node129
    hostnamectl set-hostname node130
    

    使用命令查看是否成功

    [root@master129 /]# hostname
    master129
    

    配置Master节点的hosts

    vi /etc/hosts
    
    //添加hosts
    192.168.171.129 master129
    192.168.171.130 node130
    192.168.171.131 node131
    

    (5)将桥接的Ipv4流量传递到iptables的链

    cat > /etc/sysctl.d/k8s.conf<<EOF
    net.bridge.bridge-nf-call-ip6tables=1
    net.bridge.bridge-nf-call-iptables=1
    EOF
    
    #配置生效
    sysctl --system
    

    (6)时间同步

    yum install ntpdate -y
    ntpdate time.windows.com
    

    (7)重启三台虚拟机

    reboot
    

    3.所有节点上安装Docker/kubeadm/kubelet

    Kubernetes默认(CRI)容器运行时为Docker,因此先安装Docker
    (1)安装Docker
    首先配置一下Docker的阿里源

    cat >/etc/yum.repos.d/docker.repo<<EOF
    [docker-ce-edge]
    name=Docker CE Edge - \$basearch
    baseurl=https://mirrors.aliyun.com/docker-ce/linux/centos/7/\$basearch/edge
    enabled=1
    gpgcheck=1
    gpgkey=https://mirrors.aliyun.com/docker-ce/linux/centos/gpg
    EOF
    

    yum方式安装Docker

    # yum安装
    yum -y install docker-ce
    
    # 设置开机启动并运行docker
    systemctl enable docker && systemctl start docker
    
    # 查看docker版本
    docker --version  
    

    配置docker镜像源

    cat > /etc/docker/daemon.json << EOF
    {
      "registry-mirrors": ["https://b9pmyelo.mirror.aliyuncs.com"]
    }
    EOF
    

    重启docker

    systemctl restart docker
    

    配置kubernetes软件源,方便后面的下载

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

    (2)安装kubeadm,kubelet和kubectl

    # 安装kubelet、kubeadm、kubectl,同时指定版本
    yum install -y kubelet-1.18.0 kubeadm-1.18.0 kubectl-1.18.0
    # 设置开机启动
    systemctl enable kubelet
    

    部署Master节点,在Master节点上执行

    kubeadm init \
    --apiserver-advertise-address=192.168.109.128 \
    --image-repository registry.aliyuncs.com/google_containers \
    --kubernetes-version v1.18.0 \
    --service-cidr=10.96.0.0/12  \
    --pod-network-cidr=10.244.0.0/16
    

    由于默认拉取镜像地址k8s.gcr.io国内无法访问,这里指定阿里云镜像仓库地址,【执行上述命令会比较慢,因为后台其实已经在拉取镜像了】,我们 docker images 命令即可查看已经拉取的镜像


    image.png

    初始化kubectl工具

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

    使用kubectl查看节点信息


    image.png

    master节点部署完成,操作node节点,使其加入集群中.
    在master节点部署成功之后,会有下图中的提示,复制最后一句话,在node节点上执行即可


    image.png
    kubeadm join 192.168.109.128:6443 --token hx2a4n.yc1q2bqbkfopfaut \
        --discovery-token-ca-cert-hash sha256:e9a2abaabb71818ed71b1dcf158de3b2c217e46b94e78a9a0dc748d2c0ca4bf2
    

    执行完成后,使用kubectl查看集群状态,发现node节点已经成功加入集群中.


    image.png

    (3)部署CNI网络插件
    上面的状态还是NotReady,下面我们需要网络插件,来进行联网访问
    支持k8s的网络插件有很多,flannel、calico.我们这里选取calico(提供企业级支持)

    #在master节点上执行
    [root@master55 /]# mkdir k8s
    [root@master55 /]# cd k8s/
    [root@master55 k8s]# mkdir calico && cd calico
    [root@master55 calico]# wget https://kuboard.cn/install-script/calico/calico-3.13.1.yaml
    --2020-06-17 17:42:44--  https://kuboard.cn/install-script/calico/calico-3.13.1.yaml
    Resolving kuboard.cn (kuboard.cn)... 119.3.92.138, 122.112.240.69
    Connecting to kuboard.cn (kuboard.cn)|119.3.92.138|:443... connected.
    HTTP request sent, awaiting response... 200 OK
    Length: 21079 (21K) [application/octet-stream]
    Saving to: ‘calico-3.13.1.yaml’
    100%[====================================================================================================================================================>] 21,079      --.-K/s   in 0s
    2020-06-17 17:42:51 (221 MB/s) - ‘calico-3.13.1.yaml’ saved [21079/21079]
    [root@master55 calico]# ls
    calico-3.13.1.yaml
    [root@master55 calico]#
    

    安装calico-3.13.1.yaml

    kubectl apply -f calico-3.13.1.yaml
    

    安装完成后,需要等待一会时间,再次查看pod和nodes,发现已经变成running和ready状态了.

    相关文章

      网友评论

          本文标题:02给女朋友讲讲K8s-集群搭建(基于kubeadm)

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