Proxy
Kubernetes 集群中的 curling 服務被公司代理阻止
我有一個在公司代理後面執行的 Kubernetes 集群。我沒有使用 Minikube。我有
http_proxy
,https_proxy
並no_proxy
設置在 //etc/environment. no_proxy 有 127.0.0.0 和每個 node-ip 定義。如果我嘗試從我的主節點使用 ClusterIP 捲曲服務,我會陷入公司代理。我需要做什麼才能訪問該服務?將服務更改為 NodePort 並從集群外部訪問它是可行的。
我希望有人可以向我解釋我所缺少的。提前致謝。
部署和服務的 Yaml 文件
apiVersion: apps/v1 kind: Deployment metadata: labels: run: app name: app-blue spec: replicas: 1 selector: matchLabels: run: app version: 0.0.1 template: metadata: labels: run: app version: 0.0.1 spec: containers: - name: app image: errm/versions:0.0.1 ports: - containerPort: 3000 ---- apiVersion: v1 kind: Service metadata: name: app-service spec: selector: run: app version: 0.0.1 ports: - name: http port: 80 protocol: TCP targetPort: 3000
Kubectl 描述服務
Name: app-service Namespace: default Labels: <none> Annotations: <none> Selector: run=app,version=0.0.1 Type: ClusterIP IP Families: <none> IP: 10.107.64.107 IPs: 10.107.64.107 Port: http 80/TCP TargetPort: 3000/TCP Endpoints: 10.244.2.4:3000 Session Affinity: None Events: <none>
從主節點捲曲
curl 10.107.64.107:80 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3c.org/TR/1999/REC-html401-19991224/loose.dtd"> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html lang="de" lang="de" xml:lang="de" xmlns="http://www.w3.org/1999/xhtml"> <!--Head--> <head> <meta content="IE=11.0000" http-equiv="X-UA-Compatible"> <meta http-equiv="content-type" content="text/html; charset=utf-8"> <title>McAfee Web Gateway - Notification</title> <script src="/mwg-internal/de5fs23hu73ds/files/javascript/sw.js" type="text/javascript" ></script> <link rel="stylesheet" href="/mwg-internal/de5fs23hu73ds/files/default/web.css" /> </head> <!--/Head--> <!--Body--> <body onload="swOnLoad();" class="background"> <div class="inner_frame"> <div class="head_right_text"> <img alt="Logo" class="emblem" src='/mwg-internal/de5fs23hu73ds/files/default/img/wappen.png'> </div> <img alt="Logo" class="lion_left" src='/mwg-internal/de5fs23hu73ds/files/default/img/bg_loewe_links.png'> <img alt="Logo" class="lion_right" src='/mwg-internal/de5fs23hu73ds/files/default/img/bg_loewe_rechts.png'> <!--Contents--> <div class="msg_border"> <div class="msg_head"> Keine Verbindung möglich. </div> <div class="msg_text"> <p> Der Proxy hat eine ungültige Antwort erhalten. </p> </div> </div> <!--/Contents--> </div> </body> <!--/Body--> </html>
正如評論中所討論的:這裡的問題是代理仍在使用中,這可能是由於 no_proxy 不完整。
使用服務 IP 地址而不是 DNS 名稱仍會遵守 HTTP 代理環境配置。
為了避免 SDN 地址通過外部代理,您應該能夠將整個服務子網添加到您的 no_proxy,也許還包括 de Pods 子網,例如:
export NO_PROXY=<existing-exclusions>,10.233.0.0/18,10.233.64.0/18