当前位置: 首页 > article >正文

【k8s】api server地址

1. 使用 kubectl cluster-info 命令

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

kubectl cluster-info

示例输出:

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 的地址和端口信息。

cat ~/.kube/config

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

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

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

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

env | grep KUBERNETES_SERVICE

你将看到类似的结果:

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


http://www.kler.cn/news/304531.html

相关文章:

  • 28. 消息队列使用场景
  • 前端页面中使用 ppt 功能,并且可以随意插入关键帧
  • 使用docker的小例子
  • Ubuntu系统入门指南:常用命令详解
  • Java 抽象类 学习总结
  • Windows 的 docker 删除容器后 WSL2 磁盘空间不释放的问题
  • 【Linux实践】实验二:LINUX操作基础
  • Cenos7镜像+Docker问题
  • 排序算法-冒泡排序
  • 软件测试工程师面试整理-编程与自动化
  • 显示器最佳分辨率设置
  • R语言统计分析——用回归做ANOVA
  • 08 vue3之认识bem架构及less sass 和scoped
  • 解决 PyCharm 无法启动 Jupyter 服务器的问题:报错分析与解决方案
  • AI问答-HTTP:理解 Content-Disposition
  • 如何用idea连接hadoop
  • 【.NET全栈】ASP.NET开发Web应用——成员和角色管理技术
  • 一分钟了解小程序的等保测评
  • PHP全程可视化防伪溯源一体化管理系统小程序源码
  • 64位整数乘法
  • 【App】React Native
  • SQLite的入门级项目学习记录(二)
  • 汽车租赁系统1.0版本
  • Linux——进程状态
  • 【React Native】第三方组件
  • 前端层面----监控与埋点
  • EasyExcel拿表头(二级表头)爬坑,invokeHeadMap方法
  • 记录一下,Vcenter清理/storage/archive空间
  • kafka 之 本地部署单机版
  • spring项目期间的学习9/11