Kubernetes----NodePort类型的Service

网友投稿 247 2022-09-10

Kubernetes----NodePort类型的Service

一、NodePort类型的Service简介

ClusterIP类型和Headless类型的Service都只能在集群环境内部访问,如果想开放给集群环境以外访问,那就需要使用NodePort类型,NodePort的工作原理其实就是将service的端口映射到Node的端口上,然后通过NodeIP:NodePort 来访问Service

二、环境准备

编写deployment.yaml文件,内容如下:

apiVersion: v1kind: Namespacemetadata: name: dev---apiVersion: apps/v1kind: Deploymentmetadata: name: pc-deployment namespace: devspec: replicas: 3 selector: matchLabels: app: nginx-pod template: metadata: labels: app: nginx-pod spec: containers: - name: nginx image: nginx:1.17.1 ports: - containerPort: 80

然后使用如下命令创建资源

[root@master service]# kubectl apply -f deployment.yamlnamespace/dev createddeployment.apps/pc-deployment created[root@master service]#

查看创建的资源如下:

[root@master service]# kubectl get deploy,pod -n dev -o wideNAME READY UP-TO-DATE AVAILABLE AGE CONTAINERS IMAGES SELECTORdeployment.apps/pc-deployment 3/3 3 3 17m nginx nginx:1.17.1 app=nginx-podNAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATESpod/pc-deployment-5ffc5bf56c-mqwst 1/1 Running 0 17m 10.244.2.191 node2 pod/pc-deployment-5ffc5bf56c-qbznm 1/1 Running 0 17m 10.244.1.53 node1 pod/pc-deployment-5ffc5bf56c-zxnsx 1/1 Running 0 17m 10.244.2.190 node2 [root@master service]#

三、创建NodePort类型Service

编辑nodeport.yaml文件,内容如下:

apiVersion: v1kind: Servicemetadata: name: service-nodeport namespace: devspec: selector: app: nginx-pod type: NodePort ports: - port: 80 nodePort: 30002 targetPort: 80

使用如下命令创建服务

[root@master service]# kubectl apply -f nodeport.yamlservice/service-nodeport created[root@master service]#

查看所创建的资源如下:

[root@master service]# kubectl get service,deployment,pod -n devNAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGEservice/service-nodeport NodePort 10.107.215.143 80:30002/TCP 10mNAME READY UP-TO-DATE AVAILABLE AGEdeployment.apps/pc-deployment 3/3 3 3 23hNAME READY STATUS RESTARTS AGEpod/pc-deployment-5ffc5bf56c-mqwst 1/1 Running 0 23hpod/pc-deployment-5ffc5bf56c-qbznm 1/1 Running 0 23hpod/pc-deployment-5ffc5bf56c-zxnsx 1/1 Running 0 23h[root@master service]#

此时可以在集群环境之外,通过节点ip:port访问服务,如这里节点ip为192.168.16.40,端口为30002,如下:

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Kubernetes----ExternalName类型的Service
下一篇:蒙牛伊利热衷冠名综艺背后:竞争激烈,2020年砸178亿营销!
相关文章

 发表评论

暂时没有评论,来抢沙发吧~