美文网首页
2020-06-26 CentOs minimal 安装k8s

2020-06-26 CentOs minimal 安装k8s

作者: 俊果果 | 来源:发表于2020-06-27 00:50 被阅读0次

    一、虚拟机安装系统

    1、下载镜像文件

    http://mirror.sfo12.us.leaseweb.net/centos/7.8.2003/isos/x86_64/

    image.png

    二、VMWare新建虚拟机并安装该系统

    • 过程略


      image.png

    三、系统配置

    1、开启网卡

    vi /etc/sysconfig/network-scripts/ifcfg-ens33
    #下面的值从no改为yes
    ONBOOT=yes
    #保存后重启
    

    2、安装 net-tools包

    yum install net-tools
    

    安装完成后执行命令ifconfig可以看到如下网络信息:

    image.png

    3、用xshell连接

    • 以后不需要在vmware内输命令
    yum install vim
    
    image.png

    4、关闭SElinux

    # 临时方法 – 设置系统参数
    setenforce 0
    # 永久方法 – 需要重启服务器
    sed -i 's/^SELINUX=enforcing$/SELINUX=disabled/' /etc/selinux/config
    # 修改/etc/selinux/config文件中设置SELINUX=disabled ,然后重启服务器
    

    5、关闭防火墙 & 其他

    # 关闭并禁用防火墙
    systemctl stop firewalld & systemctl disable firewalld
    # 禁用swap
    swapoff -a && sysctl -w vm.swappiness=0  # 临时关闭swap
    sed -ri '/^[^#]*swap/s@^@#@' /etc/fstab  # 取消开机挂载swap
    # 校正时间
    yum install -y ntp
    ntpdate cn.pool.ntp.org
    

    6、配置内核参数,将桥接的IPv4流量传递到iptables的链

    对于 RHEL/CentOS 7 系统,可以会由于 iptables 被绕过导致网络请求被错误的路由。所以还需执行如下命令保证 sysctl 配置中 net.bridge.bridge-nf-call-iptables 被设为1。

    vi /etc/sysctl.conf
    #添加以下内容,保存退出
    net.bridge.bridge-nf-call-ip6tables = 1
    net.bridge.bridge-nf-call-iptables = 1
    net.ipv4.ip_forward = 1
    #然后执行命令
    sysctl --system
    

    7、安装docker

    sudo yum install -y yum-utils device-mapper-persistent-data lvm2
    sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
    sudo yum makecache fast
    sudo yum install docker-ce docker-ce-cli containerd.io
    systemctl enable docker
    systemctl start docker
    docker -v
    
    image.png
    • 配置镜像源加速
    vi /etc/docker/daemon.json
    #输入以下内容并保存
    {
    "registry-mirrors": [
    "http://hub-mirror.c.163.com",
    "https://kfwkfulq.mirror.aliyuncs.com",
    "https://2lqq34jg.mirror.aliyuncs.com",
    "https://pee6w651.mirror.aliyuncs.com",
    "https://registry.docker-cn.com"
    ]
    }
    

    四、安装Kubernetes

    1、配置源

    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
    

    2、安装kubelet kubeadm kubectl

    yum install -y kubelet kubeadm kubectl --disableexcludes=kubernetes
    systemctl enable kubelet && systemctl start kubelet
    
    image.png

    3、克隆一个虚拟机

    • 上面的步骤同时也需要在node节点执行一次,为了省事,这里直接复制一个虚拟机出来
      image.png
      以前的命名为centos-master,克隆的命名为centos-node

    文章参考:

    五、节点配置

    1、配置host

    #在centos-master执行
    hostnamectl set-hostname centos-master
    cat <<EOF >>/etc/hosts
    127.0.0.1 centos-master
    EOF
    #在centos-node执行
    hostnamectl set-hostname centos-node
    cat <<EOF >>/etc/hosts
    127.0.0.1 centos-node
    EOF
    

    确保结果类似下面:

    vim /etc/hosts
    
    image.png

    1、master初始化

    注意--pod-network-cidr=10.244.0.0/16 是 k8s 的网络插件所需要用到的配置信息,用来给 node 分配子网段。然后我们这边用到的网络插件是 flannel,就是这么配。

    kubeadm init \
        --image-repository registry.aliyuncs.com/google_containers \
        --pod-network-cidr=10.244.0.0/16 \
        --ignore-preflight-errors=cri \
        --kubernetes-version=1.18.1
    
    • kubernetes-version 换成安装的对应版本号
    kubectl version
    
    image.png
    • 安装结果


      image.png

    2、master配置

    • 按照上面提示执行命令
    mkdir -p $HOME/.kube
    sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
    sudo chown $(id -u):$(id -g) $HOME/.kube/config
    

    3、node添加到master集群

    • 按照master init完成时提示,在node节点执行命令
    kubeadm join 192.168.32.129:6443 --token e88n8t.qvxf9exn5r8dswvj     --discovery-token-ca-cert-hash sha256:30d1153fae6a4892819e508fa8483e9047c3a405e55c28436de5c358bf015eaa
    
    • 如果没记住可以用下面命令生成
    kubeadm token create --print-join-command
    
    • node执行结果


      image.png
    • master查看
    kubectl get nodes
    
    image.png

    4、添加网络插件

    参考文章flannel github page

    kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
    
    • 若服务器内无法下载,则先下载,然后yum install -y lrzsz上传到服务器在操作

    5、NotReady问题排查

    kubectl get nodes node还是不正常运行????

    • kubectl get pods --all-namespaces
      image.png
    • 查看具体error的信息
      kubectl describe pod kube-flannel-ds-amd64-qxbrl -n kube-system
      image.png
      可见是这个image拉取不下来
    • 解决
      找一台能通的机器,下载镜像
      docker pull quay.io/coreos/flannel:v0.12.0-amd64
      然后导出到本地
      docker save -o flannel.tar quay.io/coreos/flannel:v0.12.0-amd64
      上传到master节点,导入镜像
      docker load < flannel.tar
    • 再次查看,问题解决


      image.png
    • node也正常了


      image.png
    • 若要使master也作为工作节点
    kubectl taint nodes --all node-role.kubernetes.io/master-
    

    6、失败重置

    若部署失败,用以下命令重置

    • master
    kubeadm reset
    rm -rf $home/.kube
    #剔除节点
    kubectl drain centos-node --delete-local-data --ignore-daemonsets
    kubectl delete node centos-node
    
    • node
    kubeadm reset
    systemctl daemon-reload
    systemctl restart kubelet
    rm -rf /etc/cni/net.d
     rm -rf $home/.kube
    

    相关文章

      网友评论

          本文标题:2020-06-26 CentOs minimal 安装k8s

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