蓝屏registryfilterdriver


环境准备

硬件与操作系统:每个节点建议至少配备4核CPU、4GB内存、50GB磁盘。实际上,即使使用至少2核、2GB内存的节点,也能测试环境的基本运行情况。所有节点需要在同一网络中互通,包括API端口6443、etcd端口2379/2380等。确保主机名、MAC地址和product_uuid唯一,否则安装可能会失败。推荐使用支持的Linux发行版,如CentOS 7/8、Ubuntu 20.04/22.04等,并更新内核至LTS版本。

关闭防火墙和SELinux:在所有节点上执行以下命令以停止并禁用firewalld,并将SELinux设置为Permissive模式。

bash

sudo systemctl stop firewalld && sudo systemctl disable firewalld

sudo setenforce 0

sudo sed -i 's/enforcing/disabled/' /etc/selinux/config

同时关闭交换分区:交换分区可能导致kubelet启动失败,因为Kubelet默认不支持交换分区。以下命令可以临时或永久关闭交换分区。

bash

sudo swapoff -a

sudo sed -ri 's/.swap./&/' /etc/fstab

加载内核模块与设置网桥转发:加载必要的内核模块并启用桥接流量转发。

bash

cat

overlay

br_netfilter

EOF

sudo modprobe overlay

sudo modprobe br_netfilter

cat

net.bridge.bridge-nf-call-iptables = 1

net.bridge.bridge-nf-call-ip6tables = 1

net.ipv4.ip_forward = 1

EOF

sudo sysctl --system

安装容器运行时:推荐使用containerd作为容器运行时(Kubernetes 1.24+中已移除对裸Docker的内置支持)。以Ubuntu为例,执行以下命令进行安装。

bash

sudo apt update

sudo apt install -y containerd.io

sudo containerd config default | sudo tee /etc/containerd/config.toml

然后编辑 /etc/containerd/config.toml,将SystemdCgroup设置为true(Kubernetes官方推荐使用systemd作为cgroup驱动)。最后重启containerd服务。

安装Kubernetes组件:添加Kubernetes apt源,并安装必要的工具包。然后选择合适的Kubernetes版本进行安装。注意保证kubelet、kubeadm和kubectl版本一致,且与集群版本相匹配。

初始化Master节点:在主节点上运行kubeadm init进行初始化,指定API Server广播地址和Pod网络网段。成功执行后,将kubeconfig复制到当前用户目录。

加入Node节点:在每个工作节点(Node)上,执行kubeadm join命令将其加入集群。执行完成后,再次在Master上查看节点状态,应能看到新增的Node节点(状态为Ready)。

网络插件安装:初始化后,集群还需要安装CNI插件以提供Pod网络功能。常见选择包括Flannel和Calico。按照官方文档指导进行安装,并等待所有Pod健康运行。

常见故障排查:遇到问题时,可以通过查看日志信息进行排查。例如,检查swap是否关闭、cgroup驱动是否匹配、防火墙和网络设置是否影响集群通信等。对于CNI插件安装问题,检查配置是否正确,并查看插件日志以获取更多信息。kubeadm join失败时,可以尝试重新生成join命令或使用新的token进行加入。

总结与进阶建议:以上步骤详细介绍了如何使用kubeadm在Linux环境下搭建一个基础的企业级Kubernetes集群。完成基础搭建后,可以进一步探索高可用组件、应用管理、安全强化、监控与日志系统等方面的进阶方向。持续阅读官方文档、多做实践是掌握Kubernetes的关键。祝你在云原生道路上不断成长!