可外部访问的Kubernetes容器

Kubernetes - 集群中容器访问集群外部服务 企业内部一般存在很多的微服务,在逐步容器化的过程中,会有部分服务在集群外部,未完成容器化,比如数据库,而部分已经完成容器化的依赖于这些服务的服务,过渡过程中,需要集群内部的容器访问集群外部的服务。 为了在容器化过程中,让服务不中断,就需要让Kubernetes集群内部的容器能访问集群外部的服务,怎么做到呢,在每个应用的配置文件中使用外部IP或者外部rds名字吗?这样做,在外部的应用容器化后,还需要... 阅读详情

    上次的实验中创建的Nginx容器只能使用内网IP访问,外网是无法访问的,这并不是我们想要的。一个服务要能够通过外网IP地址访问到内网里的容器服务那才是最终的结果;今天继续通过Kubernetes来创建容器并通过宿主机IP地址加端口方法访问到Nginx服务;

创建一个nging_service.yaml配置文件

 


  1. apiVersion: v1 
  2. kind: Service 
  3. metadata: 
  4.   name: nginx-service 
  5. spec: 
  6.   externalIPs: 
  7.     - 10.0.10.135 
  8.   ports: 
  9.   - port: 8000 
  10.     targetPort: 80 
  11.     protocol: TCP 
  12.   selector: 
  13.     app: web01 

 

说明:上面配置中定义一个service服务,命令为nginx-service,定义对外的IP地址为:本机的10.0.10.135,把宿主机上的8000端口映射到容器80端口上,走和协议为TCP,选择器选择所有属于app=web01分组的容器,这个对于集群就很方便了;

接下来再定义一个nginx_pod.yaml配置文件:

 


  1. apiVersion: v1 
  2. kind: ReplicationController 
  3. metadata: 
  4.   name: nginx 
  5. spec: 
  6.   replicas: 1 
  7.   selector: 
  8.     app: web01 
  9.   template: 
  10.     metadata: 
  11.       name: nginx 
  12.       labels: 
  13.         app: web01 
  14.     spec: 
  15.       containers: 
  16.       - name: nginx 
  17.         image: reg.docker.tb/harbor/nginx:latest 
  18.         ports: 
  19.         - containerPort: 80 

 说明:这里跟之前的Pod是有区别的,这里定义的类型为ReplicationController 复制控制,并定义app名为web01; 

执行创建命令:

 


  1. [root@node5 ~]# kubectl create -f nginx_service.yaml  
  2. service "nginx-service" created 
  3. [root@node5 ~]# kubectl create -f nginx_pod.yaml  
  4. replicationcontroller "nginx" created 
  5. [root@node5 ~]# kubectl get service  
  6. NAME            CLUSTER-IP       EXTERNAL-IP   PORT(S)    AGE 
  7. kubernetes      10.254.0.1       <none>        443/TCP    2d 
  8. nginx-service   10.254.182.210   10.0.10.135   8000/TCP   11s 
  9. [root@node5 ~]# kubectl get pods 
  10. NAME          READY     STATUS    RESTARTS   AGE 
  11. nginx-27hgx   1/1       Running   0          10s 

 

 看到这个nginx-service有一个EXTERNAL-IP为10.0.10.135 这就是对外的IP地址;打开浏览器访问10.0.10.135:8000即可访问到Nginx容器了;

这样就实现了可供外网访问的一个容器实验了。

Docker与Kubernetes系列(三): 外部访问Docker容器 这段时间工作中用到了Docker以及Kubernetes(简称K8S),现在整理下我学习Docker以及K8S过程中看的一些比较好的资料,方便自己回顾,也希望能给容器小白一些帮助。给自己定一个小目标,二月底之前完成。 这是本系列的第三篇文章, 将介绍如何访问Docker容器。 一、外部访问容器 容器中可以运行一些网络应用,要让外部也可以访问这些应用,可以通过 -P 或 -p 阅读详情

相关推荐

k8s外部访问pod内部容器的端口-NodePort

k8s外部访问pod内部容器的端口-NodePort

生有涯,知无涯 5790

