Kubernetes:没有定义端口的服务

sac*_*hin 3 kubernetes

我想确认我们是否可以在 pod 中没有容器端口的情况下公开服务。在下面的示例中,pod 没有容器端口,但服务已定义端口:

apiVersion: v1
metadata:
name: mypod
namespace: ggckad-s8
labels:
 app: mypod
spec:
 volumes:
- name: log-volume
  emptyDir: {}
 containers:
  - name: app
    image: kubegoldenguide/question-29-app
    volumeMounts:
    - name: log-volume
      mountPath: /var/log
Run Code Online (Sandbox Code Playgroud)
kind: Service
apiVersion: v1
metadata:
name: mypod-service
namespace: ggckad-s8
spec:
  type: NodePort
  selector: 
     app: mypod
   ports: 
   - port: 8000
Run Code Online (Sandbox Code Playgroud)

Das*_*kar 6

是的,您可以在 Pod 中没有容器端口的情况下公开服务。容器的默认端口将公开以供服务。要从容器公开的端口列表。此处公开端口可为系统提供有关容器使用的网络连接的附加信息,但主要是提供信息。此处不指定端口并不能防止该端口被暴露。任何侦听容器内默认“0.0.0.0”地址的端口都可以从网络访问。

有关更多信息,请查看文档https://kubernetes.io/docs/concepts/services-networking/service/#defining-a-service