【k8s】api server地址

1. 使用 kubectl cluster-info 命令

这个命令会显示 Kubernetes API Server 的地址:

html 复制代码
kubectl cluster-info

示例输出:

html 复制代码
Kubernetes control plane is running at https://172.20.0.1:6443

CoreDNS is running at https://172.20.0.1:6443/api/v1/namespaces/kube-system/services/kube-dns:dns/proxy

在上面的输出中,https://172.20.0.1:6443 就是 API Sever 的地址和端口(通常是 6443)。

2. 查看 Kubernetes 配置文件(kubeconfig 文件)

你可以查看你的 kubeconfig 文件,它通常位于 ~/.kube/config,这个文件中包含了 API Server 的地址和端口信息。

html 复制代码
cat ~/.kube/config

你将会看到类似如下的配置:

html 复制代码
clusters:
- cluster:
    certificate-authority-data: ...
    server: https://172.20.0.1:6443   # 这里是 API Server 地址和端口
  name: kubernetes

3. 通过环境变量查询(在 Pod 内)

如果你在 Kubernetes Pod 内部,并且想要查看 API Server 的地址和端口,你可以检查环境变量:

html 复制代码
env | grep KUBERNETES_SERVICE

你将看到类似的结果:

html 复制代码
KUBERNETES_SERVICE_HOST=172.20.0.1
KUBERNETES_SERVICE_PORT=443
KUBERNETES_PORT=tcp://172.20.0.1:443
KUBERNETES_SERVICE_HOST 是 API Server 的 IP 地址。
KUBERNETES_SERVICE_PORT 是 API Server 的端口(通常是 443 或 6443)

3.1 kubectl cluster-info 地址和po内的KUBERNETES_SERVICE_HOST环境变量值不同,他们的关系是什么

二者的关系:

  • 外部客户端(kubectl cluster-info):显示的是集群外部访问 Kubernetes API Server 的地址,通常是一个控制平面的 IP 地址或负载均衡器的地址。
  • Pod 内(KUBERNETES_SERVICE_HOST):这个是集群内部通过 Kubernetes Service(kubernetes 服务)访问 API Server 的 ClusterIP。所有的 Pod 都会通过这个 ClusterIP 访问 API Server,而不是直接访问 API Server 的实际 IP。

为什么不同?

  • 访问场景不同:

    kubectl cluster-info 输出的地址用于外部客户端与 API Server 交互,可能通过负载均衡器或特定的网络入口来确保外部访问的高可用性。

    KUBERNETES_SERVICE_HOST 是 Kubernetes 为内部 Pod 提供的一个服务入口,用于集群内部通信。这个地址通常是集群的虚拟 IP,由 Kubernetes Service 提供,而不是 API Server 的实际地址。

  • 网络拓扑不同:

    集群外部访问:客户端使用的是 API Server 的公开地址,这个地址可能是负载均衡器、控制平面节点的 IP 地址等。

    集群内部访问:通过 Kubernetes 服务机制,集群中的每个 Pod 都可以使用 KUBERNETES_SERVICE_HOST 来访问 API Server 的内部地址,保持集群内部通信的稳定性。

相关推荐
yBmZlQzJ4 小时前
财运到内网穿透域名解析技术机制与中立评估
运维·经验分享·docker·容器·1024程序员节
sim20205 小时前
把某个pod固定到某个节点
kubernetes
yBmZlQzJ5 小时前
内网穿透工具通过端口转发实现内外网通信
运维·经验分享·docker·容器·1024程序员节
DeepHacking6 小时前
Overleaf 本地Docker部署
运维·docker·容器
孤岛悬城7 小时前
46 Docker资源管理
docker·容器·云计算
学Linux的语莫10 小时前
kompose、docker转k8s
docker·容器·kubernetes
阿里云云原生10 小时前
探秘 AgentRun丨流量一大就瘫痪?如何解决 AI 模型调用之痛
云原生
是Yu欸11 小时前
从Ascend C算子开发视角看CANN的“软硬协同”
c语言·开发语言·云原生·昇腾·ascend·cann·开放社区
光头熊11 小时前
一次 nerdctl prune -a 导致 Kubernetes 节点不可用的复盘
kubernetes
码界奇点12 小时前
基于微服务架构的企业身份与访问管理系统设计与实现
微服务·云原生·架构·车载系统·毕业设计·源代码管理