Skip to content

系统代理配置(永久生效) ​

bash
# 编辑profile文件(保留你的代理地址,去掉冗余的大小写重复)
vim /etc/profile
# 写入以下内容(精简且规范)
export HTTP_PROXY=http://192.168.1.100:7892
export HTTPS_PROXY=http://192.168.1.100:7892
export NO_PROXY=localhost,127.0.0.1,10.0.0.0/8,172.16.0.0/12,192.168.0.0/16,*.cluster.local,*.svc,10.96.0.1,10.96.0.10

# 让配置对所有终端永久生效
echo "source /etc/profile" >> ~/.bashrc
source /etc/profile

# 验证系统代理(有输出=生效)
echo $HTTP_PROXY

containerd配置中加入代理 ​

一、创建containerd代理配置文件 ​

sudo mkdir -p /etc/systemd/system/containerd.service.d
sudo vim /etc/systemd/system/containerd.service.d/http-proxy.conf

二、添加代理配置 ​

[Service]
Environment="HTTP_PROXY=http://192.168.1.100:7892"
Environment="HTTPS_PROXY=http://192.168.1.100:7892"
Environment="NO_PROXY=localhost,127.0.0.1,10.0.0.0/8,172.16.0.0/12,192.168.0.0/16,*.cluster.local,*.svc,10.96.0.1,10.96.0.10"
  # 本地和集群内部不代理

三、生效配置并重启 ​

sudo systemctl daemon-reload
sudo systemctl restart containerd

四、验证配置是否生效 ​

# 方法1:用crictl测试拉取
crictl pull nginx:1.18

# 方法2:查看Containerd日志
journalctl -u containerd -f | grep -i mirror

# 方法3:检查K8s Pod状态
kubectl describe pod production-6cf796f79c-8svln | grep -i image

!真实OS中配置 ​

查看第一列是否有 0.0.0.0:7892

\
netstat -ano | findstr :7892

如果第一列没有 0.0.0.0:7892,可以通过windows端口转发

netsh interface portproxy add v4tov4 listenaddress=192.168.1.100 listenport=7892 connectaddress=127.0.0.1 connectport=7892

验证转发规则(重启电脑规则会失效)

netsh interface portproxy show all

清理转发规则

netsh interface portproxy reset

!如果修改完配置未生效,看这里 ​

特别重要!!! ​

如果还没生效,记得先重启!!!!!! ​

如果还没用再把windows转发规则清理一下,重新配置 ​


# 1. 强制删除所有高优先级镜像源配置 ======================
# 删除certs.d下所有镜像源配置(最关键)
rm -rf /etc/containerd/certs.d

# 2. 重置containerd主配置为纯默认(删除所有mirrors) ======================
containerd config default > /etc/containerd/config.toml

# 3. 删除docker遗留配置(防止干扰) ======================
rm -rf /etc/docker/daemon.json

# 4. 修复DNS(彻底干掉127.0.0.53报错) ======================
cat > /etc/resolv.conf << EOF
nameserver 223.5.5.5
nameserver 8.8.8.8
EOF
systemctl stop systemd-resolved
systemctl disable systemd-resolved

# 5. 重载containerd代理(你之前配置的代理保留) ======================
systemctl daemon-reload
systemctl restart containerd
systemctl restart kubelet

# 6. 测试拉取官方镜像 ======================
crictl pull nginx:1.18

查看日志有没有报错
journalctl -u containerd -f | grep registry

注意事项 ​

部署高可用k8s集群

eg:3个master+1个node


node配置代理后

​ 产生的影响:其他master节点用不了kubectl命令

​ 原因:kubectl /curl 会自动走系统代理

你的代理服务器(192.168.1.101:7892)不能访问内网 k8s apiserver

代理直接把连接掐断 → 导致 EOF / 超时

关掉代理,直接内网访问 → 立刻恢复

​ 解决方式:

unset http_proxy
unset https_proxy
unset HTTP_PROXY
unset HTTPS_PROXY

用 VitePress 构建