如何保证摘除公网EIP的容器服务VPC集群可以正常访问公网

简介: 在使用容器服务的过程中。出于业务的需要,用户需要创建VPC集群,但是又不希望每台ECS都绑定公网EIP,一方面是出于业务私密性的保护,另外一方面是出于节约成本的考虑。 基于以上场景,我们可以让集群内的机器,通过一台有EIP的机器来上网。在这个过程中主要使用到了SNAT相关的知识。 先找一台同R

在使用容器服务的过程中。出于业务的需要,用户需要创建VPC集群,但是又不希望每台ECS都绑定公网EIP,一方面是出于业务私密性的保护,另外一方面是出于节约成本的考虑。

基于以上场景,我们可以让集群内的机器,通过一台有EIP的机器来上网。在这个过程中主要使用到了SNAT相关的知识。

  • 先找一台同Region内的VPC机器,为该机器配置EIP
  • 登陆到配置了EIP的ECS,为机器开启IP转发功能,找到#net.ipv4.ip_forward=1行,去掉注释即可
    screenshot
 执行以下命令,让IP转发生效

screenshot

  • iptables添加SNAT转换 其中192.168.1.0 是内网网段, 192.168.1.95是绑定了EIP的这台机器的内网IP

    iptables -t nat -I POSTROUTING -s 192.168.1.0/24 -j SNAT --to-source 192.168.1.95 
  • 去VPC控制台,添加VPC路由器,其中的下一跳ECS是绑定了公网EIP的那台ECS
    screenshot
  • 通过以上步骤,我们就完成了集群创建过程中SNAT转发的配置工作。为了验证SNAT是否生效,我们可以去容器服务控制台创建一台摘掉公网EIP的集群。
    screenshot
  • 当集群创建成功以后,我们查看集群的主机列表,看到主机的IP是192.168.1.96
    screenshot
  • 接下来通过之前配置SNAT的EIP,登录到192.168.1.1进行简单ping测试,如果可以正常访问公网,则说明配置生效
    screenshot
  • 通过以上的操作步骤以后,对于没有EIP的容器服务集群,从公网拉取镜像部署应用都没有问题。
相关实践学习
使用ACS算力快速搭建生成式会话应用
阿里云容器计算服务 ACS(Container Compute Service)以Kubernetes为使用界面,采用Serverless形态提供弹性的算力资源,使您轻松高效运行容器应用。本文将指导您如何通过ACS控制台及ACS集群证书在ACS集群中快速部署并公开一个容器化生成式AI会话应用,并监控应用的运行情况。
深入解析Docker容器化技术
Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。Docker是世界领先的软件容器平台。开发人员利用Docker可以消除协作编码时“在我的机器上可正常工作”的问题。运维人员利用Docker可以在隔离容器中并行运行和管理应用,获得更好的计算密度。企业利用Docker可以构建敏捷的软件交付管道,以更快的速度、更高的安全性和可靠的信誉为Linux和Windows Server应用发布新功能。 在本套课程中,我们将全面的讲解Docker技术栈,从环境安装到容器、镜像操作以及生产环境如何部署开发的微服务应用。本课程由黑马程序员提供。     相关的阿里云产品:容器服务 ACK 容器服务 Kubernetes 版(简称 ACK)提供高性能可伸缩的容器应用管理能力,支持企业级容器化应用的全生命周期管理。整合阿里云虚拟化、存储、网络和安全能力,打造云端最佳容器化应用运行环境。 了解产品详情: https://www.aliyun.com/product/kubernetes
目录
相关文章
|
NoSQL 关系型数据库 Redis
Docker的通俗理解和通过宿主机端口访问Redis容器的实例
本文目标:引导初学者入门Docker,理解镜像、容器和宿主机概念,学习常用Docker命令,特别是如何创建并从Redis容器通过宿主机端口访问。 关键点: - Docker核心:镜像(类)、容器(实例)、宿主机(运行环境)。 - `docker pull` 拉取镜像,如 `redis:3.0`。 - `docker run -d --name` 后台运行容器,如 `my-redis`。 - `-p` 参数做端口映射,如 `6379:6379`。 - `docker exec -it` 交互式进入容器,如 `bash` 或执行命令。
802 4
|
应用服务中间件 nginx Docker
外部访问容器
外部访问容器
309 1
|
监控 安全 Linux
虚拟专用网络(VPN):远程访问与点对点连接及其在Linux中的IPSec实现与日志管理
虚拟专用网络(VPN):远程访问与点对点连接及其在Linux中的IPSec实现与日志管理
1136 101
|
网络协议 Ubuntu 前端开发
好好的容器突然起不来,经定位是容器内无法访问外网了?测试又说没改网络配置,该如何定位网络问题
本文记录了一次解决前端应用集成到主应用后出现502错误的问题。通过与测试人员的沟通,最终发现是DNS配置问题导致的。文章详细描述了问题的背景、沟通过程、解决方案,并总结了相关知识点和经验教训,帮助读者学习如何分析和定位网络问题。
1158 1
|
消息中间件 Kubernetes 容器
在K8S中,同⼀个Pod的不同容器互相可以访问是怎么做到的?
在K8S中,同⼀个Pod的不同容器互相可以访问是怎么做到的?
|
负载均衡 安全 网络虚拟化
CCE集群VPC网络模式下几种访问场景
【8月更文挑战第13天】在CCE(Cloud Container Engine)集群的VPC网络模式下,支持多样化的访问场景:容器应用可直接利用VPC访问外部资源;通过ELB负载均衡或VPN/专线配置,实现外部网络对容器应用的安全访问;容器间通过内部IP或服务发现机制相互通信;跨VPC访问则可通过VPC对等连接或云连接服务实现。这些方案确保了应用内外部通信的安全与高效。
890 3
|
Kubernetes 安全 Cloud Native
云上攻防-云原生篇&Kubernetes&K8s安全&API&Kubelet未授权访问&容器执行
云上攻防-云原生篇&Kubernetes&K8s安全&API&Kubelet未授权访问&容器执行
749 3
|
消息中间件 Serverless PyTorch
Serverless 应用引擎产品使用合集之FC内网访问VPC内的资源不通是什么导致的
阿里云Serverless 应用引擎(SAE)提供了完整的微服务应用生命周期管理能力,包括应用部署、服务治理、开发运维、资源管理等功能,并通过扩展功能支持多环境管理、API Gateway、事件驱动等高级应用场景,帮助企业快速构建、部署、运维和扩展微服务架构,实现Serverless化的应用部署与运维模式。以下是对SAE产品使用合集的概述,包括应用管理、服务治理、开发运维、资源管理等方面。
|
Shell Linux 应用服务中间件
centos系统内容器部署服务访问不到是因为run后面加了bash
centos系统内容器部署服务访问不到是因为run后面加了bash
|
域名解析 Kubernetes 负载均衡
在K8S中,外部访问容器服务,比如说提供了一个域名,链路怎么走?数据经过哪些组件?
在K8S中,外部访问容器服务,比如说提供了一个域名,链路怎么走?数据经过哪些组件?

相关产品

  • 容器计算服务
  • 容器服务Kubernetes版