【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 的内部地址,保持集群内部通信的稳定性。

相关推荐
广州中轴线6 小时前
OpenStack on Kubernetes 生产部署实战(十三)
容器·kubernetes·openstack
晚霞的不甘7 小时前
Flutter for OpenHarmony天气卡片应用:用枚举与动画打造沉浸式多城市天气浏览体验
前端·flutter·云原生·前端框架
Tadas-Gao7 小时前
TCP粘包现象的深度解析:从协议本质到工程实践
网络·网络协议·云原生·架构·tcp
礼拜天没时间.7 小时前
深入Docker架构——C/S模式解析
linux·docker·容器·架构·centos
切糕师学AI7 小时前
Helm Chart 是什么?
云原生·kubernetes·helm chart
猫头虎7 小时前
如何使用Docker部署OpenClaw汉化中文版?
运维·人工智能·docker·容器·langchain·开源·aigc
会周易的程序员8 小时前
openplc runtimev4 Docker 部署
运维·c++·物联网·docker·容器·软件工程·iot
陈桴浮海8 小时前
【Linux&Ansible】学习笔记合集三
linux·运维·云原生·ansible
小Pawn爷8 小时前
1.Docker基础
运维·docker·容器
chinesegf8 小时前
清理docker残留镜像images
运维·docker·容器