kubernetes介绍如何为单个主机打开nodeport



场景:

我有一个包含host01host02host03的k8s簇。

我在host01上运行master,在host02host03上运行slave,我想在master上为客户端连接打开一个端口,即我想打开:host01:32702

使用以下service.yaml,我成功地打开了host01:32702。令我惊讶的是,host02:32702host03:32702也开放了。

kind: Service
# ...
spec:
type: NodePort
ports:
- name: dashboard
port: 8265
targetPort: 8265
nodePort: 32702
selector:
podonhost01: yes

问题:

  • 这是预期的NodePort行为吗?选择器不工作吗
  • 如果是,那么为什么这是预期的NodePort行为?如果我有1000台主机,那么单个服务将在所有这些主机上打开32702端口
  • 如何只打开host01上的32702端口而不打开其余主机

您可以使用externalIP

apiVersion: v1
kind: Service
metadata:
name: my-service
spec:
selector:
app.kubernetes.io/name: MyApp
ports:
- name: http
protocol: TCP
port: 80
targetPort: 9376
externalIPs:
- HOST-01 IP

参考编号:https://kubernetes.io/docs/concepts/services-networking/service/#external-ips

最新更新