鲲鹏社区首页
中文
注册
我要评分
文档获取效率
文档正确性
内容完整性
文档易理解
在线提单
论坛求助

配置K8s部署环境

  • Linux系统默认开启的SELinux安全机制会阻止容器网络部分端口的启用,导致无法正常部署 虚拟化 场景业务。这是Linux OS本身的行为,鲲鹏BoostKit虚拟化使能套件并不对此提供的详细解决方案。如果客户想在自己的系统中使用SELinux,则需要自行寻找解决方法。
  • 针对此限制,我们提供了快速的禁用SELinux的方法。鲲鹏BoostKit虚拟化使能套件中,提供的SELinux配置方法仅供参考,需用户自行评估并承担相应风险。
  • 禁用SELinux可能会导致安全问题,如果客户最终的解决方案本身就没有规划启用SELinux,建议通过端到端的整体方案来弥补SELinux关闭带来的风险,且需自行承担安全风险。如果客户有SELinux的需求,建议根据实际的SELinux问题进行细粒度的规则配置,并保证整个系统的安全。

管理节点和计算节点都需要配置K8s部署环境。

操作步骤

  1. 关闭防火墙。
    systemctl stop firewalld && systemctl disable firewalld
  2. 关闭selinux。
    setenforce 0
    sed -i "s/SELINUX=enforcing/SELINUX=disabled/g" /etc/selinux/config
  3. 关闭交换分区。
    1. 临时关闭交换分区。
      swapoff -a
    2. 注释掉“/etc/fstab”中的swap。
      vi /etc/fstab
      #/dev/mapper/centos-swap     swap      swap     defaults     0     0
  4. 验证交换分区是否关闭。
    cat /proc/swaps

    预期结果如下,表示已经关闭交换分区。

  5. 加载内核模块。
    cat <<EOF | sudo tee /etc/modules-load.d/containerd.conf
    overlay
    br_netfilter
    EOF
    sudo modprobe overlay
    sudo modprobe br_netfilter
  6. 设置并应用sysctl参数。这些参数在操作系统重新启动后仍然生效。
    • 在CentOS 8.1操作系统中执行如下命令:
      cat <<EOF | sudo tee /etc/sysctl.d/99-kubernetes-cri.conf
      net.bridge.bridge-nf-call-iptables  = 1
      net.ipv4.ip_forward                 = 1
      net.bridge.bridge-nf-call-ip6tables = 1
      EOF
      sudo sysctl --system

    • 在openEuler 20.03操作系统中执行如下命令:
      cat <<EOF | sudo tee /etc/sysctl.d/99-kubernetes-cri.conf
      net.bridge.bridge-nf-call-iptables  = 1
      net.bridge.bridge-nf-call-ip6tables = 1
      EOF
      cat <<EOF | sudo tee /etc/sysctl.conf
      net.ipv4.ip_forward                 = 1
      EOF
      sudo sysctl -p /etc/sysctl.d/99-kubernetes-cri.conf
      sudo sysctl -p /etc/sysctl.conf

  7. 设置允许iptables检查桥接流量。
    cat <<EOF | sudo tee /etc/modules-load.d/k8s.conf
    br_netfilter
    EOF
    cat <<EOF | sudo tee /etc/sysctl.d/k8s.conf
    net.bridge.bridge-nf-call-ip6tables = 1
    net.bridge.bridge-nf-call-iptables = 1
    EOF
    sudo sysctl --system