CentOS 上 Overlay 与容器编排的实现路径
在 CentOS 环境中,容器跨主机互联通常通过 Overlay 网络 实现;编排层面可基于 Docker Swarm 或 Kubernetes 完成。前者由 Docker 内置控制面管理 Overlay,后者依赖 CNI 插件(如 Calico、Flannel)在集群内自动建立数据面。下面给出两条常用落地路径与关键注意事项。
方案一 Docker Swarm 编排 Overlay 网络
docker swarm init,获取加入令牌;在工作节点执行:docker swarm join --token <TOKEN> <MANAGER_IP>:<PORT>,完成多节点编排域建立。docker network create --driver overlay --subnet 10.0.0.0/24 --gateway 10.0.0.1 my_overlay_network(可按需调整子网/网关)。docker run -d --name c1 --network my_overlay_network nginx;进入容器验证互联:docker exec -it c1 ping c2。docker-compose up -d 一键拉起跨主机应用栈。方案二 Kubernetes 编排与 CNI Overlay
kubeadm init)与节点加入;确保内核与网络前置(如加载 overlay、br_netfilter,开启 net.bridge.bridge-nf-call-iptables=1、net.ipv4.ip_forward=1)。kubectl apply -f https://docs.projectcalico.org/v3.25/manifests/calico.yaml;等待 kube-system 命名空间下相关 Pod 就绪:kubectl get pods -n kube-system | grep calico。kubectl exec -it <pod-name> -- curl http://<service-name>.<namespace>.svc.cluster.local。关键注意事项与排错要点
net.bridge.bridge-nf-call-iptables=1、net.ipv4.ip_forward=1),否则跨主机与 Service 流量可能异常。--subnet/--gateway 更易排障。ping 对端容器 IP 或 DNS 名称;Kubernetes:在 Pod 内 curl Service 域名或 ClusterIP,结合 kubectl get endpoints 检查后端映射。