2

此要求主要针对开发环境。

当我更新通过 Minikube 创建和公开部署的 docker 映像时,我必须删除并重新创建此部署和服务。但是,我想维护分配给该特定服务的相同节点端口。我知道如果留给 Minikube,则会分配一个随机端口。但是我可以指定 NodePort 吗?

我使用以下 Yaml 文件创建部署并通过expose命令公开服务。

apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  name: dpl_name
spec:
  template:
    metadata:
      labels:
        app: app_name
    spec:
      containers:
      - name: ctr_name
        image: 192.168.42.22:80/imagename:latest
        ports:
        - containerPort: 8090
        volumeMounts:
        - mountPath: /var/containerdata
          name: vlm
      volumes:
        - name: vlm
          hostPath:
            path: '/data/vlm'
4

1 回答 1

2

您可以通过创建 NodePort 类型的服务nodePort并在该 .yaml 配置中指定值来公开部署:

kind: Service
apiVersion: v1
metadata:
  name: app_name
  labels:
    app: app_name
spec:
  type: NodePort
  ports:
  - port: 80
    targetPort: 8090
    nodePort: 30000 # <--
  selector:
    app: app_name

这将指定始终使用该nodePort值:30000

于 2017-03-20T17:33:36.197 回答