自建网站经营者例子服务器中安装wordpress
2026/1/11 17:16:25 网站建设 项目流程
自建网站经营者例子,服务器中安装wordpress,明星个人网站建设需求分析,现在做网站用什么篇文章主要涉及到 kubelet 通过 csi 向运行时发送创建请求#xff0c;运行时发生了什么#xff1f;pod 网络又是怎么连通的#xff1f;对应的流量图画板我们将使用 docker 和 linux Bridge 去完成这个 pod 需求流程描述kubelet 通过 CRI 接口调用运行时#xff08;如 conta…篇文章主要涉及到 kubelet 通过 csi 向运行时发送创建请求运行时发生了什么pod 网络又是怎么连通的对应的流量图画板我们将使用 docker 和 linux Bridge 去完成这个 pod 需求流程描述kubelet 通过 CRI 接口调用运行时如 containerd创建 pod。该过程分为两步创建 Pod Sandbox运行时先启动一个轻量的 pause 容器。其核心作用是调用 runc 创建并持有一个独立的 Linux Network Namespace为 Pod 提供网络沙盒环境。创建业务容器运行时随后创建业务容器如 Nginx并通过指定 network namespace 路径使其直接加入 pause 容器所在的 Network Namespace从而实现网络共享。Pod 沙盒就绪后运行时调用 CNI 插件配置网络。插件执行如下操作创建 veth pair一端放入容器命名空间内命名为 eth0另一端连接至主机网桥如 br0为容器内的 eth0 分配 IP 并设置路由网关指向网桥。配置主机 iptables 规则实现 SNAT 以使 Pod 能访问外部网络并设置转发规则。实际操作创建网桥这个网桥充当虚拟交换机所有 pod 流量都通过该设备传递到物理网卡# 增加一个网卡设备ip link add name br0 type bridge# 向网卡设备添加地址ip addr add 10.0.0.1/24 dev br0# 设置网卡启动ip link set dev br0 up# 验证ip a启动 pod 外壳并劫持网络空间# 创建pod外壳容器docker run -itd --name my-pod --networknone docker.1ms.run/rancher/mirrored-pause:3.9# 劫持容器网络命名空间mkdir -p /var/run/netnsln -sf /var/run/docker/netns/ce39ddc16db1 /var/run/netns/my-pod# 验证ip netns配置 pod 网络模拟 CNI 插件我们将手动模拟 CNIbridge插件的工作创建 veth pair连接容器和网桥分配 IP设置路由# 创建一对虚拟以太网设备veth pair# veth-pod将留在主机默认命名空间的一端# veth-cont将留在容器命名空间的一端ip link add veth-pod type veth peer name veth-cont# 将veth-cont 放到容器命名空间内部ip link set veth-cont netns my-pod# 重命名veth-cont将其改成符合容器的标准名称eth0ip netns exec my-pod ip link set veth-cont name eth0# 启动容器内命名空间网卡ip netns exec my-pod ip link set eth0 up# 为容器命名空间内的网卡配置地址要和刚才网关网卡地址一致ip netns exec my-pod ip addr add 10.0.0.2/24 dev eth0# 添加到网关的路由ip netns exec my-pod ip route add default via 10.0.0.1# 给外面这一端网卡绑定masterip link set veth-pod master br0# 启动外面这一端网卡ip link set veth-pod up# 验证容器网络命名空间内网络环境ip netns exec my-pod ip addr showip netns exec my-pod route -nip netns exec my-pod ping 10.0.0.1创建业务容器docker run -itd --name nginx-pod --network container:my-pod nginx:alpine配置主机网络和 iptables 模拟 kubeporxy为了让流量能进出 Pod我们需要配置内核转发和 iptables 规则。# 开启内核转发功能echo 1 | sudo tee /proc/sys/net/ipv4/ip_forward# 配置SNAT# 解析# 10.244.1.0/24Pod网段且要从主机的物理网卡假设是eth0出去的流量将其源IP伪装成主机自己的IP。# 这样外部网络回包时才知道送回给哪个主机iptables -t nat -A POSTROUTING -s 10.0.0.0/24 -o eth0 -j MASQUERADE# 添加一条 iptables DNAT 规则将端口转发到业务网络命名空间内# -t nat: 操作 nat 表# -A PREROUTING: 在数据包刚到达时就进行规则判断# -p tcp --dport 30080: 匹配协议为 TCP且目标端口是 30080 的流量# -j DNAT: 进行目标地址转换DNAT# --to-destination 10.0.0.2:80: 将目标地址改为 Pod 的 IP 和端口iptables -t nat -D PREROUTING -p tcp --dport 30080 -j DNAT --to-destination 10.0.0.2:80iptables -t nat -D OUTPUT -d 127.0.0.1/32 -p tcp --dport 30080 -j DNAT --to-destination 10.0.0.2:80iptables -t nat -I PREROUTING 1 -p tcp --dport 30080 -j DNAT --to-destination 10.0.0.2:80iptables -t nat -I OUTPUT 1 -p tcp --dport 30080 -j DNAT --to-destination 10.0.0.2:80# 验证规则iptables -t nat -L POSTROUTING -n -v# 验证访问curl -v http://192.168.1.114:30080清理环境# 删除容器docker stop 4728aeef69f8docker stop 3041747824ebdocker rm 3041747824ebdocker rm 4728aeef69f8重启主机

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询