创建K8s集群记录

前几天使用minikube搭建了一个学习的k8s环境,觉得差点意思,所以有学习了下使用kubeadm的方式来搭建k8s集群,好记性不如乱笔头,记录一下自己的爬坑过程

kubeadm环境准备

  1. 管理防火墙

    # 二选一即可
    systemctl stop firewalld 
    systemctl disable firewalld
    
  2. 关闭selinux

    # 二选一即可
    * sed -i 's/enforcing/disabled/' /etc/selinux/config  #永久
    * setenforce 0  #临时
    
  3. 关闭swap(k8s禁止虚拟内存以提高性能)

    # 二选一即可
    sed -ri 's/.*swap.*/#&/' /etc/fstab #永久
    swapoff -a #临时
    
  4. 在master节点添加hosts

    cat >> /etc/hosts << EOF
    192.168.172.134 k8smaster
    192.168.172.135 k8snode # 只有一个节点的时候,该行可以省略
    EOF
    
  5. 设置网桥参数

    cat > /etc/sysctl.d/k8s.conf << EOF
    net.bridge.bridge-nf-call-ip6tables = 1
    net.bridge.bridge-nf-call-iptables = 1
    EOF
    
  6. 让上一步骤生效

    sysctl --system  #生效
    
  7. 时间同步

    yum install ntpdate -y 
    ntpdate time.windows.com
    

安装步骤

  1. 安装docker,此处不再赘述,直接去docker官网查阅文档即可,然后配置阿里云代理镜像仓库

  2. 添加k8s的阿里云YUM源

    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
    
  3. 安装 kubeadm,kubelet 和 kubectl

    yum install kubelet-1.19.4 kubeadm-1.19.4 kubectl-1.19.4 -y
    systemctl enable kubelet.service
    
  4. 查看是否安装成功

    yum list installed | grep kubelet
    yum list installed | grep kubeadm
    yum list installed | grep kubectl
    
  5. 部署Kubernetes Master主节点

    kubeadm init --apiserver-advertise-address=主节点id --image-repository registry.aliyuncs.com/google_containers --kubernetes-version v1.19.4 --service-cidr=10.96.0.0/12 --pod-network-cidr=10.244.0.0/16
    

    5.1 如果上述步骤执行失败了,需要更改配置,并且先执行如下命令,再次执行kubeadm init …

    kubeadm reset
    

    5.2 成功如下图所示
    在这里插入图片描述

  6. 接下来在master机器上执行

    mkdir -p $HOME/.kube
    sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
    sudo chown $(id -u):$(id -g) $HOME/.kube/config
    
  7. 查看节点情况,如下图所示[由于本次只有一台linux服务器,所有只有master节点]

    kubectl get nodes
    

    在这里插入图片描述

  8. 把node节点加入Kubernetes master[单台的情况可直接跳过该步骤]

    kubeadm join 10.255.237.120:6443 --token m3lhfe.qpyrfr66bkgbhejp \
        --discovery-token-ca-cert-hash sha256:6931417070157e0913fc2868159aaf4bfeef644be29472c8879d9347d0d1a70a
    

    上述命名会在在kubeadm init …执行成功的时候打印在控制台,可在步骤5.2截图的红框查看

  9. 部署网络查件,下载kube-flannel.yml

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

    如果服务器下载不了,可以通过本地下载kube-flannel.yml传到服务器去执行

  10. 应用kube-flannel.yml文件得到运行时容器

    kubectl apply -f kube-flannel.yml #在master机器上执行
    
  11. 再次查看节点状态

    kubectl get nodes
    

    status依然为notReady,说明还没有就绪,需要等一会儿,然后再次查看,变成ready了,如下图
    在这里插入图片描述

  12. 至此,我们的k8s就搭建好了

Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