给定在docker-compose.yml文件中定义的以下端口,如何在kubernetes yml文件中执行等效的操作?
docker-compose.yml
seq.logging:
image: datalust/seq
networks:
- backend
container_name: seq.logging
environment:
- ACCEPT_EULA=Y
ports:
- "5300:80" # UI
- "5301:5341" # Data ingestkubernetes.yml
---
apiVersion: v1
kind: Pod
metadata:
name: backend-infrastructure
labels:
system: backend
app: infrastructure
spec:
containers:
- name: seq-logging
image: datalust/seq
# ports: ?????????????????????????????????????
# - containerPort: "5300:80" # UI
# - containerPort: "5301:5341" # Data ingest
env:
- name: ACCEPT_EULA
value: "Y"发布于 2019-06-04 14:44:21
您不使用Pod/deployment公开端口。服务就是做到这一点的方法。在这里,您可以在pod/部署之上使用多个服务,但这将导致多个IP地址。另一种方法是命名每个端口,然后创建多端口服务定义。
在您的例子中,它应该看起来有点像这样(注意,这只是一个快速编写的示例)。也是
在使用多个端口时,必须给出所有端口的名称,以便可以消除端点的歧义。
apiVersion: v1
kind: Pod
metadata:
name: backend-infrastructure
labels:
system: backend
app: infrastructure
spec:
containers:
- name: seq-logging
image: datalust/seq
ports:
- containerPort: 80 # UI
name: ui
- containerPort: 5341 # Data ingest
name: data-ingest
env:
- name: ACCEPT_EULA
value: "Y"
---
apiVersion: v1
kind: Service
metadata:
name: seq-logging-service
spec:
type: #service type
ports:
- name: ui
port: 5300
targetPort: 80
- name: data-ingest
port: 5301
targetPort: 5341更多的资源:-关于将应用程序与服务连接起来的文档。-上面的示例yaml,具有多端口容器和相应服务的部署功能。
要从容器公开的端口列表。在这里公开一个端口会为系统提供关于容器使用的网络连接的附加信息,但主要是信息性的。此处不指定端口并不会阻止该端口被公开。在容器中侦听默认"0.0.0.0“地址的任何端口都可以从网络访问。无法更新。
https://stackoverflow.com/questions/56413708
复制相似问题