关注分享主机优惠活动
国内外VPS云服务器

一个简单的例子来了解Kubernetes中的三种IP地址类型(kubernetes端口转发)

摘要:在本文中,我们将介绍最简单的示例。 请注意,下图中各列下方显示的端口类型是由命令自动生成的,范围为 from 到。 该端口号包含在配置文件中,如果需要更改,可以编辑该文件。 您可以自由使用任何您想要的地址,并且可以将它们组合起来以获得供外部使用的完整地址。

很多 Kubernetes 新手对 Kubernetes 的三种不同 IP 地址以及它们的工作原理并没有清晰的了解。

本文我们将通过最简单的例子来学习。

使用以下命令行创建基于 nginx 的部署。

kubectl run nginx --image=nginx:maxline

使用kubectl查看成功生成的名为getdeploy nginx的部署:

目前,该部署中的nginx pod无法对外提供服务。

我们创建一个服务,以便外界可以使用它。 要创建此类服务,请使用命令行。

kubectl Exposeployment nginx --type=LoadBalancer --port=80 --target-port = 80

选择 LoadBalancer并为 --端口指定端口 80。 这意味着这个服务对外暴露的服务端口是80,--target。 -port=80,该端口是pod中nginx docker容器提供的工作端口,默认为80。 这样实际上就建立了外部开发的80端口和nginx内部端口的映射关系。 容器。

执行完成后,调用以下命令行查看创建的服务的集群IP和外部信息。艾尔·IP。

外部IP很容易理解。 该服务通过外部IP并映射到我们之前介绍过的80端口来为外界提供服务。

参考如果您在服务器中输入外部IP http://35.241.173.27:80,您可以: 我可以成功访问nginx服务器上的index.html:

但是我无法通过服务的集群IP访问它。 该服务提供的功能。

我们知道,Kubernetes 中的所有 Pod 之间都可以相互通信,而无需经过网络地址转换 - NAT,并且所有节点也可以与所有 Pod 通信。 集群的服务IP是专门用于与集群中的节点或Pod通信的内部IP地址。 与外界的通信继续通过外部 IP 进行。

NodePort

重试 NodePort。

kubectl公开部署nginx --type=NodePort --port=80 --target-port=80

注意请注意下图中 PORT 列下列出的端口类型 NodePort:31375

此端口号由 Kubernetespublish 命令自动生成,范围从 30000 到 32767。 如果需要更改,可以编辑API服务器配置文件: /etc/kubernetes/apiserver:

将此端口号更改为允许你可以使用任何IP。 拼接后的节点地址:31375是外部可用的完整地址。

使用命令行 kubectl 获取节点 -o 宽度,选择结果中任意节点的外部- IP,后跟:31375:

测试:

http://146.148 .23.183 :31375/

测试通过。

Pod 的端口转发功能

出于测试目的,如果您想要一种简单的方法来检查 Pod 是否可以成功提供服务,那么值得一提。确实有。 每次都通过 kubectl 创建服务很乏味。

一个简单的方法是使用 Pod 的端口转发功能。

例如,假设您要测试下图中 get pods 返回的第一个 pod 的功能。 名称为 nginx-6f754dd4b9-74jdn:

运行命令行 kubectl port-forward pod/nginx-6f754dd4b9-74jdn 8080: 80 我会的。

您将看到提示消息“Forwarding from 127.0.0.1:8080”。 ->80。 这意味着当前主机的8080端口映射到nginx pod的80工作端口。

最后,您可以直接访问所提供的服务。 通过 nginx pod via localhost:8080:

更多 Jerry 原创文章,关注公众号“王子熙”:

未经允许不得转载:主机频道 » 一个简单的例子来了解Kubernetes中的三种IP地址类型(kubernetes端口转发)

评论 抢沙发

评论前必须登录!