K8S 部署

零、 环境介绍

  • HW: 2c2g 20GB
  • OS: Rocky Linux 9.2
  • Master: 192.168.128.200
  • Node1: 192.168.128.204
  • Node2: 192.168.128.205

一、 服务器配置

  • 一台或多台服务器
  • 内存2GB或更多,CPU2核或更多,硬盘30GB或更多
  • 所有机器之间网络互通
  • 可以访问外网,需要拉取镜像
  • 禁止swap分区

1.1 禁止 SWAP 分区

编辑配置文件: /etc/fstab 注释相关分区, 重启系统

1.2 关闭防火墙

  • 三台服务器都需配置
    systemctl stop firewalld iptables
    systemctl disable firewalld iptables

1.3 关闭 SeLinux

  • 三台服务器都需配置
    sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config

1.4 配置主机名

hostnamectl set-hostname k8s-master

主机 ip
k8s-master 192.168.128.200
k8s-node1 192.168.128.204
k8s-node2 192.168.128.205

1.5 配置解析

  • 三台服务器都需配置

    cat >> /etc/hosts << EOF
    192.168.128.200 k8s-master
    192.168.128.204 k8s-node1
    192.168.128.205 k8s-node2
    EOF

1.6 配置时间同步

  • 三台服务器都需配置
    systemctl enable chronyd --now

1.7 配置ipvs负载均衡

  • master 节点配置
    路径不同于CentOS7 的 /etc/sysconfig/modules

    # 安装相关软件包
    yum install ipset ipvsadm

    # 开启 ip_vs 配置文件
    cat > /etc/modules-load.d/ipvs.conf <<EOF
    ip_vs
    ip_vs_rr
    ip_vs_wrr
    ip_vs_sh
    nf_conntrack_ipv4
    EOF

    # 内核重新加载
    systemctl restart systemd-modules-load.service

    # 验证相关模块是否加载
    [root@k8s-master]# lsmod | grep ip_vs
    ip_vs_sh 16384 0
    ip_vs_wrr 16384 0
    ip_vs_rr 16384 0
    ip_vs 233472 6 ip_vs_rr,ip_vs_sh,ip_vs_wrr
    nf_conntrack 212992 3 nf_nat,nft_ct,ip_vs
    nf_defrag_ipv6 24576 2 nf_conntrack,ip_vs
    libcrc32c 16384 5 nf_conntrack,nf_nat,nf_tables,xfs,ip_vs

1.8 开启网络转发和桥接

  • 三台服务器都需配置
    cat >> /etc/sysctl.conf << EOF
    net.ipv4.ip_forward = 1
    net.bridge.bridge-nf-call-iptables = 1
    net.bridge.bridge-nf-call-ip6tables = 1
    EOF
    sysctl -p

1.9 修改源

  • 三台服务器都需配置
    sudo sed -e 's|^mirrorlist=|#mirrorlist=|g' \
    -e 's|^#baseurl=http://dl.rockylinux.org/$contentdir|baseurl=https://mirror.nju.edu.cn/rocky|g' \
    -i.bak \
    /etc/yum.repos.d/rocky-extras.repo \
    /etc/yum.repos.d/rocky.repo

1.10 containerd 部署

  • 三台服务器都需要部署
    yum install containerd.io
    containerd config default > /etc/containerd/config.toml
    systemctl restart containerd

二、 安装 k8s 组件

2.1 配置源

  • 三台服务器都需要操作
    cat >  /etc/yum.repos.d/kubernetes.repo << EOF
    [kubernetes]
    name=Kubernetes
    baseurl=https://mirrors.aliyun.com/kubernetes-new/core/stable/v1.28/rpm/
    enabled=1
    gpgcheck=1
    gpgkey=https://mirrors.aliyun.com/kubernetes-new/core/stable/v1.28/rpm/repodata/repomd.xml.key
    EOF

2.2 安装 K8S 软件包

  • 三台服务器都需要操作

yum install kubeadm kubelet kubectl kubernetes-cni cri-tools

2.3 配置 cri

  • 三台服务器都需要操作
    cat > /etc/crictl.yaml << EOF
    runtime-endpoint: unix:///run/containerd/containerd.sock
    image-endpoint: unix:///run/containerd/containerd.sock
    timeout: 10
    debug: true
    pull-image-on-create: false
    disable-pull-on-run: false
    EOF