gpt4 book ai didi

go - `KUBERNETES_PORT_443_TCP_ADDR` 是如何设置的?任何指向 Kubernetes 源代码的指针?

转载 作者:IT王子 更新时间:2023-10-29 02:10:20 26 4
gpt4 key购买 nike

当我使用 kubectl run 在 Kubernetes 中运行图像时,环境变量被注入(inject)到容器中。

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

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

广告连播变量:

$ 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 的是 --service-cluster-ip-range=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`▒
▒"

最佳答案

https://github.com/kubernetes/kubernetes/blob/v1.9.0/pkg/kubelet/envvars/envvars.go#L45-L48我通过 git grep SERVICE_PORT

找到的

如果您的 kubernetes.default.svc.cluster.local 指向错误的 IP,则可能 kubectl --namespace=kube-system edit svc kubernetes并更改 ClusterIP 可以解决这个问题;不过,我面前没有集群来测试它

关于go - `KUBERNETES_PORT_443_TCP_ADDR` 是如何设置的?任何指向 Kubernetes 源代码的指针?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48338872/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com