我制作了一个客户Pod(包括在端口8080上运行的带有Spring Boot应用程序的映像)。
**在yaml文件上,我没有明确写出容器端口号,例如spec:containers:port:8080。
kind: Pod
apiVersion: v1
metadata:
name: customer-pod
spec:
containers:
- name: customer-pod
image: docker.temp.com/customer-service:8
我可以使用“ $ kubectl get pods命令-o宽”进行检查
=========================================
NAME READY STATUS重新启动AGE IP NODE
customer-pod 1/1默认运行0 43m 10.43.1.17
=========================================
之后,
$ curl 10.43.1.17:8080
{“时间戳”:“ 2018-08-22T05:58:58.938 + 0000”,“状态”:404,“错误”:“未找到”,“消息”:“无消息”,“路径”:“ / “}
我想知道如何在不打开端口的情况下访问客户端口(8080)。
对于Docker,我知道我应该在run命令中显式编写一个端口以进行连接。
在Kubernetes中,端口会自动打开吗?
答案 0 :(得分:2)
您没有在kubernetes中打开端口。默认情况下,所有Pod可以相互通信,在大多数设置中,也将允许节点到端口。提到Docker时,您的意思是端口映射-p
选项,它也不是端口开放(如果您使用容器IP,即使未映射为暴露在容器外部也可以访问Docker容器端口)。
如果您想限制跨Pod联网,则需要使用Network Policies和能够实施跨Pod的联网解决方案。