Go 如何设置“KUBERNETES\u PORT\u 443\u TCP\u ADDR”?有库伯内特斯源代码的指针吗?

Go 如何设置“KUBERNETES\u PORT\u 443\u TCP\u ADDR”?有库伯内特斯源代码的指针吗?,go,kubernetes,Go,Kubernetes,当我使用kubectl run在Kubernetes中运行一个映像时,环境变量被注入到容器中 我的问题是这些值是错误的。我没有任何东西在10.0.0.1上运行。我相信正确的值应该是10.1.0.1。据我所知,这一错误配置导致kube dns的错误如下 我想问这些变量是如何注入到容器中的,最好是一个链接到处理这个问题的代码中(我找不到任何东西)。此外,还提供了一些提示,说明值10.0.0.1可能来自何处 pod变量: $ kubectl run -i --image=busybox --resta

当我使用
kubectl run
在Kubernetes中运行一个映像时,环境变量被注入到容器中

我的问题是这些值是错误的。我没有任何东西在
10.0.0.1
上运行。我相信正确的值应该是
10.1.0.1
。据我所知,这一错误配置导致kube dns的错误如下

我想问这些变量是如何注入到容器中的,最好是一个链接到处理这个问题的代码中(我找不到任何东西)。此外,还提供了一些提示,说明值10.0.0.1可能来自何处

pod变量:

$ kubectl run -i --image=busybox --restart=Never -t busybox
If you don't see a command prompt, try pressing enter.
/ # env
KUBERNETES_SERVICE_PORT=443
KUBERNETES_PORT=tcp://10.0.0.1:443
HOSTNAME=busybox
SHLVL=1
HOME=/root
TERM=xterm
KUBERNETES_PORT_443_TCP_ADDR=10.0.0.1
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
KUBERNETES_PORT_443_TCP_PORT=443
KUBERNETES_PORT_443_TCP_PROTO=tcp
KUBERNETES_SERVICE_PORT_HTTPS=443
KUBERNETES_PORT_443_TCP=tcp://10.0.0.1:443
KUBERNETES_SERVICE_HOST=10.0.0.1
PWD=/
kube dns错误:

$ kubectl --namespace kube-system logs kube-dns-2190035132-gxf80 kubedns
[...]
E0119 10:04:05.271499      55 reflector.go:199] k8s.io/dns/vendor/k8s.io/client-go/tools/cache/reflector.go:94: Failed to list *v1.Service: Get https://10.0.0.1:443/api/v1/services?resourceVersion=0: dial tcp 10.0.0.1:443: i/o timeout
I0119 10:04:05.771477      55 dns.go:174] Waiting for services and endpoints to be initialized from apiserver...
我的配置中与
10.0.0.1
最接近的是
--服务集群ip范围=10.0.0.0/24
我给
kube apiserver
的参数

我的etcd中有IP
10.0.0.1
,在

# ETCDCTL_API=3 etcdctl get "" --from-key
[...]
/registry/services/specs/default/kubernetes
k8s

v1Service


kubernetes▒default"*$b198bc22-fcff-11e7-83a9-185e0fec8ce528B
                                                           Z
        component       apiserverZ
provider
kuberneteszC
▒
httpsTCP▒▒(10.0.0.1"    ClusterIPClientIPBRZ`▒
▒"
/registry/services/specs/kube-system/kubernetes-dashboard
k8s

v1Service

kubernetes-dashboard▒
                     kube-system"*$b9f0daef-fcff-11e7-83a9-185e0fec8ce528B
                                                                         ԾZ,
addonmanager.kubernetes.io/mode ReconcileZ
ppkubernetes-dashboardZ*
kubernetes.io/minikube-addons   dashboardZ3
&kubernetes.io/minikube-addons-endpoint dashboardb
0kubectl.kubernetes.io/last-applied-configuration{"apiVersion":"v1","kind":"Service","metadata":{"annotations":{},"labels":{"addonmanager.kubernetes.io/mode":"Reconcile","app":"kubernetes-dashboard","kubernetes.io/minikube-addons":"dashboard","kubernetes.io/minikube-addons-endpoint":"dashboard"},"name":"kubernetes-dashboard","namespace":"kube-system"},"spec":{"ports":[{"nodePort":30000,"port":80,"targetPort":9090}],"selector":{"app":"kubernetes-dashboard"},"type":"NodePort"}}
z_

TCP▒PG▒(
ppkubernetes-dashboard▒ 10.0.0.82NodePort:NoneBRZCluster`▒
▒"
我通过git grep服务端口找到的


如果您的
kubernetes.default.svc.cluster.local
指向错误的IP,那么
kubectl--namespace=kube-system-edit-svc-kubernetes
并更改
ClusterIP
将解决这一问题;我面前没有集群来测试它,不过我想我知道
10.0.0.1
来自哪里。这只是
kubernetes
服务的IP。我所有问题的原因似乎是该IP位于我在
cbr0
接口上的子网之外,即
10.1.0.1/24
。我关于源代码指针的问题仍然存在。我正在搜索完整的变量名。现在很明显,我只需要对后缀进行grep。我现在已经把它整理好了。我确实有太多的错误配置,无法在这里全部列出。我猜,在K8s和我使用的资源调配系统(NixOS包)中都会出现初学者错误。然后,我必须处理这样一个事实:我在笔记本电脑上设置集群,当我在网络之间移动它时,dns分辨率会发生变化,因此我必须安装dnsmasq以将Kubernetes与之隔离。不知何故,我花了很长时间才意识到我需要设置NAT,以便能够从我的播客进入雇主的VPN网络,类似于
iptables-t NAT-A POSTROUTING-o vpntun0-s 10.1.0.0/25-j伪装