18

当我在 kubernetes 中定义例如部署时,有一个包含容器列表的部分,每个容器都包含一个端口数组,例如:

apiVersion: apps/v1
kind: Deployment
spec:
  template:
    spec:
      containers:
      - name: my-nginx
        image: nginx
        ports:
        - containerPort: 80

现在这里的文档明确表示它不会影响连接性:

要从容器公开的端口列表。在此处公开端口可为系统提供有关容器使用的网络连接的附加信息,但主要是信息性的。此处不指定端口不会阻止该端口被暴露。任何侦听容器内默认“0.0.0.0”地址的端口都可以从网络访问。无法更新。

现在看来它并没有真正影响任何东西,只是提供信息,但这究竟意味着什么,它在哪里使用?

我发现它的一种用途是,如果端口定义了一个名称,则可以通过该名称从服务中引用它。

是它还是这个规范有其他用途?

4

1 回答 1

23

当您引用文档时,

要从容器公开的端口列表。在此处公开端口可为系统提供有关容器使用的网络连接的附加信息,但主要是信息性的。此处不指定端口不会阻止该端口被暴露。任何侦听容器内默认“0.0.0.0”地址的端口都可以从网络访问。无法更新。

定义的目的containerPorts纯粹是为了记录。它仅供其他开发人员用于了解容器侦听的端口。Kubernetes 借鉴了 docker 的这个想法,它对这里EXPOSE提到的命令做同样的事情。

于 2019-07-25T09:33:52.390 回答