Kubesphere4.1版本创建应用Mysql并实现外网访问

Kubesphere4.1版本创建应用Mysql并实现外网访问

z1299236067的博客 1336

k8s 外部流量访问pod容器方法

一、 通过ingress访问 定义ingress.yaml apiVersion: extensions/v1beta1 kind: Ingress metadata: name: tiller-deploy namespace: kube-system spec: rules: - host: tiller.eb.com http: paths: - path: / backend: serviceName: ti

Shallow的博客 1632

将k8s容器内端口映射到容器外部访问

1、在master节点创建一个yaml文件,比如service.yaml 文件内容如下然后执行kubectl create -f service.yaml命令 就可以将容器内1888端口的服务映射到node节点上的3888端口给外部访问

Terisadeng的博客 4037

15、Kubernetes网络外部访问及容器调度问题解析

本文详细解析了Kubernetes中实现外部网络访问的多种方式,包括Service类型(如NodePort、LoadBalancer)和Ingress控制器的使用。同时,深入探讨了容器调度过程中可能出现的问题,如节点选择、资源不足等,并提供了具体的解决方法。此外,还涵盖了容器生命周期中常见的问题及诊断工具的使用,最后总结了网络配置和容器调度的最佳实践,帮助用户高效部署和管理Kubernetes应用。

f0g1h2的博客 75

Calibre LVS效率翻倍秘籍:用Hierarchical Flow处理亿级晶体管设计的5个关键阶段

本文详细解析了如何利用Hierarchical Flow技术提升Calibre LVS在亿级晶体管SoC设计中的验证效率。通过五个关键阶段的分层验证流程,包括顶层抽象验证、模块级独立验证等,可显著降低内存占用40-60%,缩短迭代周期50-70%,特别适用于SMIC等先进工艺节点。文章还分享了算力资源优化、并行化处理等实战技巧,帮助工程师应对大规模芯片验证挑战。

sam99的博客 770

kubesphere通过Ingress-nginx实现域名访问

这一篇跟大家分享kubesphere通过Ingress-nginx实现域名访问,在开始之前需要先安装好Ingress-nginx。我们直接使用域名访问,可以成功进到kubesphere管理平台。保存之后我们直接加载规则,输入以下命令。原创:佛布朗斯基 程序员技术笔记。如果想删除该规则,则输入以下命令。我们简单说明下配置文件参数含义。

2401_83384536的博客 764

一代测序、二代测序以及三代测序的优缺点及应用对比?

