Kubernetes 我可以从kube代理pod查询kube apiserver吗?

Kubernetes 我可以从kube代理pod查询kube apiserver吗?,kubernetes,kube-proxy,kube-apiserver,Kubernetes,Kube Proxy,Kube Apiserver,我没有直接访问kube apiserver pod的权限,但我有权访问kube代理pod。我可以运行curl吗https://localhost:6443/healthz作为kube apiserver的健康探测器或其他什么?所有POD都可以访问API服务器:这是由安装在/var/run/secrets/kubernetes.io/servicecomport/token中的服务帐户机密授予的 在继续之前,您必须确保您的Pod能够到达API服务器,因此不会被NetworkPolicy阻止:您的问

我没有直接访问kube apiserver pod的权限,但我有权访问kube代理pod。我可以运行
curl吗https://localhost:6443/healthz
作为kube apiserver的健康探测器或其他什么?

所有POD都可以访问API服务器:这是由安装在
/var/run/secrets/kubernetes.io/servicecomport/token
中的服务帐户机密授予的

在继续之前,您必须确保您的Pod能够到达API服务器,因此不会被NetworkPolicy阻止:您的问题中没有声明此要求,因此给出此要求是不正确的

所述令牌用于对API服务器执行操作,例如对受RBAC保护的资源执行CRUD ops

如果您只需要检查API服务器的健康状况,您可以使用
/var/run/secrets/kubernetes.io/servicecomport/CA.pem
中装载的CA公共证书和Pod中已在运行时注入的指向API服务器的环境变量
kubernetes_SERVICE_HOST
卷曲API服务器,与
KUBERNETES_SERVICE_端口
一样,尽管443应该是默认值

例子
不,locahost代表吊舱,而不是两个吊舱运行的节点
# kubectl run -it --image curlimages/curl curl --command -- sh
If you don't see a command prompt, try pressing enter.
/ $ env | grep -i kubernetes
KUBERNETES_SERVICE_PORT=443
KUBERNETES_PORT=tcp://10.96.0.1:443
KUBERNETES_PORT_443_TCP_ADDR=10.96.0.1
KUBERNETES_PORT_443_TCP_PORT=443
KUBERNETES_PORT_443_TCP_PROTO=tcp
KUBERNETES_SERVICE_PORT_HTTPS=443
KUBERNETES_PORT_443_TCP=tcp://10.96.0.1:443
KUBERNETES_SERVICE_HOST=10.96.0.1
/ $ curl --cacert /var/run/secrets/kubernetes.io/serviceaccount/ca.crt https://$KUBERNETES_SERVICE_HOST:$KUBERNETES_SERVICE_PORT/api 
-H "Authorization: Bearer $(cat /var/run/secrets/kubernetes.io/serviceaccount/token)"
{
  "kind": "APIVersions",
  "versions": [
    "v1"
  ],
  "serverAddressByClientCIDRs": [
    {
      "clientCIDR": "0.0.0.0/0",
      "serverAddress": "172.20.0.2:6443"
    }
  ]
}