Kubernetes:我们需要在 apiserver 清单中设置 http_proxy 和 no_proxy 吗?

Kubernetes : do we need to set http_proxy and no_proxy in apiserver manifest?

我的集群在公司代理后面,我在三个 kubernetes 核心清单 (kube-apiserver.yamlkube-controller-manager.yamlkube-scheduler.yaml)。现在,我想用 kubeadm 升级 kubernetes。但我知道 kubeadm 会在升级时从 kubeadm-config configmap 重新生成这些清单,因此没有这些环境变量。我在 kubeadm-config configmap 中找不到 extraEnvs 键(比如 extraArgsextraVolumes)。

我真的需要在所有 kubernetes 清单中设置这些变量吗?如果没有,我认为 kubeadm 会发出警告,因为所有通信都将使用代理(我不希望那样)。

如何在升级时将这些变量传递给 kubeadm?

目前没有可用于 Kubeadm 的此类标志。您可能想要打开 github 请求该功能。

您可以使用 or here 描述的方式并导出变量:

$ export http_proxy=http://proxy-ip:port/
$ export https_proxy=http://proxy-ip:port/
$ export no_proxy=master-ip,node-ip,127.0.0.1

然后用sudo -E bash使用当前的

$ sudo -E bash -c "kubeadm init... "

另一种方法是在命令中引用这些变量,如图所示 here:

NO_PROXY=master-ip,node-ip,127.0.0.1 HTTPS_PROXY=http://proxy-ip:port/ sudo kubeadm init --pod-network-cidr=192.168.0.0/16...