k8s之Services:创建nodeport clusterip services

1.创建Services的方法:

1).kubectl expoese命令,会给我们的pod创建一个service,供外部访问

2).通过定义一个yml文件定义一个service类型的资源.

2).service主要有三种类型:一种叫clusterIP,一种叫nodePort,一种叫外部的LoadBalancer

 ClusterIP: 仅仅使用一个集群内部的IP地址 - 这是默认值。选择这个值意味着你只想这个服务在集群内部才可以被访问到。

l  NodePort: 在集群内部IP的基础上,在集群的每一个节点的端口上开放这个服务。你可以在任意<NodeIP>:NodePort地址上访问到这个服务。

l  LoadBalancer: 在使用一个集群内部IP地址和在NodePort上开放一个服务之外,向云提供商申请一个负载均衡器,会让流量转发到这个在每个节点上以<NodeIP>:NodePort的形式开放的服务上。

2.通过kubectl expose创建service

第一种:通过expose创建clusterip类型的service

目前环境上有两个pod如下:

通过kubectl expose pods nginx-pod 给指定的pod创建service

这里的集群ip只有在集群里才可以访问:

如先要进入到集群中的master节点:

进入到这个节点后就可以通过 curl 10.3.248.3:80

第二种:通过expose创建nodeport类型的service:

1).先通过pod_nginx.yml创建pod

创建pod:  kubectl create -f pod_nginx.yml

查看:

2).创建service类型为nodeport,该种类型service可以通过node ip:端口在外面访问

kubectl expose pods nginx-pod --type=NodePort

查看service可以看到映射到外面节点上的端口号是31404

查看ndoe的ip,

3).可以通过kubectl describe node 查看node 的IP

如图查看control节点的IP

在浏览器中就可以访问nginx

3.通过yml文件创建service

1).创建service_nginx.yml

apiVersion: v1
kind: Service
metadata:
  name: nginx-service
spec:
  ports:
  - port: 32333        #nginx的暴露端口
    nodePort: 32333        #node上的端口号
    targetPort: nginx-port        #基于环境中现有的pod
    protocol: TCP
  selector:
    app: nginx #要匹配的pod的labels如下图
  type: NodePort

这里的service_nginx.yml是基于环境中已经创建的pod 如下图:

targetPort对应下图中的port name:nginx-pod,  selector对应下图中的pod的labels:app=nginx

nodeport端口号要为:30000~32767,不然会报以下错误

2).通过yaml文件创建service

kubectl create -f service_nginx.yml

查看:创建了一个类型是nodeport的service

验证:

 

 

 

 

 

 

 

 

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值