1、虚拟机准备

vmware下安装三台centos7虚拟机,三台机器的配置后面作如下配置

集群内主机设置
ip地址hostname内存cpu个数
master 192.168.126.131master2G2
node1192.168.126.132node12G2
node2192.168.126.133node22G2

2、网络与参数配置

  • 配置ip(所有节点)
    • 切换到root用户 su root
    • 打开ens33配置网络 vi /etc/sysconfig/network-scripts/ifcfg-ens33
    • 将ONBOOT=NO设置为yes,启动网卡
    • 重启网络服务  sudo service network restart
    • 测试是否能够上网 ping www.baidu.com
  • 配置hostname(挨个节点配置)
    • 每个节点设置主机名
    • hostnamectl set-hostname master
    • hostnamectl set-hostname node1
    • hostnamectl set-hostname node2
  • 节点修改host(所有节点)
    • vim /etc/hosts
    • 192.168.126.131 master
    • 192.168.126.132 node1
    • 192.168.126.133 node2
  • 关闭分区交换(所有节点)
    • 不关闭的话在启动初始化kubeadm时可能出现错误信息如下
    • The HTTP call equal to 'curl -sSL http://localhost:10248/healthz' failed with error: Get "http://localhost:10248/healthz": dial tcp 【::1】:10248: connect: connection refused.
    • swapoff -a
  • 关闭 SELinux(所有节点)
    • setenforce 0
    • sed -i --follow-symlinks 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/sysconfig/selinux
  • 关闭防火墙(所有节点)
    • systemctl stop firewalld
    • systemctl disable firewalld 

3、准备安装源与安装过程

  • 添加k8s安装源(所有节点)
    • cat <<EOF > kubernetes.repo
      [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
      mv kubernetes.repo /etc/yum.repos.d/

    • 注意 :这里的gpgcheck=0 repo_gpgcheck=0设置为0而不是1,否则出现gpg 证书的验证错误!!
  • 添加Docker安装源(所有节点)
    • yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

       

  •  安装所需组件(所有节点)
    • yum install -y kubelet kubeadm kubectl docker-ce
  • 启动 kubelet、docker,并设置开机启动(所有节点)
    • systemctl enable kubelet
    • systemctl start kubelet
    • systemctl enable docker
    • systemctl start docker 
  • 修改Docker配置(所有节点)
    • # kubernetes 官方推荐 docker 等使用 systemd 作为 cgroupdriver,否则 kubelet 启动不了
      cat <<EOF > daemon.json
      {
        "exec-opts": ["native.cgroupdriver=systemd"],
        "registry-mirrors": ["https://ud6340vz.mirror.aliyuncs.com"]
      }
      EOF
      mv daemon.json /etc/docker/
      
      # 重启生效
      systemctl daemon-reload
      systemctl restart docker
  • 用 kubeadm 初始化集群(仅在主节点跑)
    • # 初始化集群控制台 Control plane
      # 失败了可以用 kubeadm reset 重置
      kubeadm init --image-repository=registry.aliyuncs.com/google_containers
      #也可以用如下初始化指令,消除预检(因为预检有可能出现错误)
      kubeadm init --image-repository=registry.aliyuncs.com/google_containers --ignore-preflight-errors=all
      
      # 记得把 kubeadm join xxx 保存起来
      # 忘记了重新获取:kubeadm token create --print-join-command
      
      # 复制授权文件,以便 kubectl 可以有权限访问集群
      # 如果你其他节点需要访问集群,需要从主节点复制这个文件过去其他节点
      mkdir -p $HOME/.kube
      cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
      chown $(id -u):$(id -g) $HOME/.kube/config
      
      # 在其他机器上创建 ~/.kube/config 文件也能通过 kubectl 访问到集群
      
       注意:要保存下来kubeadm join指令,即将工作节点node加入到master k8s集群
  • 把工作节点加入到集群(在非主节点上执行)
    • kubeadm join 192.168.126.131:6443 --token tjirc3.n0ranigtf1t54qy2 --discovery-token-ca-cert-hash sha256:c6e1b1259a26fe4dfa2da9bd1b22ef288598d7fdab03b963e11203ddb75e5c69

  • 安装网络插件,否则 node 是 NotReady 状态(主节点跑)
    • # 很有可能国内网络访问不到这个资源,你可以网上找找国内的源安装 flannel
      kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
  •  k8s集群搭建成功

     注意:等到master主节点和两个node工作节点都为ready状态,表示整个集群启动成功!

  • 参考如下:

    centos7.1使用kubeadm部署kubernetes 1.16.2的master高可用 - 清风小舍 - 博客园

    VMware虚拟机中Centos7的IP地址设置方法_weixin_33757911的博客-CSDN博客

    💽 安装 Kubernetes 集群 - K8S 教程

 

 

 

Logo

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

更多推荐