k8s NodePort外部通信与内部映射

k8s资源类型主要有Service、Pod、Deployment,其中Service资源NodePort负责与外部通信,将nodePort端口映射到内部port端口。外部请求服务调用时,通过NodePort将请求转发到Pod端口。

  1. 具体如下nodeport.yaml示例


    无标题.png

    对上图做如下说明
    1)定义资源类型kind: Service
    定义Service类型NodePort,向外部暴露nodePort: 30080端口,并映射到port: 80端口,选择器selector选择应用webpp1-nodePort。
    2)定义资源类型kind:Deployment
    Deployment设置replicas:2即定义两个副本,应用标签名称是webpp1-nodePort,containerPort定义应用端口。

  2. 操作
    可通过网上提供的免费资源进行实际操作,具体操作如下:
    1) 在浏览器中打开网页
    输入这个网址:https://www.katacoda.com/courses/kubernetes/networking-introduction, 打开后会提供了一个实验用的Kubernetes集群,并可以通过网元模拟Terminal连接到集群的Master节点。

2)执行下面的命令创建一个nodeport类型的service。

kubectl apply -f nodeport.yaml

3)查看创建的service,可以看到kubernetes创建了一个名为webapp-nodeport-svc的service,并为该service在主机节点上创建了30080这个Nodeport。

kubectl get svc
NAME                   TYPE        CLUSTER-IP      EXTERNAL-IP   PORT(S)        AGE
kubernetes             ClusterIP   10.96.0.1       <none>        443/TCP        36m
webapp1-nodeport-svc   NodePort    10.103.188.73   <none>        80:30080/TCP   3m

4)执行查看pod命令,看到创建了两个pod

kubectl get pod -o wide

参考:
外部通信-NodePort
K8s中各端口port 原创

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容