阿里云Kubenetes服务获取出站IP地址的快速说明

简介: 本文介绍了如何在阿里云Kubernetes集群中获取Next.js服务的出口IP,以便在AWS EC2安全组中配置访问规则。可通过进入Pod执行API调用获取源IP,或在Node.js中使用HTTP请求获取。此外,也可通过阿里云NAT网关的EIP直接获取出口IP。

我在阿里云上有一个 Kubernetes 集群,其中有一个 Next.js 托管服务,带有单个 pod,并且 Next.js 服务有一个服务器端 API 调用,可以从 AWS 中的 EC2 调用端点

image.png

因此,我需要在 AWS EC2 的安全组中添加传入规则,但是我的 Next.js 服务是什么 IP?

解决方案

解决方案是进入吊舱,发出 API 调用并捕获来源。

为此,我们可以执行以下操作:

# 获取 pod 列表并识别你的 pod 名称
kubectl -n <namespace> get pod 

# 进入 pod 的 shell(使用 bash 或 sh,取决于你的容器)
 kubectl -n <namespace> exec -it <your pod name> -- bash 

# 从 shell 内部,curl 结果将包含来源
curl http://httpbin.org/ip 

# 如果安装了 jq,则可以提取该字段:
# curl -s http://httpbin.org/ip | jq -r '.origin'

鉴于我的容器非常小并且没有安装 curl,而是安装了 node.js,所以我可以这样写:

const http = require ( 'http' ); 

function  getOutgoingIPAddress ( ) {
    
  return  new  Promise ( ( resolve, rejection ) => {
    
    const options = {
    
      hostname : 'httpbin.org' , 
      path : '/ip' , 
      method : 'GET'
     }; 

    const req = http.request ( options, ( res ) => {
    
      let data = ' ' ; 

      res.on ( 'data' , ( chunk ) => {
    
        data += chunk; 
      }); 

      res.on ( 'end' , ( ) => {
    
        const respond = JSON.parse (data); const 
        outgoingIPAddress = respond.origin ; resolve (outgoingIPAddress);       });     });     req.on ( ' error ' , ( error ) => {
    rejection (error);     }); req.end     ( );   }); } getOutgoingIPAddress ()   . then ( ( outgoingIPAddress ) => {
    console.log ( '传出IP 地址:' , outgoingIPAddress);   })   .catch ( ( error ) => {
    console.error ( '错误:' , error ); }   );

另一方面,如果您可以访问阿里云的管理控制台,则该信息位于 Kubernetes 集群的虚拟私有云 (VPC) 内部 NAT 网关的 EIP 中:

image.png

目录
相关文章
|
数据采集 搜索推荐 数据管理
基于Python爬虫的垂直搜索引擎设计与实现
基于Python爬虫的垂直搜索引擎设计与实现
614 1
|
Java Go Nacos
解决Spring Boot与Nacos集成时的类加载问题: java.lang.NoClassDefFoundError: org/springframework/boot/context/prope
解决Spring Boot与Nacos集成时的类加载问题: java.lang.NoClassDefFoundError: org/springframework/boot/context/prope
906 1
|
7月前
|
存储 人工智能 搜索推荐
阿里云AI Agent搭建不踩坑:全套餐(qwen-plus + 函数计算 + NAS)费用 + 教程
阿里云AI Agent搭建全套餐仅113.66元!含Qwen-Plus大模型(12000千tokens)、函数计算50万CU及NAS 200GiB资源包。教程详解LangStudio+OSS+FC+NAS协同工作流,覆盖文档上传、LLM分析、MCP搜索与费用自动抵扣,助你零踩坑快速落地AI Agent。
536 4
|
JSON API UED
汇率查询API实战指南:通过Python调用获取多国汇率信息
本文介绍如何通过 Python 快速集成多币种汇率查询接口,实现实时获取全球主要货币汇率数据。适用于跨境电商价格换算、国际贸易结算等场景,帮助提升用户体验并规避汇率波动风险。
2196 0
汇率查询API实战指南:通过Python调用获取多国汇率信息
|
消息中间件 RocketMQ
如何保证RocketMQ消息有序?
如何保证RocketMQ消息有序?
|
Kubernetes 网络协议 Linux
阿里云linux(Alibaba Cloud Linux) 系统安装docker的相关过程和优化配置参考
阿里云linux(Alibaba Cloud Linux) 系统安装docker的相关过程和优化配置参考 Alibaba Cloud Linux 3.x 对标 centos8 Alibaba Cloud Linux 2.x 对标 centos7
3997 0
|
API 开发者 UED
HarmonyOS:ComposeTitleBar 组件自学指南
本文详解了鸿蒙开发中 ComposeTitleBar 组件的使用方法与技巧,从基础导入到属性配置,再到实际代码示例,帮助开发者构建美观实用的标题栏。组件自 API Version 10 起支持,具备独立功能结构,核心属性包括 `title`(必填)、`subtitle`(可选)和 `menuItems`(右侧菜单列表)。文章通过具体示例展示了如何配置标题、副标题及菜单项,并提供了交互优化、样式定制与多设备适配的建议。掌握这些内容,可显著提升应用界面体验。如果你有所收获,别忘了点赞收藏!
453 8
|
存储 JSON Serverless
西游再现,函数计算一键部署 Flux 超写实文生图模型部署
参与体验活动生成西游人物图像,既有机会赢取好礼!本次实验在函数计算中内置了flux.1-dev-fp8大模型,通过函数计算+Serverless应用中心一键部署Flux模型,快速生成超写实图像。首次开通用户可领取免费试用额度,部署过程简单高效。完成部署后,您可以通过修改提示词生成各种风格的图像,体验Flux模型的强大绘图能力。
西游再现,函数计算一键部署 Flux 超写实文生图模型部署
|
Ubuntu Oracle 关系型数据库
Oracle VM VirtualBox之Ubuntu 22.04LTS双网卡网络模式配置
这篇文章是关于如何在Oracle VM VirtualBox中配置Ubuntu 22.04LTS虚拟机双网卡网络模式的详细指南,包括VirtualBox网络概述、双网卡网络模式的配置步骤以及Ubuntu系统网络配置。
3044 3