kubernetes --port选项在k8s机架中的作用是什么

vpfxa7rd  于 2023-03-01  发布在  Kubernetes
关注(0)|答案(2)|浏览(173)

如果我像这样强制创建一个pod,--port选项会做什么?
kubectl run mypod --image=nginx --port 9090
nginx应用程序默认监听端口80。为什么我们需要这个选项?
--port ='':此容器公开的端口。
如果使用kubectl expose pod mypod --port 9090公开它,它将在端口9090和目标端口9090上创建服务。但在上述情况下,它既不创建服务

wpx232ag

wpx232ag1#

...nginx application by default is going to listen on port 80. Why do we need this option?
使用--port 80的意思与在spec中写入的意思相同:

...
containers:
- name: ...
  image: nginx
  ports:
  - containerPort: 80
...

它不做任何端口Map,但通知这个容器将公开端口80。
...in the above case it neither creates a service
您可以将--expose添加到kubectl run,这将创建一个服务,在这种情况下,如果您在spec中编写以下内容,则情况相同:

kind: Service
...
spec:
  ports:
  - port: 80
    targetPort: 80
...

请注意,您只能使用--port指定一个端口,即使您写入多个--port,也只有最后一个会生效。

tkclm6bt

tkclm6bt2#

当端口选项已经被给予吊舱时,

  1. expose可以在没有--port选项的情况下运行,它将使用为pod定义的内容
  2. expose可以使用--port选项运行,它将覆盖pod中给出的选项
    当--port选项既未在pod中定义,也未在expose中定义时,将出现错误。
    https://kubernetes.io/docs/reference/kubernetes-api/workload-resources/pod-v1/#ports

相关问题