一、初现庐山真面目 一代测序:又称Sanger测序(多分子,单克隆) 历史:第一代DNA测序技术(又称Sanger测序)在1975年,由Sanger等人开创,并在1977年完成第一个基因组序列(噬菌体X174),全长5375个碱基。研究人员经过30年的实践并对技术及测序策略的不断改进(如使用了不同策略的作图法、鸟枪法),2001年完成的首个人类基因组图谱就是以改进了的Sanger法为其测序基础。 原理:在4个DNA合成反应体系(含dNTP)中分别加入一定比例带有标记的ddNTP(分为:ddATP...

wangprince2017 3万+

Kubernetes 服务访问外部地址

在 Kubernetes 中,服务访问外部地址是常见需求,比如连接外部数据库、API 服务或其他资源。以下是 Kubernetes 服务访问外部地址的几种方式及其流量拓扑。

qq_30178451的博客 1442

FFmpeg硬件加速实战:VAAPI驱动配置全攻略(含NVIDIA/Intel避坑指南)

本文详细解析了在Linux环境下配置FFmpeg使用VAAPI接口实现硬件加速的完整流程。针对NVIDIA、Intel等主流显卡,提供了从驱动安装、环境变量设置到多显卡切换的实战指南,并重点解决了闭源驱动冲突、国产系统适配等常见问题,帮助用户有效提升视频处理性能。

weixin_29306011的博客 459

YOLO26模型应用过程中的报错处理及疑问解答,涉及环境搭建、模型训练、模块改进、论文写作

本文记录了YOLO26模型的这一系列过程中可能发生的问题,以及大家非常关心的问题,这里统一做了一个记录和解答。

Limiiiing的博客 243

k8s kubesphere集群内部配置访问外部gitlab

k8s kubesphere集群内部配置访问外部gitlab。

abcy071213的博客 406

Obsidian与RAG:知识管理的未来之战

摘要: 本文对比了传统RAG、Obsidian和llm-wiki-skill三种知识管理方案。传统RAG依赖查询时临时检索,知识无法积累;Obsidian需人工整理,成本高但结构化强;llm-wiki-skill通过AI在摄入时自动编译知识为结构化Wiki,实现持续增值。核心差异在于知识处理时机——llm-wiki-skill将"查询时检索"转变为"摄入时编译",通过三层Markdown结构(sources/concepts/entities)和自动双向链接构建可进化

ZhangJiqun&191cm&85kg 633

k8s mysql 远程访问_Kubernetes创建可外部访问的mysql容器

上一次我们创建了一个可以通过宿主机的IP加端口来访问的Nginx服务,这次我们使用同样的方法来创建一个Mysql服务的容器;我们还是使用内网的Docker私有镜像仓库,第一次运行时会从镜像仓库中拉取镜像到机器上,以后就直接在机器上运行加快速度;直接上配置文件:mysql-rc.yamlkind: ReplicationControllermetadata:name: my-mysql-v1name...

weixin_34808718的博客 1685

YOLOv11改进策略【Head】| AFPN渐进式自适应特征金字塔,增加针对小目标的检测头(附模块详解和完整配置步骤)

一、本文介绍 本文利用AFPN对YOLOv11的网络模型进行优化提升。AFPN采用渐近式融合及自适应空间融合操作。通过渐近式架构,逐步整合不同层级特征,有效避免非相邻层级间因语义差距过大导致的信息丢失或降级问题,确保在多尺度特征融合过程中既能保留高层语义信息,又能融入低层细节特征。本文将AFPN应用于YOLOv11中,并配置了针对小目标的检测头,能显著增强模型对不同尺度目标的检测能力,使其在复杂场景下更聚焦于目标物体特征,减少背景等无关信息的影响。 专栏目录:YOLOv11改进目录一览 | 涉及卷积层、

Limiiiing的博客 2718

多体动力学分析软件:SIMPACK_(17).SIMPACK高级编程与脚本

自定义力和约束可以用于模拟更复杂和现实的物理场景。SIMPACK 提供了接口,允许用户通过 Python 脚本来实现自定义力和约束。以下是一个示例,展示如何定义一个自定义力函数并应用于模型。# 定义自定义力函数"""自定义力函数:param t: 时间:param position: 位置:param velocity: 速度:return: 力"""# 创建一个新的 SIMPACK 模型# 添加一个刚体# 添加一个关节# 添加一个自定义力# 设置仿真参数# 运行仿真。

kkchenjj的博客 1424

k8s集群容器外部与容器内部服务互相访问

一.容器外部访问容器内部服务 1.使用hostNetwork参数 容器内部服务与宿主机同一网段 特点:当Pod调度到哪个节点就使用哪个节点的IP地址,客户端使用IP地址访问容器里面的服务。一个node只能启动一个pod端口,端口不能冲突。 apiVersion: v1 kind: Pod metadata: name: nginx1 labels: app: web spec: hostNetwork: true containers: - name: ng-web

a595077052的专栏 7414

Vue.js + Element UI 实现会员管理系统:完整源码与详细教程|新手必看:用 Vue.js 和 Element UI 打造会员管理系统,完整代码解析|从零开始|后台管理系统|大学生期末大

总之,学习前端开发需要耐心和毅力,要保持对技术的热情和兴趣,不断学习和提升自己。通过实践项目、学习工具和框架、关注前端趋势等方式,你可以逐渐成为一名优秀的前端开发者。

南北极之间 1076

Kubernetes创建可外部访问的mysql容器

创建一个Mysql服务的容器; 我们还是使用内网的Docker私有镜像仓库,第一次运行时会从镜像仓库中拉取镜像到机器上,以后就直接在机器上运行加快速度; 直接上配置文件:mysql-rc.yaml kind: ReplicationController metadata: name: my-mysql-v1 namespace: default labels: name: my-mysql version: v1 spec: replicas: 1 selecto

zhangjunli的博客 2318

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

k8s pod里访问不到外部ip_Kubernetes之POD、容器之间的网络通信

欢迎关注头条号:老顾聊技术精品原创技术分享,知识的组装工前言Kubernetes(简称K8S)是开源的容器集群管理系统,可以实现容器集群的自动化部署、自动扩缩容、维护等功能。它既是一款容器编排工具,也是全新的基于容器技术的分布式架构领先方案。在Docker技术的基础上,为容器化的应用提供部署运行、资源调度、服务发现和动态伸缩等功能,提高了大规模容器集群管理的便捷性。基础概念ContainerCon...

weixin_35964787的博客 2142

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

K8S的POD容器内部访问外部虚拟IP

在k8s创建的容器内部,需要访问外部的虚拟IP可以在yaml中增加externalIPs对应的value为虚拟IP apiVersion: v1 kind: Service metadata: labels: app: zookeeper-service name: zookeeper-service spec: # type: NodePort ports: - name: zookeeper-port port: 2181 targetPort

Dyeln的博客 2592

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

k8s的Pod内容器互相访问——容器内使用python操作同Pod的mysql容器

目录 一、容器外部访问容器内部服务 1. 使用hostNetwork参数(容器内部服务与宿主机同一网段) 2. 使用hostPort参数(将容器内端口暴露出来) 3. 使用NodePort参数 4. 使用LoadBalancer参数 二、容器内部服务访问外部服务 1. 使用hostNetwork参数(Pod与宿主机在同一网段) 2. 使用endpoints组件 序言 研究k8s...

Briwisdom的博客 1万+

docker访问外部数据库_Kubernetes - 集群内容器访问集群外服务

企业内部一般存在很多的微服务,在逐步容器化的过程中,会有部分服务在集群外部,未完成容器化,比如数据库,而部分已经完成容器化的依赖于这些服务的服务,过渡过程中,需要集群内部的容器访问集群外部的服务。为了在容器化过程中,让服务不中断,就需要让Kubernetes集群内部的容器能访问集群外部的服务,怎么做到呢,在每个应用的配置文件中使用外部IP或者外部rds名字吗?这样做,在外部的应用容器化后,还需要修...

weixin_39649478的博客 471

k8s容器,并供外部访问;

1.以命令方式启动一个deployment和service: kubectl run mynginx --image=nginx --replicas=2 kubectl expose deployment mynginx --type=NodePort --name=nginx --port=80 第一个命令是创建名字为mynginx的两个pod的调度任务; 第二个是发布...

myth_g的博客 4862

k8s 开启防火墙,容器内部无法访问外部 ip

Kubernetes节点开启防火墙后容器无法访问外网,主要原因是防火墙覆盖了Calico和容器运行时配置的iptables规则。提供两种解决方案:1) 推荐关闭宿主机防火墙并重启网络组件重建规则;2) 如需保留防火墙,需配置放行规则,包括开启IP伪装、信任Calico网卡、允许转发流量,并重启Calico组件。修复后需进入容器测试网络连通性。

github_39333092的博客 379

K8S容器访问外部资源 Endpoint指定多个端口

K8S容器访问外部资源 K8S宿主机网络允许访问外网时,Pod是可以直接访问到公网资源的。但是比如数据库,消息队列类资源可能只对宿主机内网开放,这时Pod将无法访问到这些资源。解决这个问题,有2个方法 手动创建Endpoint 通过创建一个无label Selector的Service,再创建一个同名的Endpoint。这样就实现了访问集群内的ClusterIP和端口就访问到指定外部资源了。 创建资源的endpoint和service # cat oracle-endpoint-service.yaml

hali90s的博客 6105
上一篇: [认证授权] 4.OIDC(OpenId Connect)身份认证授权(核心部分)
下一篇: Traefik和Nginx-Ingress-Controller的部署
hxpjava1
博客等级 码龄19年 1365粉丝 511原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值