计算机 · 2024年3月20日 0

Centos7 搭建k8s单master集群

Centos7搭建k8s单master集群

Centos7 搭建k8s单master集群(版本1.20.1-0)

机器和环境

系统:Centos7.4 机器:

机器性能: k8s-master: 2核 4G k8s-node1: 4核 8G k8s-node2: 4核 8G 注意: cpu最低要2核,内存最低要2G,自己看机器配置用虚拟机划分资源

注意

以下操作不指明操作那台主机,就是所有机器都要执行一边

准备机器环境

修改服务器名

k8s-master机器执行:hostnamectl set-hostname k8s-master k8s-node1机器执行:hostnamectl set-hostname k8s-node1 k8s-node2机器执行:hostnamectl set-hostname k8s-node2 查询结果:hostname 在这里插入图片描述

添加路径映射

  • vi /etc/hosts 向里面添加

注意:这个ip要根据自己电脑情况

  • 检查:

    • ping k8s-master
    • ping k8s-node1
    • ping k8s-node2

关闭防火墙

关闭selinux

  1. 临时关闭 setenforce 0
  2. 永久关闭 修改配置/etc/selinux/config,将SELINUX设置为disabled vi /etc/selinux/config 在这里插入图片描述

关闭swap

  1. 临时关闭 swapoff -a

  2. 永久关闭

    • vi /etc/fstab
    • 修改/etc/fstab,注释最后一行
    • 在这里插入图片描述
  3. 检查是否关闭 swap都是零则是swap关闭 在这里插入图片描述

开启 bridge-nf

修改vi /etc/sysctl.conf,末尾添加如下配置:

重启验证

  • 重启服务器:reboot now
  • 防火墙是否关闭: systemctl status firewalld
  • selinux是否关闭: getenforce
  • swap是否关闭: free -m

安装docker

时间同步

  • 安装时间同步:yum install -y ntp ntpdate
  • 开启时间同步: ntpdate cn.pool.ntp.org
  • 开启设置开机启动: systemctl start ntpd && systemctl enable ntpd

安装Kubernetes基本组件

设置Kubernetes国内源

安装相关组件

  • 安装kubelet kubeadm kubectl
  • 设置开机启动kubelet systemctl start kubelet && systemctl enable kubelet

安装Master节点

注意:该部操作在k8s-master执行

创建集群

  • 执行脚本

  • 参数说明:

  • 有可能存在镜像拉不下来,这里可以查看需要镜像版本,可以考虑手动去拉取镜像,然后tag镜像 kubeadm config images list

  • 报错解决:

    • 根据报错日志,解决报错
    • 重置取消init: kubeadm reset
    • 再次执行init
  • 安装成功后 在这里插入图片描述

  • 添加到环境变量里面

  • 检查状态: kubectl get cs

    在这里插入图片描述 在这里插入图片描述

  • 重启kubelet:systemctl restart kubelet

  • 再次检查状态: kubectl get cs 在这里插入图片描述

安装Flannel网络插件

  1. 创建目录:mkdir -p /opt/yaml
  2. 创建yaml文件
  1. 讲下面内容粘贴到文件里面

  2. 将quay.io换成quay.mirrors.ustc.edu.cn(中科大)的镜像

  3. 执行安装命令

  1. 查看节点状态:kubectl get nodes 在这里插入图片描述

安装Node

注意: 该步操作只在node节点执行

环境变量配置

  1. 配置文件从master拷贝到node,注意:在master节点执行
  1. 给node节点添加环境,注意: 在node节点执行

Node节点加入Master

  1. 因为修改过一些配置,重启过master,这里为了防止报错,我们重新生成加入token,在master机器执行: kubeadm token create --print-join-command 在这里插入图片描述

  2. 在node节点执行:

  3. 注意结尾有个 –v=6 要自己手动加上去

  4. 在master执行: kubectl get nodes 在这里插入图片描述

报错处理

节点状态NotReady排查

  1. 可能是某个docker镜像没起来

    • 执行: kubectl get pods -o wide --all-namespaces 在这里插入图片描述

      • 找到0/1类型: docker logs 容器id, 看看为什么起不来