一,平台规划

  1.单master集群

    

k8s集群安装OpenStack k8s集群搭建工具_k8s集群安装OpenStack

  2.多master集群

    

k8s集群安装OpenStack k8s集群搭建工具_github_02

 

 二,配置要求

  

k8s集群安装OpenStack k8s集群搭建工具_Docker_03

 

三,集群部署

  1.集群部署的两种方式

    (1)kubeadm

      kubeadm是一个K8s部署工具,提供kubeadm init 和 kubeadm join,用于快速部署k8s集群

      官方地址:https://kubernetes.io/docs/reference/setup-tools/kubeadm/kubwadm/

    (2)二进制包

      从github下载发行版的二进制包,手动部署每个组件,组成k8s集群。

 

四,使用kubeadm的方式搭建集群

  1.安装三台虚拟机,安装操作系统cenos7.x

  2.对三个安装完系统后的虚拟机进行初始化操作

#关闭防火墙
      systemctl stop firewalld    #临时
      systemctl disable firewalld  #永久
    #关闭selinux
      sed -i 's/enforing/disabled/' /etc/selinux/config   #永久
      setenforce 0  #临时
    #关闭swap
      swapoff -a  #临时
      sed -ri 's/.*swap.*/#&/' /etc/fstab   #永久
    #根据规划设置主机名
      hostnamectl set-hostname <hostname> 
        (三台都需要设置主机名,例:hostnamectl set-hostname k8smaster,设置完执行hostname验证)
    #在master添加hosts(设置成自己的ip及对应的主机名)
      cat >> /etc/hosts << EOF
      192.168.44.141 master
      192.168.44.142 node1
      192.168.44.143 node2
      EOF
    #将桥接的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  #生效
    #时间同步
      yum install ntpdate -y
      ntpdate time.windows.com

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

    3.1 安装Docker(k8s默认CRI(容器运行时)为Docker,因此先安装Docker)

      

$ wget https://mirrors.aliyun.com/docker-ce/liunx/centos/docker-ce.repo -o       /etc/yum.repos.d/docker-ce.repo
      $ yum -y install docker-ce-18.06.1.ce-3.el7
      $ systemctl enable docker && systemctl start docker
      $ docker --version  【
      $ cat > /etc/docker/daemon.json << EOF
      {
        "registry-mirrors":["https://b9pmyelo.mirror.aliyuncs.com"]      }
      EOF
      $ systemctl restart docker

    3.2 添加阿里云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
      EOF

    3.3 安装kubeadm,kubelet和kubectl

  

$ yum install -y kubelet-1.18.0 kubeadm-1.18.0 kubectl-1.18.0
      $ systemctl enable kubelet

  4.部署kubernetes Master

 

(只在Master节点上执行)
    $ kubeadm init \
     --apiserver-advertise-address=192.168.44.146 \   #当前Master节点ip
     --image-repository registry.aliyuncs.com/google_containers \      --kubernetes-version v1.18.0 \   #版本
     --service-cidr=10.96.0.0/12 \  #其他网络的网段
     --pod-network-cl=idr=10.244.0.0/16  #其他网络的网段
  由于默认拉取镜像地址k8s.gcr.io国内无法访问,这里指定阿里云镜像仓库地址。
  使用kubectl工具(上述命令执行成功后会弹出下列命令):
   mkdir -p $HOME/.kube
    sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
    sudo chown $(id -g) $HOME/.kube/config
    $ kubectl- get nodes

    

k8s集群安装OpenStack k8s集群搭建工具_github_04

 

 

   

 5.加入Kubernetes Node

   (在node节点执行)

   向集群添加新节点,执行在kubeadm init输出的kubeadm join命令:

   (复制红框内命令在Node节点执行)

     

k8s集群安装OpenStack k8s集群搭建工具_github_05

 

    Node节点执行成功后在Master节点执行 kubectl get nodes 查看node节点是否添加到集群中

 5.1 默认token有效期为24小时,当过期之后,该token就不可用了,这时就需要重新创建token,操作如下:

kubeadm token create --print-join-command

 6.部署CNI网络插件

wget https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yum  默认镜像地址无法访问,sed命令修改为docker hub镜像仓库。
   kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yum    (因为是国外的地址,若失败可以多执行几次也可以使用国内地址)

  测试:kubectl get pods -n kube-system

  

k8s集群安装OpenStack k8s集群搭建工具_github_06

  

k8s集群安装OpenStack k8s集群搭建工具_k8s集群安装OpenStack_07

 

  (需多等待一段时间后查看)

 

  7.最终测试集群

  

k8s集群安装OpenStack k8s集群搭建工具_Docker_08