我有一个正在运行的 Kubernetes 集群公司代理。我没有使用 Minikube。我有http_proxy
,https_proxy
并no_proxy
在 //etc/environment 中设置。no_proxy 有 127.0.0.0 和定义的每个节点 ip。
如果我尝试从主节点使用 ClusterIP curl 服务,我会被公司代理卡住。我需要做什么才能访问该服务?将服务更改为 NodePort 并从集群外部访问它可以工作。
我希望有人能解释一下我遗漏了什么。提前致谢。
Deployment与Service的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
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>
答案1
正如评论中所讨论的:这里的问题是代理仍在使用,这是由于 no_proxy 不完整造成的。
使用服务 IP 地址而不是 DNS 名称仍会观察 HTTP 代理环境配置。
为了避免 SDN 地址通过外部代理,您应该能够将整个服务子网添加到 no_proxy,可能还包括 Pods 子网,例如:
export NO_PROXY=<existing-exclusions>,10.233.0.0/18,10.233.64.0/18