当前位置: 首页 > news >正文

10.1 容器云部署准备(一) - 实践

10.1 容器云部署准备(一) - 实践

文章目录

  • 1. 操作系统安装
      • ISO镜像获取
      • 系统配置
  • 2. 主机初始化设置
      • 设置主机名
      • 配置主机hosts文件
      • 检查DNS解析
  • 3. 安全配置
      • 关闭防火墙
      • 关闭SElinux
      • 关闭swap分区
  • 4. 时间同步
      • 安装chrony客户端
      • 配置chrony
      • 启动chrony
      • 手动对时
      • 验证chrony配置
  • 5. 内核模块加载
      • 内核模块的概念
      • 永久加载br_netfilter模块
      • 修改内核参数
      • 验证内核模块加载及参数修改
  • 6. IPVS功能
      • 安装ipset和ipvsadm包
      • 永久加载IPVS相关模块
      • 验证


1. 操作系统安装

2. 主机初始化设置

  • 设置主机名

    [root@node01 ~]$ hostnamectl set-hostname master01
    [root@node01 ~]$ hostnamectl set-hostname node01
  • 配置主机hosts文件

    这段命令的作用是将以下两行内容追加到 /etc/hosts 文件中:

    • >> 是重定向操作符,表示将输出追加到指定文件的末尾,而不是覆盖文件内容。
    • <<EOF ... EOF这是一个所谓的“Here Document”语法,表示多行输入。<<EOF 表示开始一个 Here Document,直到遇到 EOF 结束标记(可以是其他标记符,但 EOF 是最常用的)。
    cat >> /etc/hosts <<EOF
    192.168.100.100 master01
    192.168.100.101 node01
    EOF
  • 检查DNS解析

    确保DNS配置正常,可以正常访问外网。

    [root@node01 ~]$ cat /etc/resolv.conf
    # Generated by NetworkManager
    search lan
    nameserver 192.168.110.1

    备注:DNS 配置可以是宿主机的本地网络 DNS服务器,由路由器或本地网络配置自动分配的。也可以是公共DNS服务器的地址,例如,Google 的 8.8.8.8 和 8.8.4.4。

3. 安全配置

  • 关闭防火墙

    Kubernetes 依赖于多个组件之间的网络通信,包括节点之间、POD 之间以及与控制平面组件的通信。firewalld 是 Linux 上一个动态管理防火墙的工具,它可能会默认阻止某些必要的端口或协议,导致 Kubernetes 组件无法正常通信。

    [root@node01 ~]$ systemctl stop firewalld
    [root@node01 ~]$ systemctl disable firewalld
    [root@node01 ~]$ systemctl status firewalld
  • 关闭SElinux

    SELinux (Security-Enhanced Linux) 是一个 Linux 内核模块,用于提供访问控制安全策略。它通过强制访问控制(MAC)来限制系统中的进程和用户,防止未经授权的访问和操作。关闭 firewalld 和 SELinux 可以简化 Kubernetes 部署过程中的网络和权限管理问题。

    # 编辑 /etc/selinux/config 文件
    vim /etc/selinux/config
    # 将 SELINUX=enforcing 改为 SELINUX=disabled
    SELINUX=disabled
    #SELINUX=enforcing
    # 保存并退出文件,然后重启系统
    reboot
    # 检查selinux状态
    [root@node01 ~]$ sestatus
    SELinux status:                 disabled
    [root@node01 ~]$ getenforce
    Disabled

    上述修改操作也可以通过sed命令来实现

    sed -r -i '/^(SELINUX)=(.*)/c\SELINUX=disabled' /etc/selinux/config
    # 这条 sed 命令的完整含义是:
    # 在文件 /etc/selinux/config 中,找到以 SELINUX= 开头的行,将整行替换为 SELINUX=disabled。
    # -r
    # 这个选项启用 sed 的扩展正则表达式模式。扩展正则表达式比基本正则表达式更强大,支持更多的元字符。
    # -i
    # 这个选项表示 sed 将直接在文件中进行修改,而不是将结果输出到标准输出(即命令行中显示结果)。
    # 带有 -i 的 sed 会直接修改文件内容。
    /:正则表达式的分隔符。
    ^:匹配行首。
    (SELINUX):匹配 "SELINUX" 并将其放入捕获组。
    =:匹配等号。
    (.*):匹配等号后面的任意字符,并将其放入捕获组。
    /:正则表达式的结束分隔符。
    c\:sed 的替换命令,表示将匹配的整行替换为后面的内容。
    SELINUX=disabled:替换内容。
  • 关闭swap分区

    swap交换空间是一种将内存中的数据临时存储到磁盘上的机制,它在内存不足时辅助系统运行。但在 Kubernetes 集群中,启用 Swap 可能会干扰节点的稳定性和性能,因此通常建议在 Kubernetes 节点上禁用 Swap。

    # 这条命令的作用是立即关闭系统上所有的交换分区和交换文件,使系统停止使用 Swap。这是一个即时生效的操作。
    [root@master ~]$ swapoff -a
    # -i :表示直接修改文件
    # /swap/:匹配包含 swap 的行。
    # s/^/#/:表示将匹配行的行首添加 #,即注释掉该行。
    [root@master ~]$ sed -i '/swap/s/^/#/' /etc/fstab

4. 时间同步

chrony 是一个用于同步系统时间的网络时间协议 (NTP) 客户端和服务器软件。

5. 内核模块加载

6. IPVS功能

在Kubernetes集群部署中,安装ipset和ipvsadm的主要目的是支持IPVS模式的负载均衡功能,这是kube-proxy组件实现服务发现和流量转发的关键依赖。若计划使用kube-proxy的IPVS模式(非默认的iptables模式),则必须加载ip_vs系列模块并安装ipvsadm。

备注:IPVS模式在大规模集群中性能更优,支持会话保持等高级特性。

http://www.hskmm.com/?act=detail&tid=24427

相关文章:

  • 关于缓冲区以及输出方式
  • 漏洞赏金计划的困境:i915漏洞与ChromeOS、Intel赏金项目剖析
  • RippleNet: Propagating User Preferences on the Knowledge Graph for Recommender Systems
  • 特地拎出来的总结
  • 2025异型件厂家推荐:邯郸市烁燊紧固件,广泛应用于建筑、桥梁、机械、电力、交通等诸多领域
  • Allow or block media autoplay in Firefox
  • [WC2018] 即时战略
  • 实用指南:Unity学习之C#的反射机制
  • HDF5文件 ——之三
  • 代码随想录算法训练营|Day 25
  • 深入解析:SAE J3072-2024插电式电动汽车(PEV)中的车载逆变器系统安全标准介绍
  • 冷僻模板整理
  • 实用指南:gitlab-runner 再次实践中理解和学习
  • 2025年7月28日当周关键漏洞汇总分析
  • C# 与 C/C++ 互操作
  • 【自然语言处理】文本规范化知识点梳理与习题总结 - 教程
  • 邮票收集问题正推证明
  • 2025多校冲刺CSP模拟赛2 2025.10.4 模拟炸
  • 算法乱谈
  • 2025 年 9 月习题集
  • C# 代码规范
  • 实用指南:babelfish for postgresql 分析--todo
  • NFC 贴卡自动拨打微信视频电话
  • 10.4
  • 实用指南:d-分离:图模型中的条件独立性判定准则
  • [MCP] 监听资源更新
  • [RAG] 基础知识
  • CF1408F Two Different
  • 数据结构 - 字典树 Trie
  • 激活函数实现