当前位置:首页 > 系统教程 > 正文

从零搭建K8s集群:虚拟机环境配置全指南

从零搭建K8s集群:虚拟机环境配置全指南

DNS/网络/防火墙/SELinux全解析一站式配置图文教程

欢迎来到本教程!无论您是运维新手还是有一定经验的开发者,本文将带您一步步完成Kubernetes集群搭建前的虚拟机环境配置。通过本指南,您将学会如何配置虚拟机环境配置中的关键组件,包括DNS、网络、防火墙和SELinux,确保您的K8s集群基础稳固可靠。

从零搭建K8s集群:虚拟机环境配置全指南 Kubernetes集群搭建  虚拟机环境配置 DNS服务器设置 防火墙规则配置 第1张

一、准备工作:虚拟机软件和Linux镜像

在开始Kubernetes集群搭建前,您需要准备以下工具:

  • 虚拟机软件:推荐使用VirtualBox或VMware Workstation。
  • Linux镜像:选择CentOS 7或Ubuntu 20.04 LTS,本教程以CentOS 7为例。
  • 硬件资源:至少2台虚拟机,每台分配2GB内存、2核CPU和20GB硬盘。

二、虚拟机创建和基本配置

创建虚拟机后,首先进行系统安装。确保为每台虚拟机设置唯一主机名,例如master-nodeworker-node。安装完成后,更新系统包:sudo yum update -y(CentOS)或sudo apt update && sudo apt upgrade -y(Ubuntu)。

三、网络配置:设置静态IP和主机名解析

稳定的网络是Kubernetes集群搭建的基础。为每台虚拟机分配静态IP地址,避免DHCP变动导致问题。编辑网络配置文件(CentOS为例):

    sudo vi /etc/sysconfig/network-scripts/ifcfg-enp0s3# 修改以下参数BOOTPROTO=staticIPADDR=192.168.1.100  # 根据您的网络调整NETMASK=255.255.255.0GATEWAY=192.168.1.1DNS1=8.8.8.8ONBOOT=yes  

保存后重启网络:sudo systemctl restart network。接着,编辑/etc/hosts文件,添加所有节点的主机名和IP映射,这是DNS服务器设置的本地替代方案。

四、DNS配置:确保域名解析正常

虚拟机环境配置中,DNS解析至关重要,否则K8s组件可能无法通信。检查DNS设置:

  • 运行cat /etc/resolv.conf,确保有有效的DNS服务器,如8.8.8.8。
  • 测试解析:nslookup google.com,如果失败,请检查网络或手动设置DNS。

对于内部集群,您可以部署私有DNS,但本教程使用公共DNS简化DNS服务器设置

五、防火墙配置:开放K8s必要端口

防火墙规则配置是安全的关键,但K8s需要特定端口开放。在CentOS上,使用firewalld开放端口:

    sudo firewall-cmd --permanent --add-port=6443/tcp  # Kubernetes API serversudo firewall-cmd --permanent --add-port=2379-2380/tcp  # etcdsudo firewall-cmd --permanent --add-port=10250/tcp  # Kubelet APIsudo firewall-cmd --permanent --add-port=10251/tcp  # kube-schedulersudo firewall-cmd --permanent --add-port=10252/tcp  # kube-controller-managersudo firewall-cmd --permanent --add-port=30000-32767/tcp  # NodePort Servicessudo firewall-cmd --reload  # 应用规则  

验证规则:sudo firewall-cmd --list-all。如果您使用Ubuntu,需配置ufw类似规则。

六、SELinux配置:调整为宽松模式

SELinux可能干扰K8s操作,建议在虚拟机环境配置中将其设置为宽松模式。编辑SELinux配置文件:

    sudo vi /etc/selinux/config# 修改为SELINUX=permissive  # 或 disabled,但permissive更安全  

保存后重启虚拟机,或临时设置:sudo setenforce 0。检查状态:getenforce,应显示Permissive。

七、验证环境配置

完成以上防火墙规则配置和SELinux调整后,运行以下命令验证:

  • 网络连通性:ping -c 4 8.8.8.8ping -c 4 master-node
  • 端口开放:使用netstat -tulnss -tuln检查端口监听。
  • 系统服务:确保firewalld和网络服务运行正常。

如果所有步骤成功,您的虚拟机环境配置已完成,可以继续安装Docker和Kubernetes了!

总结

本教程详细解析了Kubernetes集群搭建前的环境配置,覆盖了DNS、网络、防火墙和SELinux等关键方面。通过一站式配置,您为后续的K8s安装打下了坚实基础。记住,稳定的环境是集群成功的一半——祝您搭建顺利!