k8s 暴露端口,外部访问

本文介绍如何使用kubectl命令获取、编辑Kubernetes中的服务(svc),并详细讲解了将svc类型修改为NodePort,暴露特定端口的过程。通过实例演示,读者可以学习到如何在外部访问Kubernetes集群内的服务。

kubectl -n onap get svc  获取所有svc(svc 的type,ip ,port)

kubectl -n onap edit svc vfc-nslcm(svc的name)(编辑,某个svc)

修改service为nodeport :30003(新加端口号,自定义)和type:NodePort
再查看svc   执行:kubectl -n onap get svc

端口已暴露!

注意:外部使用时:ip用原测试环境ip(如原测试环境ip:172.60.2.52) ;端口port用30003(修改后的端口号)

### Kubernetes 中暴露服务端口的方法 在 Kubernetes 集群中,可以通过多种方式来暴露服务端口以便外部能够访问集群内部的服务。以下是通过 `Service` 和 `Ingress` 实现这一目标的具体方法。 #### 使用 Service 暴露服务端口 Kubernetes 提供了几种类型的 `Service` 来实现对外部流量的开放: 1. **ClusterIP**: 默认类型,仅允许集群内的其他 Pod 访问该服务。 2. **NodePort**: 将服务映射到节点上的特定端口,从而可以从外部网络直接访问这些端口[^3]。 3. **LoadBalancer**: 在支持 LoadBalancer 的云环境中(如 AWS、GCP),可以动态分配一个负载均衡器并绑定至服务。 对于 NodePort 类型的服务配置文件如下所示: ```yaml apiVersion: v1 kind: Service metadata: name: my-service spec: type: NodePort selector: app: my-app ports: - protocol: TCP port: 80 targetPort: 9376 nodePort: 30007 # 可选字段,默认范围为 30000-32767 ``` 执行命令以应用此配置并将服务公开给外部世界: ```bash kubectl apply -f service-nodeport.yaml kubectl get svc -n ingress-nginx ``` #### 使用 Ingress 控制器暴露服务端口 另一种更灵活的方式是利用 `Ingress` 资源配合相应的控制器完成复杂的路由规则定义。这通常用于 HTTP/HTTPS 流量管理场景下。 ##### 安装 Ingress Controller 并设置 HostNetwork 模式 为了使 Ingress 功能生效,首先需部署合适的 Ingress Controller 到集群当中。例如 NGINX Ingress Controller 是一种广泛使用的解决方案之一[^2]。 创建专用命名空间存储所有与 Ingress 相关的对象实例之前先初始化环境准备阶段操作步骤包括但不限于以下几项内容: ```bash kubectl create ns ingress-nginx ``` 接着按照官方文档指引下载对应版本 manifest 文件或者自定义编写 YAML 描述符加载资源对象进入系统之中去实际运行起来看看效果如何吧! 最后验证整个流程是否成功的关键在于检查生成的相关记录信息是否存在正常状态指示灯亮起表示一切就绪待命随时响应请求啦! ```bash kubectl apply -f mandatory.yaml kubectl get pod -n ingress-nginx ``` 随后继续扩展功能选项比如调整暴露策略采用 NodePort 方式替代默认行为等等细节部分都需要仔细斟酌权衡利弊之后再做决定哦亲~ ---
评论 3
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值