kubernetes 中有更多默认命名端口吗?

More default named port in kubernetes?

在kubernetes中,我总是看到服务的定义是这样的:

---
apiVersion: v1
kind: Service
metadata:
  name: random-exporter
  labels:
    app: random-exporter
spec:
  type: ClusterIP
  selector:
    app: random-exporter
  ports:
    - port: 9800
      targetPort: http
      name: random-port

targetPort为http,很人性化!

我感兴趣的是,在 kubernetes 中是否有更多命名端口,例如 http?也许https

通常你指的是目标端口号。 但是您可以为每个 pod 的端口指定一个特定的名称 并在您的服务规范中引用此名称。

这将使您的服务更加清晰。 Here 你有一个例子,你在 pod 中命名你的端口。

apiVersion: v1
kind: Pod
metadata:
  name: test
spec:
  containers:
  - name: test
    ports:
    - name: http
      containerPort: 8080
    - name: https
      containerPort: 8443 

在这里,您在服务 yaml 中按名称引用这些端口。

apiVersion: v1
kind: Service
metadata:
  name: test-svc
spec:
  ports:
  - name: http
    port: 80
    targetPort: http
  - name: https
    port: 443
    targetPort: https 

您还可以从 kubernetes documention 中找到以下信息:

targetPort - 要在服务所针对的 pods 上访问的端口号或名称。编号必须在 1 到 65535 的范围内。名称必须是 IANA_SVC_NAME。 如果这是一个字符串,它将在目标 Pod 的容器端口中查找为命名端口。