在Minikube中创建部署时指定nodeport

时间:2017-03-20 05:57:35

标签: docker minikube

此要求主要用于开发环境。

当我更新用于创建部署并通过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'

1 个答案:

答案 0 :(得分:2)

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

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