K8s集群安装准备

环境准备一

  • 安装VMware虚拟软件
  • 准备centos7镜像

环境准备二

  • 因测试环境系统资源,所以k8s规划的是1主1从
  • 创建2台centos虚拟机
    软件:设置为满足基础服务
    主机规划:
    • 192.168.48.200 主机名:k8s-master 子网:255.255.255.0 网关:192.168.48.2 DNS:223.5.5.5
    • 192.168.48.201 主机名:k8s-node 子网:255.255.255.0 网关:192.168.48.2 DNS:223.5.5.5

环境准备三

  1. 确保安装的虚拟机centos版本大于7.5
    cat /etc/redhat-release
    image

  2. 主机名解析
    为了方便集群节点间的直接调用,在这个配置一下主机名解析,企业中推荐使用内部DNS服务器

    # 主机名成解析 编辑2台服务器的/etc/hosts文件,添加下面内容
    192.168.48.200 k8s-master
    192.168.48.201 k8s-node
    
  3. 时间同步
    kubernetes要求集群中的节点时间必须精确一致,这里使用chronyd服务从网络同步时间
    企业中建议配置内部的时间同步服务器

    #输入date,如果时间不一致的话
    systemctl start chronyd
    systemctl enable chronyd
    
    
  4. 禁用iptable和firewalld服务
    kubernetes和docker 在运行的中会产生大量的iptables规则,为了不让系统规则跟它们混淆,直接关闭系统的规则

    #关闭防火墙
    systemctl stop firewalld
    #设置开机不启动
    systemctl disable firewalld
    #关闭iptables
    systemctl stop iptables
    #设置开机不启动
    systemctl disable iptables
    
  5. 禁用selinux
    selinux是linux系统下的一个安全服务,如果不关闭它,在安装集群中会产生各种各样的问题

    #编辑 /etc/selinux/config 文件,修改SELINUX的值为disable
    #注意修改完毕之后需要重启linux服务
    SELINUX=disabled
    
  6. 禁用swap分区
    swap分区指的是虚拟内存分区,它的作用是物理内存使用完,之后将磁盘空间虚拟成内存来使用,启用swap设备会对系统的性能产生非常负面的影响,因此kubernetes要求每个节点都要禁用swap设备,但是如果因为某些原因确实不能关闭swap分区,就需要在集群安装过程中通过明确的参数进行配置说明

    # 编辑分区配置文件/etc/fstab,注释掉swap分区一行
    # 注意修改完毕之后需要重启linux服务
    vim /etc/fstab
    注释掉 /dev/mapper/centos-swap swap
    # /dev/mapper/centos-swap swap
    
  7. 转发 IPv4 并让 iptables 看到桥接流量
    通过运行 lsmod | grep br_netfilter 来验证 br_netfilter 模块是否已加载。
    若要显式加载此模块,请运行 sudo modprobe br_netfilter。
    为了让 Linux 节点的 iptables 能够正确查看桥接流量,请确认 sysctl 配置中的 net.bridge.bridge-nf-call-iptables 设置为 1

    cat <<EOF | sudo tee /etc/modules-load.d/k8s.conf
    overlay
    br_netfilter
    EOF
    
    sudo modprobe overlay
    sudo modprobe br_netfilter
    
    # 设置所需的 sysctl 参数,参数在重新启动后保持不变
    cat <<EOF | sudo tee /etc/sysctl.d/k8s.conf
    net.bridge.bridge-nf-call-iptables  = 1
    net.bridge.bridge-nf-call-ip6tables = 1
    net.ipv4.ip_forward                 = 1
    EOF
    
    # 应用 sysctl 参数而不重新启动
    sudo sysctl --system
    
  8. 配置ipvs功能
    在Kubernetes中Service有两种带来模型,一种是基于iptables的,一种是基于ipvs的两者比较的话,ipvs的性能明显要高一些,但是如果要使用它,需要手动载入ipvs模块

    # 1.安装ipset和ipvsadm
    yum install ipset ipvsadm -y
    
    # 2.添加需要加载的模块写入脚本文件
    cat <<EOF> /etc/sysconfig/modules/ipvs.modules
    #!/bin/bash
    modprobe -- ip_vs
    modprobe -- ip_vs_rr
    modprobe -- ip_vs_wrr
    modprobe -- ip_vs_sh
    modprobe -- nf_conntrack_ipv4
    EOF
    
    
    # 3.为脚本添加执行权限
    chmod +x /etc/sysconfig/modules/ipvs.modules
    
    # 4.执行脚本文件
    bash /etc/sysconfig/modules/ipvs.modules
    
    # 5.查看对应的模块是否加载成功
    lsmod | grep -e ip_vs -e nf_conntrack_ipv4
    
    
  9. 重启系统
    reboot

posted @ 2022-10-18 15:47  弩哥++  阅读(42)  评论(0编辑  收藏  举报