我的OpenShift容器中有一组代理环境变量(http_proxy,HTTP_PROXY,https_proxy,HTTPS_PROXY,no_proxy,NO_PROXY),我没有明确包含这些变量,并且我也不想在其中包含它们。
例如
$ oc run netshoot -it --image docker-registry.default.svc:5000/default/netshoot -- bash
If you don't see a command prompt, try pressing enter.
bash-4.4$ env | grep -i proxy | sort
HTTPS_PROXY=http://xx.xx.xx.xx:8081/
HTTP_PROXY=http://xx.xx.xx.xx:8081/
NO_PROXY=.cluster.local,.mydomain.nz,.localdomain.com,.svc,10.xx.xx.xx,127.0.0.1,172.30.0.1,app01.mydomain.nz,app02.mydomain.nz,inf01.mydomain.nz,inf02.mydomain.nz,mst01.mydomain.nz,localaddress,localhost,.edpay.nz
http_proxy=xx.xx.xx.xx:8081
https_proxy=xx.xx.xx.xx:8081
no_proxy=.cluster.local,.mydomain.nz,.localdomain.com,.svc,10.xx.xx.xx,127.0.0.1,172.30.0.1,app01.mydomain.nz,app02.mydomain.nz,inf01.mydomain.nz,inf02.mydomain.nz,mst01.mydomain.nz,localaddress,localhost,.edpay.nz
我还没有找到这些环境变量如何进入我的豆荚。
我不是Setting Proxy Environment Variables in Pods。
$ oc get pod netshoot-1-hjp2p -o yaml | grep -A 10 env
[no output]
$ oc get deploymentconfig netshoot -o yaml | grep -A 10 env
[no output]
$ oc get podpresets --all-namespaces
No resources found.
我的主节点/应用程序节点上的Docker没有代理环境变量。
$ grep -i proxy /etc/sysconfig/docker
[no output]
我的主节点/应用程序节点上的Kubelet(openshift节点)没有代理环境变量。
$ grep -i proxy /etc/sysconfig/atomic-openshift-node
[no output]
主节点上的主组件没有代理环境变量。
$ grep -i proxy /etc/sysconfig/atomic-openshift-master
[no output]
$ grep -i proxy /etc/sysconfig/atomic-openshift-master-api
[no output]
$ grep -i proxy /etc/sysconfig/atomic-openshift-master-controllers
[no output]
sysconfig文件的内容(不包括注释)
$ cat /etc/sysconfig/atomic-openshift-master
OPTIONS="--loglevel=0"
CONFIG_FILE=/etc/origin/master/master-config.yaml
$ cat /etc/sysconfig/atomic-openshift-node
OPTIONS=--loglevel=2
CONFIG_FILE=/etc/origin/node/node-config.yaml
IMAGE_VERSION=v3.9.51
$ cat /etc/sysconfig/docker
OPTIONS=' --selinux-enabled --signature-verification=False --insecure-registry 172.30.0.0/16'
if [ -z "${DOCKER_CERT_PATH}" ]; then
DOCKER_CERT_PATH=/etc/docker
fi
ADD_REGISTRY='--add-registry registry.access.redhat.com'
$ cat /etc/sysconfig/atomic-openshift-master-api
OPTIONS=--loglevel=2 --listen=https://0.0.0.0:8443 --master=https://mst01.mydomain.nz:8443
CONFIG_FILE=/etc/origin/master/master-config.yaml
OPENSHIFT_DEFAULT_REGISTRY=docker-registry.default.svc:5000
$ cat /etc/sysconfig/atomic-openshift-master-controllers
OPTIONS=--loglevel=2 --listen=https://0.0.0.0:8444
CONFIG_FILE=/etc/origin/master/master-config.yaml
OPENSHIFT_DEFAULT_REGISTRY=docker-registry.default.svc:5000
我对这些代理环境变量如何进入我的豆荚一无所知。
版本:
答案 0 :(得分:0)
我们终于弄清楚了。根据{{3}},我们在安装程序清单变量中设置了openshift_http_proxy
,openshift_https_proxy
和openshift_no_proxy
。
我们知道这意味着它还根据文档隐式设置了openshift_builddefaults_http_proxy
,openshift_builddefaults_https_proxy
和openshift_builddefaults_no_proxy
安装程序清单变量。
此变量定义使用BuildDefaults接纳控制器插入到构建中的HTTP_PROXY环境变量。如果您没有定义此参数,而是定义了openshift_http_proxy参数,则使用openshift_http_proxy值。将openshift_builddefaults_http_proxy值设置为False可禁用默认的http代理构建,而不管openshift_http_proxy值如何。
我们 所不知道的(根据上面的描述,我认为并不清楚)是设置那些安装程序清单变量会设置HTTP_PROXY
,{{1} }和HTTPS_PROXY
永久包含在图片中。
当我们回顾构建日志并看到这样的行时,这很痛苦
NO_PROXY
我们无法从Pod中排除代理环境变量,因为这些环境变量是在构建时设置的。