Kubernetes--从集群外部访问Pod或Service

一、背景

   由于Pod和Service都是Kubernetes集群范围内的虚拟概念,所以集群外的客户端系统无法通过Pod的IP地址或者Service的虚拟IP地址和虚拟端口号访问它们。为了让外部客户端可以访问这些服务,可将Pod或Service的端口号映射到宿主机,以使客户端应用能够通过物理机访问容器应用。

二、将容器应用的端口号映射到物理机

   (1)通过设置容器级别的hostPort,将容器应用的端口号映射到物理机:

apiVersion: v1
kind: Pod
metadata:
  name: webapp
  labels:
    app: webapp
spec:
  containers:
  - name: webapp
    imgae: tomcat
    ports:
    - containerPort: 8080
      hostPort: 8081  #映射到物理机的8081端口

 可以通过物理机的IP和8081端口号访问Pod内的容器服务器。

   (2) 通过设置Pod级别的hostNetwork=true,该Pod中所有容器的端口号都被直接映射到物理机上。在设置hostNetwork=true时需要注意,在容器的ports定义部分如果不知道hostPort,则默认hostPort等于containerPort,如果指定了hostPort,则hostPort必须等与containerPort的值

apiVersion: v1
kind: Pod
metadata:
  name: webapp
  labels:
    app: webapp
spec:
  hostNetwork: true
  containers:
  - name: webapp
    imagePullPolicy: Never
  
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值