19.1.2 映射端口到主机
默认情况下,kind集群只映射控制面(control-plane)节点的一个端口(6443)到主机的随机端口,用于从主机访问kube-apiserver。

上图展示了两个kind集群,集群Cluster 1 映射了kube-apiserver的端口到主机的40515端口,集群Cluster 2映射了kube-apiserver的端口到主机的40516端口,这样在主机上可以通过40515和40516端口分别访问这两个集群。
某些场景下,我们会在Kind集群中运行NodePort类型的Service,并希望在主机上直接能够访问。此时可以在启动Kind集群时通过extraPortMappings配置额外需要映射的端口。
接下来,通过一个简单的例子来演示其用法。
集群配置
例如,我们需要访问的服务NodePort 为30000,并且希望把这个端口映射到主机上的30001端口,那么可以准备如下配置:
该配置将从control-plane的节点上映射容器端口30000到主机的30001端口。将配置保存在文件中,如kind.config。
接着使用kind命令行工具创建集群:
此时可以通过docker ps命令查看到映射的端口:
部署服务
在本例中,我们部署一个nginx应用:
接着,创建一个NodePort类型的Service:
访问服务
此时可以在主机上通过映射到主机的30001端口访问服务:
此外,也可以在主机外,通过主机IP:端口方式访问服务,例如使用浏览器访问:
小结
上面的例子中,我们使用extraPortMappings映射了一个端口到主机,也可以同时映射多个端口到主机。同时还可以从kind集群中任意节点上映射端口到主机,对于NodePort类型的服务,无论从哪个结点上映射效果都是相同的。
最后更新于
这有帮助吗?